2017-07-18 61 views
0

我想在我的碼頭容器中安裝或添加一個mysql實例,並希望在我的應用程序在另一個碼頭容器中訪問該mysql實例。所以基本上我創建了一個包含我的應用程序的碼頭容器,我想訪問該容器內的一個mysql碼頭安裝和使用mysql

+0

你最好堅持https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#each-container-should-have-only-one-concern。去官方的MySQL docker,並將你的應用程序與它連接起來。 – mzl

+0

是的,其實這就是我所做的。我使用了官方的mysql。但我想鏈接到我的應用程序容器如何實現這一目標? –

+0

舊樣式(看起來像現在不推薦使用)是用「--link mysql:mysql」((不))來啓動你的應用程序請參閱https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks /)。所以..你besser使用用戶定義的網絡,因爲它推薦的方式(請參閱https://docs.docker.com/engine/userguide/networking/work-with-networks/)。 – mzl

回答

0

您可以使用網絡進行連接。看一下this file,它構建一個mysql容器並將其連接到網絡。然後將另一個容器連接到同一個網絡。所需容器使用其ip地址和端口訪問mysql容器。由於以下原因,我必須使用IP地址。

Docker嵌入式DNS服務器支持連接到給定網絡的容器的名稱解析。這意味着任何連接的容器都可以通過其容器名稱在同一網絡上ping另一個容器。從container2中,您可以通過名稱ping container3。

此功能不適用於默認網橋。 container1和container2都連接到橋網絡, 但您無法使用容器 名稱從container2 ping容器1。

來源:Working with networks

當我試圖做這個過程中,我寫了一篇關於它in my blog。可以幫助你。