.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!

posted @ 2020-08-24 14:54  清晨时光  阅读(336)  评论(0编辑  收藏  举报