从在boot2docker / osx中运行的docker容器中查找主机ip

我刚刚尝试在OS X上使用boot2docker将应用程序移动到Docker容器中。

这个应用程序需要连接到主机系统上运行的MySQL服务器(不在应用程序的容器或另一个容器中)。

现在,我正在努力configuration“dockerized”应用程序中的mysql主机名:到目前为止,它只是连接到本地主机 ,但是这不再工作,因为这不再指向主机mysql实际上运行。

作为一个快速的解决方法,我已经添加了我的工作站私有IP( 10.0.0.X在我的情况)到应用程序的mysql连接configuration。

不过,我想知道: 是否有一个自动的方式来find一个docker集装箱内的主机的私人IP地址

您可以通过环境variables向所包含的应用程序提供IP和端口。

在您的容器中创build一个脚本,如:

#!/bin/bash export $MYSQL_HOST export $MYSQL_PORT echo $MYSQL_HOST echo $MYSQL_PORT # TODO: maybe your have to write some config files at this point /start_your_app.sh # use the enviroment variables eg in your app config. 

运行你的containerimage:

 docker run -e MYSQL_HOST=192.168.172.1 MYSQL_PORT=3306 your_image 

看看例如http://serverascode.com/2014/05/29/environment-variables-with-docker.html