Docker Remote API 访问控制
- Docker的远程调用 API 接口存在未授权访问漏洞,至少应限制外网访问。建议使用 Socket 方式访问,监听内网 ip,docker daemon 启动方式如下:
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
##更改插入如下内容
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://192.168.7.168:2375
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# netstat -natp | grep dockerd
tcp 0 0 192.168.7.168:2375 0.0.0.0:* LISTEN 7772/dockerd
- 在宿主机的firewalld上做客户端的IP访问控制,只允许指定的主机可以远程访问
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.7.169" port protocol="tcp" port="2375" accept"
[root@localhost ~]# firewall-cmd --reload
[root@client ~]# docker -H tcp://192.168.7.168:2375 images
REPOSITORY TAG IMAGE ID CREATED SIZE