Get started with Docker Part 3: Services
Dodkcer Get Started 隨手記。
Part 3: Services
Linux 要先安裝 Docker Compose,Windows 的 Docker Desktop 已經包含 Docker Compose。
Service
分散式系統中各 app 都可稱為一個 “service”,儲存資料到 DB、處理 video transcoding 等等都可以是個 “service”。
Docker 的 services 是一堆在 production 的 containers。一個 service run 一個 image,service 會指定這個 image 要怎麼執行──使用哪些 port、會跑多少 container 等等。只要改變執行的 container instance 數量就能 scale service。透過 docker-compose.yml
定義、執行跟 scale services。
docker-compose.yml
docker-compose.yml
定義 container 在 production 該有什麼行為。
1 | version: "3" |
執行 service
跑 service 前要先:
1 | $ docker swarm init |
接著執行:
1 | $ docker stack deploy -c docker-compose.yml <stack_name> |
可以用以下兩個 command 看執行的 service:
1 | $ docker service ls |
兩個 command 的結果都是:
1 | ID NAME MODE REPLICAS IMAGE PORTS |
A single container running in a service is called a task.
列出 service 的 task:
1 | $ docker service ps <service_name> |
當然也可以用 docker container ls
看 service 的 running container。
列出 stack 所有 task:
1 | $ docker stack ps <stack_name> |
service 執行時如果想修改 task 數量,只要修改 docker-compose.yml
的 replicas
設定,再執行一次 docker stack deploy -c docker-compose.yml <stack_name>
就可以了!
要結束 service,首先關掉 app:
1 | $ docker stack rm getstartedlab |
離開 swarm:
1 | $ docker swarm leave -f |