问题是docker-
py将容器端口放在其主机配置中的第一位,而docker客户端将其放在第二位。不过,更有趣的是我终于发现了它。诀窍是先安装socat,然后再安装
$ socat -v UNIX-LISTEN:/tmp/debug, fork UNIX-CONNECT:/var/run/docker.sock$ export DOCKER_HOST=unix:///tmp/debug
这样可以方便地查看docker客户端以及docker-py客户端的流量。
我在里面搜索PortBindings字符串。对于原始客户,这给了我:
"PortBindings": { "2424/tcp": [{"HostIp":"","HostPort":"2425"}], "2480/tcp": [{"HostIp":"","HostPort":"2481"}], "3000/tcp": [{"HostIp":"","HostPort":"3001"}]}虽然我的代码给了我
"PortBindings": { "2425/tcp": [{"HostPort": "2424", "HostIp": ""}], "2481/tcp": [{"HostPort": "2480", "HostIp": ""}], "3001/tcp": [{"HostPort": "3000", "HostIp": ""}] },这使一切显而易见。问题不在于未公开端口而是端口的错误顺序。



