2015-06-05 30 views
3

我對Docker非常陌生,目前我試圖運行一個Wordpress網站(僅在我的本地計算機上進行測試 - 不是實際託管)。我目前有三個容器:一個用於存儲我的數據的Linux發行版,由MySQL容器使用,最後是一個Wordpress容器。如何使用Docker容器運行多個單獨的WordPress網站

我可以成功訪問和編輯我的Wordpress網站,但我想嘗試在不同的端口上運行多個網站,但我不確定如何操作。我需要創建三個全新的容器,還是可以使用相同的MySQL和數據存儲容器,並只需製作一個不同的wordpress容器?

任何幫助將不勝感激,謝謝!

回答

6

如果您使用的是官方的Wordpress圖片,您可以使用相同的MySQL容器。只需爲每個Wordpress容器提供不同的數據庫。您可以定義數據庫WordPress的容器中的環境變量,例如:

docker run --name wordpress1 --link some-mysql:mysql -p 8080:80 -e WORDPRESS_DB_NAME=wordpress1 -d wordpress

docker run --name wordpress2 --link some-mysql:mysql -p 8081:80 -e WORDPRESS_DB_NAME=wordpress2 -d wordpress

docker run --name wordpress3 --link some-mysql:mysql -p 8082:80 -e WORDPRESS_DB_NAME=wordpress3 -d wordpress

0

只要他們至少使用相同的數據庫或相同的數據庫服務器(其中btw不會將數據庫放在容器中,數據庫將寫入磁盤並破壞使用容器的目的,除非該容器永遠不會改變位置),你最好爲每個容器創建新的wordpress容器,他們可以共享容器的層次,所以3個wordpress容器不會太大,唯一不同的層是網站的代碼,所以這是你最好的選擇。

+0

爲什麼你認爲一個容器內的數據庫中失去了使用的容器的目的是什麼?根據我的理解,這是使用容器的關鍵原因之一。與爲mysql服務器提供存儲的純數據容器相結合,它是我能想到的最便攜的解決方案之一。例如,請參閱[官方文檔](https://docs.docker.com/userguide/dockervolumes/#creating-and-mounting-a-data-volume-container),它甚至有一個託管數據庫的容器作爲其核心例。 –

+0

我相信是因爲容器中的文件系統(我所說的默認fs)是短暫的。在那裏,如果該容器的PID 1,這可能是DB守護程序進程,則存儲的數據將丟失。另外,您不能保證數據庫容器始終可以位於同一主機上,除非您只有一個用於數據庫容器的主機。 Flocker和其他一些工具在解決這些問題方面做得很好,但是獨立容器並沒有解決這個問題。 –

相關問題