我正在尝试通过tcp从远程计算机访问dockerd守护程序。
我首先要说的是,我知道非加密的安全风险,并且会采取行动,但无法正常工作。
我已尽力设置了一切,但似乎无法从远程计算机进行连接。
我的daemon.json文件中包含以下内容
{
"hosts": ["tcp://172.16.16.62:2375", "unix:///var/run/docker.sock"]
}
我可以看到它正在netstat的正确端口上监听
tcp 0 0 hostname:2375 0.0.0.0:* LISTEN
我什至可以从本地主机连接到它
docker -H tcp://172.16.16.62:2375 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ddc2e3f97067 Image "/usr/sbin/sshd -D" 3 days ago Up 27 minutes 0.0.0.0:2200->22/tcp, 0.0.0.0:4400->8000/tcp epic_lamarr
7867cd6193df Image2 "/usr/sbin/sshd -D" 7 days ago Up 27 minutes 0.0.0.0:2201->22/tcp competent_brahmagupta
但是从远程主机上我会得到
docker -H tcp://172.16.16.62:2375 ps
Cannot connect to the Docker daemon at tcp://172.16.16.62:2375. Is the docker daemon running?
我可以确认交通已经到了。
sudo tcpdump -ni any port 2375 -s 0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
08:35:06.451656 IP 172.16.16.61.48096 > 172.16.16.62.2375: Flags [S], seq 3191742733, win 29200, options [mss 1460,sackOK,TS val 1080792310 ecr 0,nop,wscale 7], length 0
08:35:06.452992 IP 172.16.16.61.48098 > 172.16.16.62.2375: Flags [S], seq 4090360, win 29200, options [mss 1460,sackOK,TS val 1080792312 ecr 0,nop,wscale 7], length 0
我似乎无法理解为什么它没有响应。