Docker容器如何公开服务?

时间:2019-05-24 17:44:43

标签: docker

我正在通过以下命令部署服务堆栈: docker stack deploy -c <docker-compose.yml> <stack-name>

我正在映射docker上这些服务之一的端口,其中包含ports: 8000:8000

正在使用的网络驱动程序已覆盖。 我可以通过对等IP(?)通过l ocalhost:8000访问这些服务。

当我检查创建的网络时,我可以看到每个容器的本地IP(例如10.0.1.2)。但是容器的外部IP在哪里(如172.0。...)?

我正在虚拟机ubuntu上运行这些docker容器。

如何从在其他网络上运行的其他节点访问在容器上运行的服务?无法通过hostIP:port访问吗?

如果是,我如何获取主机IP?当我执行docker-machine IP时,出现“主机未运行”。

[编辑:我没有在virtualbox中的主机和VM之间进行端口映射。现在可以了!]

在同一群内的容器之间进行通信的最佳方法是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

  

在同一群内的容器之间进行通信的最佳方法是什么?通过名称发现?

通常,如果您在容器之间进行通信,则应使用容器/服务名称。

对于您的其他问题,您可能不需要像nginx或traefik这样的反向代理。