Docker持续集成服务器开启TLS监听

我们日常使用的docker命令实际上是个客户端,真正的服务端为dockerd守护进程,客户端和服务端之间可以通过http协议进行交互。为了跑持续集成,需要通过远程命令来发布docker容器。

环境

docker: 19.03.x
系统:centos 7 / ubuntu 16

操作步骤

生成ssl证书过程略,请参考文末的官方文档

systemctl edit docker

按i键进入编辑模式,粘贴以下内容:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/cert.pem --tlskey=/certs/key.pem -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

按Esc退出编辑,然后输入:wq保存退出,然后重启docker服务

systemctl daemon-reload
systemctl restart docker

测试端口是否开启成功

netstat -lanp | grep 2375

开启防火墙端口

firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload

持续集成客户端远程访问

mkdir -p ~/.docker
# 然后把ca.pem,cert.pem,key.pem复制到上面的文件夹里面

export DOCKER_HOST=tcp://$STACK_HOST:2375
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=~/.docker

# 测试以下
docker images

安全问题

我有一朋友在阿里云ECS安装了docker,然后没有使用TLS就开放了端口,几小时后服务器就被挂了挖矿病毒,所以还是要注意安全。最好把端口限制到只能内网访问,例如:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" port protocol="tcp" port="2375" accept"

链接

Docker服务端开启TLS-官方文档
Docker客户端使用TLS证书-官方文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值