我刚刚开始使用Docker,我发现它很精彩。我试图为Magento构建一个2容器环境,第一个用于apache的容器和第二个用于mysql的容器。我将两个容器链接在一起,我在Apache容器上安装了Magento,使用了作为DB Host的Mysql容器。我从apache容器上输入“env”的env变量中获取了链接的mysql容器的ip。它工作正常,但问题是Magento将mysql服务器的ip保存在local.xml文件中。如果我重建mysql容器,它会获得一个新的ip地址,magento会停止工作,直到我更新local.xml文件。使用php设置文件(即wordpress)我可以使用函数getenv("MYSQL_PORT_3306_TCP_ADDR")
动态获取正确的IP地址,但如果它保存在像Magento这样的静态文件xml文件中,我该怎么办?
答案 0 :(得分:2)
我找到了!当容器通过--link选项链接到另一个容器时,docker会自动在容器/ etc / hosts中添加一个条目,其中包含刚刚链接的容器的别名和IP地址!
172.17.0.2 mysql 9e37a5c0a444 my-mysql
我只需要用主机名(mysql或my-mysql)替换mysql服务器的IP地址,并且当IP地址改变时它也可以工作