不幸的是我无法在这里转储配置所以我将尝试描述。
我有一个 docker compose 文件,当我在其上执行 docker up 时,一切运行正常。
但是,当我使用 Chrome 启动它时,docker stack deploy --compose-file {the file that worked}
我无法通过“localhost”访问该服务。但是我可以使用 Firefox。我注意到在 Chrome 中我可以使用“127.0.0.1”访问它。我尝试在主机上禁用 ipv6,这样我就可以在 Chrome 中使用“localhost”。后来我使用 curl 强制 ipv4 和 ipv6 进行了更多测试。
如果启用了 ipv6,则 Chrome 在解析“localhost”时似乎使用了我的 ipv6 本地地址,这似乎会在使用 docker swarm 时引发问题。
有没有关于让 docker swarm 与 ipv6 协同工作的想法?谢谢!
编辑:该堆栈在 OSX 上运行,并且我可以curl -6 localhost:port
成功使用,但与 Linux 不同。
编辑2:docker swarm ipv6 似乎坏了https://github.com/moby/moby/issues/24379
答案1
正确,Swarm 覆盖网络不支持 ipv6
答案2
您确定要使用 ip6 吗?因为另一个解决方案可能是修改 etc/hosts,以便 localhost 指向 127.0.0.1。