SwarmのCompose Stack
Docker SwarmでComposeのようにスタックを使用してサービスをデプロイする方法
Claude Opus 4.5による翻訳
AI生成コンテンツは不正確または誤解を招く可能性があります。
SwarmでCompose
前回、runコマンドと似たserviceコマンドを使ってSwarmにコンテナを起動し、スケールを調整しました。 今回はcomposeコマンドと似たstackについて学びましょう。 スタックとは、1つ以上のサービスをグループにまとめた単位で、アプリケーション全体の構成を定義します。 簡単に言えば、Swarmで動作する(スケール機能が含まれた)composeだと考えましょう。 また、特徴としてcomposeと同様に同じネットワークに含まれます。
まずネットワークを1つ作成しましょう。
$ docker exec -it manager \
docker network create --driver=overlay --attachable testtestという名前のネットワークを作成しました。 次にstack-composeファイルを作成しましょう。 docker-stack.yaml
version: "3"
services:
flask-echo:
image: minpeter/flask-echo
deploy:
replicas: 3
placement:
constraints: [node.role != manager]
ports:
- "5000:5000"
networks:
- test
nginx-echo:
image: minpeter/nginx-echo
deploy:
replicas: 3
placement:
constraints: [node.role != manager]
depends_on:
- flask-echo
ports:
- "8080:80"
networks:
- test
networks:
test:
external: trueファイルをmanagerコンテナに送る必要があります。docker cpコマンドを使用しましょう。
$ docker cp docker-stack.yaml manager:/docker-stack.yamlこれでstackをデプロイする番です。
$ docker exec -it manager \
docker stack deploy -c /docker-stack.yaml echoこれでhello, flask!を出力するシンプルなページが8080ポートで起動しました。
デプロイされたサービスを確認しましょう。
$ docker exec -it manager \
docker stack services echoスタックがコンテナをデプロイした方式を確認するには、次のコマンドを使用しましょう。
$ docker exec -it manager \
docker stack ps echo参考資料
作成日:
更新日: