2015-05-04 101 views
5

我剛纔試圖將應用移動到使用在OS X boot2docker泊塢窗容器從boot2docker泊塢窗容器中運行查找主機IP/OSX

此應用程序需要連接到主機上運行的MySQL服務器系統(不在應用程序的容器或另一個容器中)。

現在我與配置「dockerized」應用中的MySQL主機掙扎:到目前爲止,它只是連接到本地主機,但因爲這不再指向主機MySQL的實際運行這個不工作了上。

作爲一種快速解決方法,我已將我的工作站私有IP(10.0.0.X)(我的情況)添加到應用的mysql連接配置中。

但是我想知道: 是否有自動的方式從一個碼頭工人容器內找到主機的私有IP地址

回答

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. 

運行與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

+0

這是一個有效的解決方案/一種方式 - 但我仍然好奇如何找到主機系統的IP :) –

+0

/sbin/ip route | awk'/ default/{print $ 3} '[看這裏](http://stackoverflow.com/questions/22944631/how-to-get-the-ip-address-of-the-docker-host-from-inside-a-docker-container) – Pluto1010

+0

@ Pluto1010。這在使用boot2docker時不起作用。 – foldl