【问题标题】:docker desktop swarm service port not exposed (ingress mode)docker desktop swarm 服务端口未暴露(入口模式)
【发布时间】:2020-11-13 07:17:44
【问题描述】:

我正在尝试应用文章中的演示:

Scale ASP.NET Core Apps with Docker Swarm Mode

不幸的是,在 docker swarm 上创建并启动服务后,我无法访问 api http://localhost:5000/api/token 。但是,当我在正在运行的容器中调用 api(使用 docker exec)或使用 host 模式创建服务时,一切正常。

注意:我正在尝试在本地机器上使用 docker 桌面,所以我使用以下命令启用了 swarm 模式

docker swarm init --advertise-addr 192.168.56.1 

其中 192.168.56.1 是 VirtualBox ip

编辑:对应容器:

服务端口配置:

提前致谢。

【问题讨论】:

  • 这个 docker 桌面是否使用工具箱和docker-machine
  • 感谢您的回复@BMitch,我不这么认为,当我尝试“docker-machine”命令时,我得到的不是内部或外部命令。跨度>
  • 在这种情况下,我对 VirtualBox 参考感到困惑,因为它最后一次与 docker-machine 一起使用。当前版本的 Docker for Win 和 Mac 在幕后使用 hyperv 和 xhyve,您不应该在 VirtualBox 中看到 Docker VM 的 IP。
  • 屏幕截图相当难以辨认,并且无法让其他人搜索您的问题。请改为以代码格式的文本发布。

标签: docker .net-core docker-swarm docker-swarm-mode


【解决方案1】:

能否提供docker ps 命令的输出,我猜是下面的命令没有正确完成。

docker service create --publish 5000:5000 --name tokengen tokengen-img

【讨论】:

  • 感谢您的回复,我编辑了问题以添加它
  • 在端口部分下,它是空白的,这实际上意味着发布没有工作。我还看到目标端口为 80,发布的端口为 5000,这与 --publish 5000:5000 不匹配。所以可能服务创建没有正确运行或者没有创建所需的服务。
  • 再次感谢@Sreekanth,实际上我使用 --publish 5000:80 发布了它,并且在容器内它可以正常工作
猜你喜欢
  • 2019-06-04
  • 2019-06-22
  • 2018-09-03
  • 1970-01-01
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多