【发布时间】:2016-11-17 18:13:28
【问题描述】:
我在主机中运行的 docker 容器很少。我有一个场景,我需要将一个容器的 IP 地址映射到另一个容器中可用的配置文件。我知道我可以使用 docker inspect [container] 命令获取容器的 IP 地址。我假设每次重新启动容器时都会动态分配 IP 地址。所以每次我需要在另一个容器中更改这个 IP 地址。是否可以为容器提供静态 IP,或者我可以使用主机的 IP 地址而不是容器的 IP 地址。我是码头工人世界的新手。
还有一个案例,我需要将 IP 地址映射到在另一台主机上运行的容器。例如,我有一个在 HostA 中运行的 redis 容器和在 HostB 中运行的 tomcat 容器。为了从tomcat与redis通信,我需要在tomcat容器中映射redis的ip地址和端口。如何在 docker 中实现这一点?
【问题讨论】:
-
您几乎可以肯定不需要实际的 IP 地址,这是一种可怕的链接方式。使用容器链接——它被烘焙了。
-
我在 tomcat 容器中有一个属性文件,我必须在其中提供 redis 的 IP 地址。 tomcat 在启动时会读取这个属性并连接到 redis。那么链接将如何解决这个问题呢?使用别名链接容器是否意味着容器的主机名?
-
@Jugi 是的,它是主机名(或我在回答中所说的别名),您可以检查
/etc/hosts- here is example - 类似于localhost作为127.0.0.1的别名。在您的情况下,tomcat/etc/hosts将具有redis的 IP 地址。比如:172.17.0.5 redis -
@VladoDemcak。非常感谢..
标签: tomcat docker docker-compose dockerfile docker-machine