使用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 login2、再执行命令
> docker push推送失败,提示我们的镜像命名不符规范。原来在推送之前要把镜像按<user>/<repo>格式来命名。那如何重命名呢,我们用打标签的方式重命名

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

最后我们换一台机器,我们直接执行以下命令,就完成了多重部署
> docker run -p 8081:5000 79522860/mvcdemo.web
以上自己的镜像仓库做好了,是不是很方便,如果结合业务,会发现需要的镜像会比较多,分布式部署容器还要一个个启动容器?不,其它我们还可以通过配置文件来一键部署镜像与容器,一下篇我们会讲到










