【搭建環境】
系統:CentOS 7.0 容器:Docker 1.13.1 .Net Core 版本:.NET Core 2.2 工具:putty、filezilla 等.
一、安裝 docker
1. 安裝 docker
yum install docker ps: 更新 docker 用 yum update
2. 啟動 docker 服務
systemctl start docker.service
3. 配置開機啟動
systemctl enable docker.service
4. 配置 docker 加速器
配置 docker 加速最快的方法直接修改/etc/docker/daemon.json 下的配置信息為:
{ "registry-mirrors": ["https://d8b3zdiw.mirror.aliyuncs.com"] }
5. 在終端重啟 docker 服務
sudo systemctl daemon-reload
sudo systemctl restart docker
二、部署.NetCore 應用到 Docker
1. 新建一個 ASP.NET Core 2.2 項目,在 Windows 下發布運行成功
2. 添加 docker 支持,選擇 Linux(或在添加項目時勾選啟用docker支持)
3.編寫DockerFile,並設置文件屬性:始終復制
FROM microsoft/dotnet:2.2-aspnetcore-runtime COPY . /apiweb WORKDIR /apiweb EXPOSE 80 ENTRYPOINT ["dotnet", "ApiWeb.dll"]
構建Dockerfile 注釋 ① FROM指定基礎鏡像,這里統一使用microsoft/dotnet(:tag)Tag是一個標簽,指定一個版本或者最近的版本(即latest) ② COPY拷貝發布文件到本地的/ apiweb /的路徑下,供容器使用 ③ WORKDIR 指定容器的工作目錄 ④ EXPOSE 指定容器的端口(注意,不是服務器訪問到程序的端口) ⑤ ENTRYPOINT 執行交互命令,使用CMD亦可賽艇,但是注意兩者都是執行完整命令的話,是會相互覆蓋的,只有最后一個有效。
4.發布項目
5.將Dockerfile文件復制到發布成功的目錄,並利用ftp工具全部上傳到服務器
6.構建Docker鏡像
①.進入到發布文件目錄(Dockerfile文件所在目錄)
cd /home/wwwroot/apiweb
②. 拉取基礎鏡像
docker pull microsoft/dotnet:2.2-aspnetcore-runtime
③. 執行命令創建鏡像 ,注意最后面有個.
docker build -t apiweb .
apiweb是創建鏡像的名稱,這個命令會根據當前目錄下dockerfile配置文件,進行打包。運行查看鏡像 docker images
④. 創建容器,其中前一個apiweb是容器名 后一個apiweb是上一步的鏡像名。
--name:指定容器名稱;
-p:指定容器端口,是進行宿主和容器之間端口的映射,(-p 宿主端口:容器端口);
-d:指定容器后台運行,這樣容器就會一直運行,即使關掉終端窗口。
docker run --name=apiweb -p 80:80 -d apiweb 或者 docker run --name=apiweb -p 宿主ip:5000:80 -d apiweb
出現一長串字符串,便是表示容器運行成功。
7.驗證訪問
直接通過瀏覽器訪問即可(宿主ip+端口號)。
Docker常用命令: docker -v / version /info 查看docker版本信息 docker images 查看所有鏡像 docker ps 查看所有正在運行的容器 docker ps -a 查看所有容器 docker rmi+鏡像ID 刪除某個鏡像 docker stop+容器ID 停止某個容器 docker start+容器ID 啟動某個容器 docker restart+容器ID 重啟某個容器 docker rm+容器ID 刪除某個容器 docker rmi $(docker images -q) 刪除所有鏡像 docker rm $(docker ps -a -q) 刪除所有容器 docker logs +容器ID 查看容器日志信息找原因 netstat -tanlp 查看端口 kill+端口 殺死某個端口 docker search mysql 鏡像檢索 docker pull mysql 鏡像下載 …