我应该使用什么IP地址在Docker中进行通信?

时间:2018-03-27 19:09:15

标签: mysql linux docker

我有一个MySql容器和另一个带有Jython应用程序的docker容器。

在Jython应用程序内部 - 这是一个连接到MySql的连接字符串(它适用于主机): mysql_url_string jdbc:mysql://localhost/ ...

这不适用于2个docker容器(1个Mysql,2个Jython应用程序)。 我应该为连接字符串使用什么IP地址(而不是localhost)?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以简单地将2个容器链接在一起并通过容器名称引用它们,而不是使用IP地址(因为它们可能会更改,除非您专门定义网络配置)。

version: "3"
services:

  mysql:
    container_name: mysql
    image: somethingsomething/mysql:latest

  jython
    container_name: jython
    image: somethingsomething/jython:latest
    links:
      - mysql
    environment:
      jdbc_url: jdbc:mysql://mysql:3306

此链接也可以通过CLI完成(参见:https://linuxconfig.org/basic-example-on-how-to-link-docker-containers

如果您只是必须使用IP地址,则可以通过检查容器内的/ etc / hosts文件来获取链接后的IP地址。

编辑注意:

有其他方法可以在没有“链接”的情况下解决这个问题,但不需要更详细的信息来说明容器的设置方式已经很难提供。 即它们是主机网络或桥接网络上的独立容器,还是作为带有覆盖的docker服务创建的,或其他东西! 不同的场景改变了寻址创建和用于集装箱间通信的方式,因此查找IP地址的方法将不同。