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运城访问开启。

  1. 首先编辑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

  1. 接下来测试一下看是否能连接到docker api。上面的2375就是对应端口
    curl http://localhost:2375/verion

如果看到控制台有数据返回,这里其实就已经成功了一大半了。
接下来我们通过外网去访问该链接。

如果发现还是远程连不上,那么再配置linux的防火墙,否则不需要配置。
(我遇到过这个情况,当时我的防火墙是关闭的,就是无法访问docker,于是我开启了防火墙,并配置了访问规则,就好了)

  1. 查看docker进程是否监听

[root@localhost ~]# netstat -ano | grep 2375
tcp6 0 0 :::2375 ::😗 LISTEN off (0.00/0/0)

  1. 查看系统网络端口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

  1. 添加防火墙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  
  1. 使用idea测试连接docker, 看到Connection successful说明连接成功

    如果是云服务器,则需要配置云服务器的安全策略和防火墙
    所以如果我们是在云服务器测试的话,我们还是需要先去设置一下服务起的安全组策略。把端口配置上去。
    以我的华为云服务起为例:把2375端口配置上去。

然后我们通过外网去访问服务器上面的docker远程api接口:
到这里,docker的远程访问就已经配置成功了。

referred link: https://blog.csdn.net/dragonpeng2008/article/details/96853040

posted @ 2021-08-26 12:23  mediocrep  阅读(822)  评论(0编辑  收藏  举报
既然选择了远方,便只顾风雨兼程!