基礎說明
安裝Docker過程就略過了
創建一個Asp.Net Core程序
啟用Docker支持,會生成Dockerfile文件,接下來看下這個文件,當然不同的版本生成的具體可能不一致
FROM microsoft/dotnet:2.1-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "DockerTest.dll"]
具體內容含義這里就介紹了,這里需要說明下的就是如下:
先看下:FROM中的dotnet鏡像,在CentOS中pull拉取相關鏡像,查看下鏡像
當然這里Dockerfile中也可以用其他的鏡像
接下來就是遇到的一些問題,當我們把.NetCore發布的程序包放到CentOS中,發布時的時候注意要設置Dockerfile文件的發布屬性
這樣發布才會把Dockerfile文件打包到publish,當然你沒有設置也沒有太多關系,我們可以在CentOS中發布的目錄中創建一個Dockerfile也是可以的
制作鏡像
進入發布文件目錄
cd publish
docker build -t liyouming .
我制作了一個liyouming的鏡像,下面通過
docker images
查看下鏡像
運行到容器
?通過下面的運行到容器中
docker run --name=liyouming_iamge1 -P -d liyouming
或
docker run --name=liyouming_iamge2 -p 33333:80 -d liyouming
-P:隨機分配端口,-p:指定映射的端口
--name:容器名稱? -d:依賴的鏡像名稱
兩個容器都運行成功了,接下來通過命令查看下
docker ps
查看在運行的容器
可以看到依賴Image鏡像名稱,端口情況,已經容器名稱
接下來通過這2個端口訪問下程序,當然你也可以通過curl ip:端口查看
?
?
?
?
?部署起來特別方便,短時間能部署很多,最后把這些常用命令總結下
docker build -t 鏡像名稱 . docker run --name=容器名稱 -p 33333:80 -d 鏡像名稱 docker images docker ps docker ps -a docker stop containerid或containername docker start containerid或containername docker restart containerid或containername docker rm containerid或containername docker rmi imageid或imagename
?