Docker 筆記 3 - docker-compose
介紹如何使用 docker-compose 管理多個容器
如果同時要管理彼此是有關連的多個 docker 容器,單純使用 docker 指令必須要自行記得容器之間的關聯
而使用 docker-compose,則可以輕鬆定義多容器服務
簡介
- Docker for Mac 預設
- python 所寫成的工具
- 由yaml定義
- 設定檔為 docker-compose.yml
- 依賴 docker 版本
官方文件:docker-compose
設定檔構成
docker-compose.yml 由兩個部分所構成
- version(版本要字串)
- services
- key -> DNS name(hostname)
其他工具
docker-swarm
- 看成 kubernetes 的分身
- 落地方便(kubernetes 準備工作很多)
- 高可用性 HA
- 價格便宜
組成(Node)
- 分兩個節點。
- Manager:
- 分派任務給 worker node
- 同時也是 worker node
- 控制整個 Docker Swarm 的部署
- 主控制節點
- 如果死掉,整個 docker swarm 就死掉了
- 可以有多台 manager,但只有一台 &*$%^^#???
- Worker:
- 被分派任務
- 不會主動分派任務
- 不知道其他 worker node
- Manager:
- 可以隨時 rolling update。
- 在所有 node 底下:
- Service:
- 一個Service包含一種container
- Service啟動不代表container啟動
- 可以對container進行health check
- Service可以啟動複數個container(replicas)
- Task
- 主要是由Service帶起來的
- 代表在docker container內執行的指令
- task會在node上到執行結束為止
- Service: