恭喜大家完成了Docker的學習課程,這章節將會開始探討Docker-Compose,並在後面章節會逐步地把先前 Day-10 撰寫 Docker專用的Script 所寫的Script給轉換成Docker-Compose,敬請期待。
至於尚未讀過前面文章與對Docker還沒有一定掌握度的讀者,務必先到 Day-1 進化的開始,初探Container ,並消化Container與Docke的相關技術背景後,再來學習Docker-compose會較好理解。
docker-compose是一種用來規劃以及管理多容器開發的工具,透過docker-compose所需要的yaml檔來進行服務的設定,接著利用compose的指令即可啟動我們所需的所有Containers並設定好其服務,除此之外,也可用compose來區分不同environments(dev, test, uat, stg, prd),得以配合團隊的軟體開發流程。
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
Tips: Note: If the command docker-compose fails after installation, check your path. You can also create a symbolic link to /usr/bin or any other directory in your path.
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version
docker-compose version 1.27.1, build 1110ad01
https://docs.docker.com/docker-for-mac/install/
https://docs.docker.com/docker-for-windows/install/
在這章節同樣會透過個人經驗,給定好用程度。
version: '3'
services:
redis:
image: redis:3.0
ports:
- "6379:6379"
docker-compose create -f
docker-compose透過指定yaml檔,創建所有相關的容器
$ docker-compose create -f docker-compose.yaml
docker-compose start -f
docker-compose透過指定yaml檔,啟動相關容器
$ docker-compose start -f docker-compose.yaml
docker-compose up -f
docker-compose透過指定yaml檔,創建並啟動相關的容器
$ docker-compose up -f docker-compose.yaml
另外也可以帶入像是 —build之類的arguments,再啟動docker-compose前,重新build過image。
其他arguments請利用docker-compose up —help取得資訊。
docker-compose stop -f
docker-compose透過指定yaml檔,關閉所有相關的容器
$ docker-compose stop -f docker-compose.yaml
docker-compose rm -f
docker-compose透過指定yaml檔,移除相關容器
$ docker-compose rm -f docker-compose.yaml
docker-compose down -f
docker-compose在關閉時必須指定yaml檔,若不指定的話則預設為本地的docker-compose.yaml。
$ docker-compose down -f docker-compose.yaml
另外也可以帶入像是 —build之類的arguments,再關閉docker-compose時,同時移除相關的volumes。其他arguments請利用docker-compose down —help取得資訊。
docker-compose logs -f docker-compose.yaml
docker-compose在運行時,透過指定yaml檔,取得該docker-compose相關containers在前台運行的log,常常會配備tail以及f做使用
$ docker-compose logs --tail=10 -f
以上指令做的是在持續地觀看docker-compose的logs並讀最後的十行
docker-compose restart -f docker-compose.yaml
透過指令將所有的服務關閉並重啟,請注意只是重啟,並沒有刪除並重新創建容器。
$ docker-compose restart
docker-compose pause/unpause -f docker-compose.yaml
透過指令將所有的服務暫停/取消暫停
docker-compose top -f docker-compose.yaml
透過指令將指定yaml檔的服務顯示出來。
在這章節當中我們知道了docker-compose的初衷、安裝了docker-compose,並熟悉了docker-compose的相關指令,那再下一章節當中,我們會開始著手將之前的docker script改裝成docker-compose的yaml檔,敬請期待。
Docker獸進化~~ Docker-Compose 獸
https://docs.docker.com/compose/