.NetCore中的程序通过Docker在CentOS中部署

基础说明

安装Docker过程就略过了

创建一个Asp.Net Core程序

.NetCore中的程序通过Docker在CentOS中部署

启用Docker支持,会生成Dockerfile文件,接下来看下这个文件,当然不同的版本生成的具体可能不一致

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "DockerTest.dll"]

具体内容含义这里就介绍了,这里需要说明下的就是如下:

先看下:FROM中的dotnet镜像,在CentOS中pull拉取相关镜像,查看下镜像

.NetCore中的程序通过Docker在CentOS中部署

当然这里Dockerfile中也可以用其他的镜像

接下来就是遇到的一些问题,当我们把.NetCore发布的程序包放到CentOS中,发布时的时候注意要设置Dockerfile文件的发布属性

.NetCore中的程序通过Docker在CentOS中部署

这样发布才会把Dockerfile文件打包到publish,当然你没有设置也没有太多关系,我们可以在CentOS中发布的目录中创建一个Dockerfile也是可以的

制作镜像

进入发布文件目录

cd publish
docker build -t liyouming .

我制作了一个liyouming的镜像,下面通过

docker images

查看下镜像

.NetCore中的程序通过Docker在CentOS中部署

运行到容器

 通过下面的运行到容器中

docker run --name=liyouming_iamge1 -P -d liyouming

docker run --name=liyouming_iamge2 -p 33333:80  -d liyouming

-P:随机分配端口,-p:指定映射的端口

--name:容器名称  -d:依赖的镜像名称

.NetCore中的程序通过Docker在CentOS中部署

两个容器都运行成功了,接下来通过命令查看下

docker ps

查看在运行的容器

.NetCore中的程序通过Docker在CentOS中部署

可以看到依赖Image镜像名称,端口情况,已经容器名称

接下来通过这2个端口访问下程序,当然你也可以通过curl ip:端口查看

.NetCore中的程序通过Docker在CentOS中部署

 .NetCore中的程序通过Docker在CentOS中部署

 部署起来特别方便,短时间能部署很多,最后把这些常用命令总结下

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