2017-06-18 124 views
0

我是Docker的新手。Docker容器在本地連接到MySQL數據庫 - >重定向到另一個容器

我讀過,最好每個容器保留一個應用程序。

我需要運行web應用程序(LAMP堆棧)。所以我找到了運行PHP + Apache的容器。

現在我需要設置一個mysql容器。但我不確定什麼是正確的做法。

我讀過可以將多個容器連接在一起。

這個想法是當它試圖在本地連接到mysql數據庫時,讓它運行PHP + Apache的容器的trasnparent。

但將所有本地連接重定向到另一個容器。

我的另一個想法是爲主機提供環境變量,所有連接都應該在哪裏進行。在這種情況下,我需要有可公開訪問的mysql服務器,但我需要保持私有狀態並且只能在本地訪問。

你能否建議一個更好的選擇在我的情況下選擇?

謝謝

回答

1

使用docker-compose

例如,從這個docker-compose.yml開始。把它放在同一目錄作爲你的PHP Dockerfile:

version: "3" 
services: 
    web: 
    build: . 
    ports: 
     - 8000:80 
    depends_on: 
     - db 
    db: 
    image: mysql 
    environment: 
     - MYSQL_ROOT_PASSWORD=something 
    volumes: 
     - ./mysql-data:/var/lib/mysql 

然後:db:3306

docker-compose up 

所以拜碼頭工人的網絡,你可以從你的PHP,因爲這一點。

+0

感謝您的回答,所以'db'將由docker在內部解析爲vaild主機名? – bxfvgekd

+0

是的。這是正確的。它將解析爲db容器eth0 ip。用'docker inspect container-id'查看它 – Robert

+0

我從來沒有聽說過這個功能,謝謝你指出,我會檢查 – bxfvgekd

相關問題