Docker 輕量虛擬化 容器

部署Docker Compose 實例示範定義檔撰寫

2017-12-19
介紹過Docker Volume和Docker Network的運作原理和使用方式,以及建置Docker映像檔的Dockerfile撰寫技巧,接下來說明部署多容器架構工具Docker Compose,以及如何編寫相關之部署架構定義檔(docker-compose.yml),並可結合Docker Network和Docker Volume功能,輕鬆地就可以架設出完整的軟體系統架構。

help

顯示指令的詳細說明,每項指令都可透過此方式查詢說明。

images

容器啟動後,此指令可列出docker-compose.yml定義檔中的映像檔資訊,包括容器名稱、映像檔名稱、標籤版本、映像檔ID以及映像檔容量。

kill

直接刪除已啟動的容器,等同「docker kill」,使用kill只會刪除容器,其他Network、Volume資源並不會刪除,建議使用down。

logs

等同「docker logs」,顯示定義檔所執行之相關容器的標準輸出資訊。

pause

等同「docker pause」,將已啟動的容器服務之程序暫停。

port

等同「docker port」,查詢已啟動容器的連接埠對應情況,例如「docker-compose port wordpress 80」。

ps

等同「docker ps」,查看docker-compose.yml定義檔所啟動的容器狀況、連接埠對應。

pull

等同「docker pull」,拉取docker-compose.yml中image宣告的映像檔。

push

等同「docker push」,推送docker-compose.yml中build宣告的自建映像檔到Docker Hub。

restart

功能等同「docker restart」,重新啟動定義檔中的所有容器。

rm

等同「docker rm」,移除已停止運作的容器。

run

雖名為run,但與「docker run」用法不同,主要是用來除錯定義檔中的容器,例如「docker-compose run db」,會使用db的映像檔啟動一個容器,當發現某個容器服務無法正常啟動,可透過此方式偵錯。

scale

Compose指令中非常重要的功能,用於橫向擴展容器數量,當某個服務成為效能瓶頸時,可增加運行數量,並透過Docker Network內建的DNS名稱解析就可自動對應到新容器,雖然單一伺服器效益不大,但部署到Swarm叢集時就可突顯此功能的強大好處,文章後半段會用三層式架構示範此功能。

start

等同「docker start」,在前面使用create建立整個架構後,就必須使用start指令來啟動容器。

stop

等同「docker stop」,將已經啟動的服務容器停止運作。

top

等同「docker top」,列出已啟動的服務容器中所有程序,如圖5所示。


▲圖5 顯示Compose top結果。

unpause

等同「docker unpause」,將已暫停的服務容器解除,恢復成執行狀態。

up

等同「docker run」,是最常用的指令,若有服務容器未建置或未下載,則先build或pull,並create後,start定義檔中相關容器,若要以背景模式執行,還須加上「-d」,例如「docker-compose up -d」。

version

等同「docker version」,查看docker-compose執行檔的版本號碼。

以上就是所有Docker Compose指令的詳細說明,表1則列出所有指令的清單說明。

表1 Docker Compose指令說明

Compose進階範例:WordPress三層式架構

前面已介紹過WordPress與MySQL的兩層式架構,在此延伸增加一個Nginx Reverse Proxy服務,主要功能是擔任HTTP負載平衡角色,架構如圖6所示,其相關目錄結構如表2所示。


▲圖6 WordPress三層式架構。

表2 WordPress三層式架構目錄


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!