写点什么

把项目打包成 docker 镜像,并发布到腾讯云?DockerHub!

作者:为自己带盐
  • 2022 年 7 月 15 日
  • 本文字数:1339 字

    阅读完需:约 4 分钟

把项目打包成docker镜像,并发布到腾讯云?DockerHub!

所以到底是发布到哪?

国产云服务厂商里,我个人还是很喜欢腾讯云的产品,之前用 docker 镜像也是发到了腾讯云的个人镜像服务里的。

但是,出于国内政策的一些因素,现在好像所有的国内云都不支持个人镜像服务了,我还专门查了一下别的镜像云服务,比如网易数帆都有明文规定,不再支持个人镜像服务了


哎,限制个人用户这点可能不太好啊。。。

因为这个因素,我还是把镜像发到了 dockerhub,虽然慢了一些,但目前也没啥别的选择了~,当然还可以结合 git 搭建一个 Jenkins 服务来替代,这里就不聊那些了!

打包镜像

dotnet 发展到 dotnet core 时代,已经原生支持跨平台了,而容器技术是实现跨平台部署的一种重要手段,这里就简单演示给一个现有系统打包上次的流程。

安装 DockerDesktop

因为绝大部分的 dotnet 开发者的开发平台都是 Windows 平台,当然即便是 linux 和 macOS,现在也可以使用 DockerDesktop 了


对了,在 windows 环境下使用 dockerdesktop,需要开启 hyper-v 服务。

傻瓜式的安装完成后,就可以进行打包部署的流程了


创建容器支持

在使用 vs2022(2019)创建项目的时候,可以默认添加 docker 服务,如果开始的时候没有添加也没关系,后续创建 dockerfile 也不费力。右击项目文件-->添加-->Docker 支持,就可以了。


添加支持之后,项目会自动帮我们添加 dockerfile,并自动进行一次容器拉取服务,把项目依赖的包都拉去下来

这里如果开着 dockerdesktop 的话,会看到 IDE 帮我们拉取下来的依赖镜像和刚刚生成的镜像。

到这里,为了让项目成功在容器里跑起来,还需要调整一些东西

  • dockerfile 要和项目解决文件在同一目录

  • dockerfile 里要增加了处理 ssl 协议相关的语句,不然 sql 服务在容器里会出现无法连接的情况

RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1.0/g' /etc/ssl/openssl.cnfRUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1.0/g' /usr/lib/ssl/openssl.cnf
复制代码

构建镜像

进入到 dockerfile 的安装路径,执行

docker build -t {项目名称} .
复制代码



完成打包后可以启动 DockerDesktop 界面里看到容器运行情况,也可以通过这个命令来查看。

docker ps
复制代码

启动命令如下

docker run --name {容器名字} -d -p 外部访问端口:容器内部端口 {镜像名字}
复制代码




测试可以正常访问之后,就可以把镜像推到镜像仓库了!


推到镜像仓库

注册个人账号

不用多说了~,传送门


推送镜像

镜像打包好后,就可以准备通过 CLI 把镜像推送到仓库了。推送之前,要先给刚打包好的镜像设定一个远程版本号,关于这点,官网上也有详细介绍

这一点,不光是 dockerhub 这样要求,之前国内的个人镜像仓库可用的时候,也是有同样要求的。

docker tag {你的镜像名字}:{上面构造好时的tag名字,一般时lates} {个人账号}/{远程镜像名字}:{远程镜像标签}docker push {个人账号}:/{远程镜像名字}:{远程镜像标签}
复制代码


对了,推送之前,先登录一下个人账号,我是直接在 dockersdesktop 上登录了,所以在 CLI 环境里就不用再执行 docker login 命令了,如果没有登录,则需要通过命令行登陆一下。

推送完成后,登录 dockerhub 的个人账号查看,可以看到刚刚推送上来的镜像


好了,基本就是这样了。

15 天的日更暂时也告一段落了,因为报名参加了后边的签约作者活动。也正好接这个机会休整一番,其实第二季的时候也参加了,结果后期乏力,输出的内容不太好,副本没有刷成功。希望这次可以成功晋级,冲啊~~


发布于: 刚刚阅读数: 3
用户头像

学着码代码,学着码人生。 2019.04.11 加入

狂奔的小码农

评论

发布
暂无评论
把项目打包成docker镜像,并发布到腾讯云?DockerHub!_Dockerhub_为自己带盐_InfoQ写作社区