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

Posted

技术标签:

【中文标题】Mac 上的 Service Fabric Docker 仅公开一个端口【英文标题】:Service Fabric Docker on Mac Only Exposes a Single Port 【发布时间】:2021-04-24 09:21:57 【问题描述】:

我正在尝试在运行 Docker Desktop 的本地 MacBook Pro 上试用 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 控制台。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Mac 上的 Service Fabric Docker 仅公开一个端口的主要内容,如果未能解决你的问题,请参考以下文章

远程处理时 Service Fabric 上的重复请求

安装最新的 Service Fabric SDK 后,VSTS 上的持续集成中断

单个节点上的 Service Fabric 无状态服务部署

Service Fabric Api Gateway 上的 Application Insights 端到端中断

带有性能计数器的 Azure Service Fabric 上的 Azure Application Insights

未为部署在 Service Fabric Linux 集群上的 .Net 核心应用生成应用洞察