.net core 手动部署到Docker
运用docker容器化技术有一段时间了,做点备忘录笔记吧。本篇只演示实操,理论的后面补上。
本文演示的是手动方式在docker主机上构建镜像,实际运维推荐使用Devops工具来完成镜像生成和容器启动。
废话不多说,开干!
添加Dockerfile
要能部署到docker,首先要在项目中添加Dockerfile。可以在项目中通过右键自动添加,如下图
自动添加的Dockerfile如下图,
Dockerfile简单说明
dockerfile一般分为4部分
基础镜像信息
维护者信息使用label指令
镜像操作指令
容器启动时执行指令
我们看到自动生成的Dockerfile除了没有维护者信息,其他的都有。
这里我们有两种方式来生成镜像,直接使用源码编译生成构建镜像和使用生成好的编译文件构建镜像
使用源码构建镜像
我们直接用源码去生成镜像的话,该Dockerfile不用修改可直接用于构建。
在自动生成的Dockerfile中copy的路径我们知道,需要在解决方案所在的目录来运行docker build命令,不然copy的时候路径会不正确(当然也可以修改Dockerfile中的copy相关命令中涉及到的路径来解决)。我们将项目源代码文件推送到docker主机上后,将命令行切换到解决方案**.sln所在的目录。
然后执行镜像构建命令,docker build -t myimagename -f WebDocker/dockerfile . 注意别漏了最后的小点。
这样就会执行构建了,如果路径没有错误即可看到最终镜像生成成功的提示。
使用编译后的文件构建镜像
如果使用在本地编译好的文件到docker主机上去构建镜像的话,我们可以优化一下Dockerfile。项目自动添加的Dockerfile包含了编译操作命令,而且看上去命令较多,相应的镜像的层数也多了。
最后的Dockerfile文件如下,是不是很清爽。
Dockerfile生成到编译目录后,我们将生成后的bin目录文件推送到Docker主机上。
切换到Dockerfile所在的目录,执行镜像构建命令docker build -t myimagename .即可完成镜像的构建,因为是在Dockerfile所在目录执行构建,所以-f路径可以省略。
好了,今天的.net core手动构建镜像就讲到这了,是不是so easy!