我有一个MySql容器和另一个带有Jython应用程序的docker容器。
在Jython应用程序内部 - 这是一个连接到MySql的连接字符串(它适用于主机):
mysql_url_string jdbc:mysql://localhost/
...
这不适用于2个docker容器(1个Mysql,2个Jython应用程序)。
我应该为连接字符串使用什么IP地址(而不是localhost
)?
感谢。
答案 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地址的方法将不同。