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

标签 macos docker boot2docker

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

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

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

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

但是我想知道:
是否有一种自动方法可以从 docker 容器中找到主机的私有(private) IP 地址?

最佳答案

您可以通过环境变量向包含的应用程序提供 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.

使用以下命令运行您的容器镜像:
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

关于macos - 从在 boot2docker/osx 中运行的 docker 容器中查找主机 ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30026970/

相关文章:

docker - 是否有官方的 Docker Engine 安全通知邮件列表或其他 channel ?

docker - 为 Visual Studio Docker-Compose 项目设置启动 URL

performance - 在没有共享文件夹的Windows上,Boot2docker非常慢

开箱即用的 Ubuntu Docker 镜像?

objective-c - 如何在不对其进行子类化的情况下使用 NSCollectionViewItem?

python - Scrapy导入错误: cannot import name xmlrpc_client

c++ - macOS 命令行编译 g++ OpenGL ES .cpp 文件

docker - 启动Docker容器会产生docker-credential-secretservice:连接已关闭

docker - 如何从本地到远程机器使用docker?

c++ - 如何在 Windows 和 CMake 上使用 Visual Studio 为 Mac OS X 编译 C++