我有一个 IPv6 本机容器,在端口 8000 上运行一个小型 Web 应用程序。
在 Docker 主机上,我可以使用全局 IP 访问 Web 服务,但从另一台主机连接时收到“连接被拒绝”。但是,可以从其他主机对容器执行 ping 操作。
容器中的服务有效
# curl "http://[2a01:4f8:10a:2cc5:0:242:ac11:2]:8000"
I'm b6032b33bc12
Run Code Online (Sandbox Code Playgroud)
但是,从另一台主机运行:
{2.1.5p273} curl "http://[2a01:4f8:10a:2cc5:0:242:ac11:2]:8000"
curl: (7) Failed to connect to 2a01:4f8:10a:2cc5:0:242:ac11:2 port 8000: Connection refused
Run Code Online (Sandbox Code Playgroud)
然而,ipv6 地址是可 ping 通的:
{2.1.5p273} ping6 2a01:4f8:10a:2cc5:0:242:ac11:2
PING 2a01:4f8:10a:2cc5:0:242:ac11:2(2a01:4f8:10a:2cc5:0:242:ac11:2) 56 data bytes
64 bytes from 2a01:4f8:10a:2cc5:0:242:ac11:2: icmp_seq=1 ttl=60 time=0.385 ms
64 bytes from 2a01:4f8:10a:2cc5:0:242:ac11:2: icmp_seq=2 ttl=60 time=0.452 ms
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
有关我的环境的更多详细信息:
# docker -
Docker version 17.03.1-ce, build c6d412e
Run Code Online (Sandbox Code Playgroud)
该守护进程使用以下参数来启用 ipv6:
--experimental=true --ipv6 --fixed-cidr-v6=2a01:4f8:10a:2cc5::2/64 …Run Code Online (Sandbox Code Playgroud)