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

Pat*_*ter 5 macos docker boot2docker

我刚刚尝试使用OS X上的boot2docker将应用程序移动到docker容器中.

此应用程序需要连接到主机系统上运行的mysql服务器(不在应用程序的容器或其他容器中).

现在我正在努力在"dockerized"应用程序中配置mysql主机名:到目前为止它只是连接到localhost,但这不再起作用,因为这不再指向主机mysql实际上正在运行.

作为一种快速解决方法,我已将我的工作站私有IP(在我的情况下为10.0.0.X)添加到应用程序的mysql连接配置中.

但我想知道: 是否有自动方式从docker容器中查找主机的私有IP地址

Plu*_*010 2

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

在容器中创建一个脚本,例如:

#!/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 e.g. in your app config.
Run Code Online (Sandbox Code Playgroud)

使用以下命令运行容器镜像:

docker run -e MYSQL_HOST=192.168.172.1 MYSQL_PORT=3306 your_image
Run Code Online (Sandbox Code Playgroud)

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