Docker守护进程套接字Docker守护进程可以通过三种不同类型的套接字监听Docker Engine API请求:unix 、tcp 和fd 。 默认情况下,在/var/run/docker.sock 处创建一个unix 域套接字(或IPC套接字),需要root 权限或docker 组成员身份。 如果需要远程访问Docker守护进程,则需要启用tcp 套接字。请注意,默认设置提供了对Docker守护进程的未加密和未经身份验证的直接访问,应该使用内置的HTTPS加密套接字或在其前面放置一个安全的web 代理来进行保护。你可以使用-H tcp://0.0.0.0:2375 监听所有网络接口上的2375 端口,或使用其IP地址-H tcp://ip:2375 监听特定网络接口上的2375 端口。通常使用端口2375 与守护进程进行非加密通信,使用端口2376 与守护进程进行加密通信。 注意:如果你使用的是HTTPS加密的套接字,请记住,仅支持TLS1.0 及更高版本。出于安全原因,SSLv3 及以下版本的协议不再受支持。 修改docker.servicevim /usr/lib/systemd/system/docker.service 在[Service] 部分,修改ExecStart 参数,在最后增加-H tcp://0.0.0.0:2375 ,监听所有网络接口上的2375 端口。 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 
重新加载配置文件和启动服务 systemctl daemon-reload && systemctl restart docker daemon-reload : 重新加载服务的配置文件,要是服务的配置文件发生变化,则需要重新加载 restart :重新启动服务。 查看dockerd 进程是否正在监听2375 端口: [root@izoq008ryseuupz ~]# netstat -antp | grep dockerdtcp6 0 0 :::2375 :::* LISTEN 22494/dockerd netstat 命令用于显示网络状态,部分选项的作用如下:
-a 或--all :显示所有连线中的Socket。 -n 或--numeric :直接使用IP地址,而不通过域名服务器。 -t 或--tcp :显示TCP传输协议的连线状况。 -p 或--programs :显示正在使用Socket的程序识别码和程序名称。 测试接下来测试一下通过localhost 是否能使用Docker Engine API。 [root@izoq008ryseuupz ~]# curl http://localhost:2375/version{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"19.03.13","Details":{"ApiVersion":"1.40","Arch":"amd64","BuildTime":"2020-09-16T17:02:21.000000000+00:00","Experimental":"false","GitCommit":"4484c46d9d","GoVersion":"go1.13.15","KernelVersion":"3.10.0-514.26.2.el7.x86_64","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.3.7","Details":{"GitCommit":"8fba4e9a7d01810a393d5d25a3621dc101981175"}},{"Name":"runc","Version":"1.0.0-rc10","Details":{"GitCommit":"dc9208a3303feef5b3839f4323d9beb36df0a9dd"}},{"Name":"docker-init","Version":"0.18.0","Details":{"GitCommit":"fec3683"}}],"Version":"19.03.13","ApiVersion":"1.40","MinAPIVersion":"1.12","GitCommit":"4484c46d9d","GoVersion":"go1.13.15","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-514.26.2.el7.x86_64","BuildTime":"2020-09-16T17:02:21.000000000+00:00"} curl 是常用的命令行工具,用来请求Web服务器。不带任何参数时,curl 发出GET请求。
很显然可以通过localhost 使用Docker Engine API。 再来测试一下远程通过主机IP能否使用Docker Engine API,请求http://ip:2375/version 得到的页面如下图所示,很显然是可以的。

IDEA也是可以进行远程连接的。

可能的问题 如果远程访问不了,可能需要设置一下服务器的防火墙,应该是2375 端口没有暴露出去,所以远程访问不了,博主是阿里云的服务器(Centos7.3 )。

下载地址: nginx网站服务如何配置防盗链(推荐) 使用docker部署dubbo项目的方法步骤 |