.NETCore Docker实现容器化与私有镜像仓库管理

2020-06-17 06:58:12易采站长站整理

使用FROM指定容器使用的镜像

使用WORKDIR指定工作目录

使用COPY指令,复制当前目录(其中.即代表当前目录)到容器中的/app目录下

使用RUN命令指定容器中执行的命令

使用EXPOSE指定容器暴露的端口号

使用ENV指定环境参数,上面用来告诉.NETCore项目在所有网络接口上监听5000端口

使用ENTRYPOINT制定容器的入口点

Dockerfile就绪,我们就可以将我们当前项目打包成镜像以分发部署。

使用docker build -t <name> <path>指令打包镜像:

> docker build -t mvctest.web .

以上命令就是告诉docker将当前目录打包成镜像,并命名为

hellodocker.web
。命令执行完毕,输入
docker images
即可看到我们新打包的镜像

镜像创建完毕我们就可以直接运行了:

> docker run -d -p 80:5000 mvctest.web

上面的指令就是运行我们新打包的镜像,并通过-p参数映射容器的5000到宿主机的80端口,其中-d参数告诉docker以后台任务形式运行镜像。因为80是默认的web端口,所以我们通过浏览器直接访问ip即可访问到我们容器中运行的MVC网站

至此,我们借助Docker就完美的完成了.NET Core项目的容器化部署,后续我们将镜像部署在其它的机器上

五、推送镜像到仓库

请自行到Docker Hub注册个账号,然后我们把本地打包的镜像放到自己账号下的仓库下

1、注册完毕后,执行命令

> docker login

2、再执行命令

> docker push

推送失败,提示我们的镜像命名不符规范。原来在推送之前要把镜像按<user>/<repo>格式来命名。那如何重命名呢,我们用打标签的方式重命名

以上信息表示推送成功了,查看自己的仓库,如下图:

最后我们换一台机器,我们直接执行以下命令,就完成了多重部署

> docker run -p 8081:5000 79522860/mvcdemo.web

以上自己的镜像仓库做好了,是不是很方便,如果结合业务,会发现需要的镜像会比较多,分布式部署容器还要一个个启动容器?不,其它我们还可以通过配置文件来一键部署镜像与容器,一下篇我们会讲到