一、環境
框架.Net5 => .net core 5 web
開發工具 visual studio 2019 版本:16.8.x
發布服務器:Linux => Centos 7.x
二、項目發布
1、發布准備
添加docker支持(Dockerfile)-> 選擇Linux -> 生成Dockerfile文件
Dockerfile解讀
2、源碼鏡像制作
2.1將源碼拷貝到Centos指定目錄下,並在源碼總文件夾的同級目錄下,復制Dockerfile文件
2.2 進入到Dockerfile同級目錄,進行鏡像構建
使用docker構建命令進行構建:docker build -t dockerpublish -f Dockerfile .
-t :鏡像名稱(必須小寫) -f :Dockerfile文件 最后圓點指定dockfile文件
3、非源碼掛載方式
3.1 在visual studio 中進行web項目發布,並上傳文件到服務器
3.2 掛載到docker中
docker run -d -p 5001:80 -v /home/dotNet5Projects/LinuxDockerNginxPublish/LinuxDockerNginxPublish:/app --workdir /app mcr.microsoft.com/dotnet/aspnet dotnet /app/LinuxDockerNginx.dll
-p:指定物理主機5001端口映射到docker容器80端口
-v:復制物理主機中的文件到docker容器中的指定目錄
--workdir:指定后續指令目錄
mcr.microsoft.com/dotnet/aspnet:指定對應的基礎鏡像 使用dotnet命令運行項目dll
4、運行項目
docker run -itd -p 5000:80 dockerpublish
-itd:交互式后台啟動
-p:指定物理主機5001端口映射到docker容器80端口
dockerpublish:鏡像名稱
三、docker 常見命令
docker run:docker run相當於執行了兩步操作:將鏡像放入容器中(docker create),然后將容器啟動,使之變成運行時容器(docker start)
docker start :啟動已存在的鏡像
docker stop:停止鏡像
docker stop $(docker ps -q):停止所有鏡像
docker images:docker中的所有鏡像
docker ps -a :顯示容器列表 -a 顯示所有容器(默認顯示正在運行)
docker pull:拉取鏡像 name:tag 指定版本,默認latest
docker search:搜索的范圍是官方鏡像和所有個人公共鏡像
docker rm :刪除容器
docker rmi:刪除鏡像
docker rm $(docker ps -aq):刪除所有停止的容器
docker exec -it 容器ID /bin/bash :進入指定id的容器