Mac 上的 Service Fabric Docker 仅公开一个端口

Service Fabric Docker on Mac Only Exposes a Single Port

我正在尝试在本地 MacBook Pro 运行 Docker 桌面上试用 Service Fabric。我正在关注位于此处的 Microsoft 文档:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started-mac

当我启动 Docker 容器时,我调用了这个命令

docker run --rm --name svcfabric -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18

但是,唯一暴露的端口是25106。无法访问19080 上的Web 控制台。端口 19000 未公开。

我通过 运行

看到了这个
sudo lsof -i -nP | grep LISTEN

只有 docker 行显示

com.docke 29799        username   51u  IPv6 0x34c6afc17f8b91eb      0t0    TCP *:25106 (LISTEN)
com.docke 30499        username   11u  IPv4 0x34c6afc15c8ec573      0t0    TCP 127.0.0.1:54131 (LISTEN)

但是,如果我做一个

docker port svcfabric

它将列出所有预期的端口...(我将进行采样,但在范围内,它会运行很长时间)

19000/tcp -> 0.0.0.0:19000
19000/tcp -> :::19000
25109/tcp -> 0.0.0.0:25109
25109/tcp -> :::25109
25153/tcp -> 0.0.0.0:25153
25153/tcp -> :::25153
25155/tcp -> 0.0.0.0:25155
25155/tcp -> :::25155
25182/tcp -> 0.0.0.0:25182
25182/tcp -> :::25182
25100/tcp -> 0.0.0.0:25100
25100/tcp -> :::25100
25125/tcp -> 0.0.0.0:25125
25125/tcp -> :::25125

如果我从 docker run 命令中删除端口范围并且只有 -p 19080:19080 -p 19000:19000,那么只会暴露端口 19000。如果我只有 -p 19080:19080,那么端口 19080 可以工作,我可以调出 Web 控制台。

谁能告诉我这是怎么回事?

https://github.com/docker/for-mac/issues/5247

所以...原来是 IPv6、Mac 和 Docker 的错误。