.NET 微服务——CI/CD(2):自动打包镜像
一:开启docker的tcp端口
使用场景:默认安装的Docker服务不支持远程连接,开启TCP端口后可以进行远程连接Docker
查看当前系统的版本信息:
[root@iZuf6791hnyg64kq88b0faZ ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
编辑文件
$ vi /lib/systemd/system/docker.service
修改文件ExecStart。添加端口(2376)代码如下:
-H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
然后重载服务列表,重启docker,语句:
#1.重新加载系统服务配置文件(包含刚刚修改的文件)
systemctl daemon-reload
#2.重启docker服务
systemctl restart docker
#3.查看端口是否被docker监听
[root@iZuf6791hnyg64kq88b0faZ ~]# ss -tnl | grep 2376
LISTEN 0 128 [::]:2376 [::]:*
---可以不测
#4.查看防火墙是否开放2376端口
[root@iZuf6791hnyg64kq88b0faZ ~]# firewall-cmd --zone=public --query-port=2376/tcp
FirewallD is not running
#5.防火墙添加开放2376端口
firewall-cmd --zone=public --add-port=2376/tcp --permanent
#6.重启防火墙
firewall-cmd --reload
#7.在Windows系统上测试端口是否可以使用
telnet 139.196.240.143 2376
tcp://139.196.240.143:2376
#8.开启防火墙
systemctl start firewalld
#9.关闭防火墙
systemctl stop firewalld
#10.查看防火墙状态(dead 关闭/running 运行)
systemctl status firewalld
二、Jenkins安装Docker插件
只需选择这一个,关联的Docker API、Docker Commons会自动下载。
配置Docker
打开系统管理→系统配置,翻到最下面,进入单独设置页面:
在页面新增docker:name随意,地址要注意tcp不是http,最后注意勾选enabled。页面有个测试按钮,填好信息点它,测试通过会打印docker和docker api的版本:
如果测试通不过。
-
Connection timed out: /139.196.240.143:2376
需要开启服务器的防火墙
-
No route host
docker容器ping失败
ping: bad address 'www.baidu.com'
解决办法:重启docker
service docker restart
配置工作流
修改之前创建的工作流,进入配置页,找到构建这一项,添加构建步骤:
在新窗口填写dockerfile的路径、打包以后的镜像名称,以及选择刚才配置好的docker cloud:
填好以后保存,节省时间,手动触发测试一下(通过git提交触发一样):
等待构建结束,在服务器中查看刚才自动构建的镜像: