一、问题描述
有些时候,需要docker开启外部访问。
1.例如我们使用docker的可视化客户端工具portainer来统一管理在不同服务器上的docker时,就需要开启外部访问,否则是连接不到的。
2.使用jenkins时,有些情况需要保证外部docker和内部的通信,也需要开启外部访问。
下面说下解决方案。
二、解决方案
需要按照以下步骤操作:
1.首先编辑docker文件,/usr/lib/systemd/system/docker.service
vim /usr/lib/systemd/system/docker.service
2.修改ExecStart
配置项的内容如下。
另外这里多说一句,2375或者2376都无所谓,只要你在用的地方与这里的配置相对应就可以了。
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376
3.重新加载配置
systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker
三、补充说明
这样相当于对外暴露端口,如果服务器的端口允许外网访问,会出现安全问题。
生产环境中最好不要这么做,或者配置只对部分IP开放。