2017-10-08 47 views
0

我有以下碼頭集裝箱,它們都共享一個網絡連接,並exec進入api,允許我ping ,這一點很好。是否可以通過SqlAlchemy中的名稱連接到docker db容器?

CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS    PORTS        NAMES 
8790d379ddb9  codeinsight/database "/run-database.sh"  3 minutes ago  Up 3 minutes  0.0.0.0:3306->3306/tcp    db 
88b2022876cc  codeinsight/rest-api "python /usr/src/a..." 3 minutes ago  Up 3 minutes  3000/tcp, 0.0.0.0:3000->8989/tcp api 

然而,在連接時db與SQLAlchemy的(可能是不特定的框架!)有:

self.engine = create_engine('mysql+pymysql://user_name:[email protected]:3306/dbname', echo=True) 

我什麼也沒得到,但拒絕連接

Can't connect to MySQL server on 'db' ([Errno 111] Connection refused

所以,當鏈接被定義和建立時,是否可以通過容器名稱進行連接?或者我做錯了嗎?對於碼頭工人來說,這是全新的,並且樂於聽到最佳實踐等。謝謝。

+0

就個人而言,我不同意關閉投票,因爲這是專門詢問有關編程框架。 – LokiSinclair

回答

0

可以通過容器名稱進行連接。我認爲,您需要正確配置mysql容器,以允許api主機與您的user_name憑據連接。

0

您絕對可以連接兩個容器,關鍵是使用links指令。

所以這將會是下面的語法:

docker run --links mongo:mongo <rest of your stuff> <image name for python app> 

然後在應用程序,你會簡單地與主機相連mongo

+0

不知道 - 鏈接,將研究,謝謝。 – LokiSinclair

+0

經過仔細檢查,這是一個遺留指令,已經超過了分配網絡,這是我用過的方法 – LokiSinclair

+0

@LokiSinclair您是否定義了您的網絡? –

相關問題