docker开启远程访问(CentOS7)
method 1
# change /etc/docker/daemon.json (but found it is invalid)
# old:
{
"registry-mirrors": ["https://1riogb3e.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.6.36:8000"]
}
# new file after changing:
{
"registry-mirrors": ["https://xisih51q.mirror.aliyuncs.com"],
"hosts": [
"tcp://0.0.0.0:2375",
"unix:///var/run/docker.sock"
]
}
method 2
首先在开始前我们需要配置一下docker的镜像加速器(不然的话,我们接下来pull镜像会很慢的),配置镜像加速我们使用daocloud,地址:https://www.daocloud.io/mirror#accelerator-doc
打开上面的网址,按照网址的提示命令,我们copy下来在linux系统执行就行了。非常简单。
安装完成后我们会发现pull镜像会变得很快的。
前置的条件设置好了,接下来正式开始配置docker运城访问开启。
- 首先编辑docker的宿主机文件/lib/systemd/system/docker.service
vi /lib/systemd/system/docker.service
修改以ExecStart开头的行:(因为我的系统是centos 7的,所以修改为下面的)
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
如果是centos7以下的话,就把ExecStart修改为:
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
修改后保存文件,然后通知docker服务做出的修改: systemctl daemon-reload
重启docker服务: service docker restart
- 接下来测试一下看是否能连接到docker api。上面的2375就是对应端口
curl http://localhost:2375/verion
如果看到控制台有数据返回,这里其实就已经成功了一大半了。
接下来我们通过外网去访问该链接。
如果发现还是远程连不上,那么再配置linux的防火墙,否则不需要配置。
(我遇到过这个情况,当时我的防火墙是关闭的,就是无法访问docker,于是我开启了防火墙,并配置了访问规则,就好了)
- 查看docker进程是否监听
[root@localhost ~]# netstat -ano | grep 2375
tcp6 0 0 :::2375 ::😗 LISTEN off (0.00/0/0)
- 查看系统网络端口2375是否被docker所监听
[root@localhost ~]# netstat -tulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 3124/sshd
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 3379/master
tcp6 0 0 [::]:2375 [::]😗 LISTEN 13964/dockerd
- 添加防火墙2375/tcp ,并重载防火墙
# check the firewall status, if closed then open it
systemctl status/start firewalld
# open the 2375 port
[root@localhost ~]# firewall-cmd --zone=public --add-port=2375/tcp --permanent
success
# reload the configuration
[root@localhost ~]# firewall-cmd --reload
success
# check the open port list
firewall-cmd --list-ports
- 使用idea测试连接docker, 看到Connection successful说明连接成功
如果是云服务器,则需要配置云服务器的安全策略和防火墙
所以如果我们是在云服务器测试的话,我们还是需要先去设置一下服务起的安全组策略。把端口配置上去。
以我的华为云服务起为例:把2375端口配置上去。
然后我们通过外网去访问服务器上面的docker远程api接口:
到这里,docker的远程访问就已经配置成功了。
referred link: https://blog.csdn.net/dragonpeng2008/article/details/96853040