LoginSignup
8
9

More than 1 year has passed since last update.

Docker 初心者 | サービスについて > docker-compose と docker stack ( 公式チュートリアル part3 より )

Last updated at Posted at 2017-05-20

Get Started, Part 3: Services - Docker Documentation より

この章で扱うこと

  • ロードバランサーでアプリケーションをスケールさせる
  • スタック > サービス(今ここ) > コンテナ

サービスとは

  • アプリケーションの各部分は「サービス」と呼び方をする。
    • たとえば動画共有サイトなら、DBを扱うサービスとか、動画本体を扱うサービスとか、フロントエンドのサービスとかいう風に分かれるはず。
  • サービスは複数のコンテナによってなる。
  • サービスは1個のイメージから実行される。
  • スケーリングのためには、1個のイメージをどんなポートで、何個のコンテナで走らせるか、とかいう設定が必要だ。
  • 喜んでほしい。 docker-compose.yml を書けば、そんなこと朝飯前さ。

docker-compose.yml

公式チュートリアル part2 で作ったイメージを指定して compose ファイルを作る。

docker-compose.yml
version: "3" # この compose ファイルのバージョン
services:
  web:
    image: yumainaura/get-started # 自分のレポジトリのイメージ # python で Web サーバーを起動する
    deploy:
      replicas: 5 # 起動するプロセスの数
      resources:
        limits:
          cpus: "0.1" # CPUの上限値
          memory: 50M # メモリの上限
      restart_policy:
        condition: on-failure
    ports:
      - "80:80" # localの80番ポート:dockerの80番ポート をつなげる
    networks: # ネットワーク設定 (トップレベルに指定したものから選ぶ)
      - webnet
networks: # トップレベルのネットワーク設定
  webnet:

swarm

このコマンドを打っておく。意味については今後の章で明らかにされるらしい。

$ docker swarm init

アプリケーションを起動

getstartedlab というアプリケーション名を与えてデプロイする。
( 実行ではなくデプロイという扱い )

$ docker stack deploy -c docker-compose.yml getstartedlab

コンテナの確認

同じくアプリケーション名を与えてプロセスを確認する。

docker stack ps getstartedlab

docker-compose.ymlreplicas: 5 に設定してあるため、コンテナが5個起動している。
この replicas の設定を増やすだけで、スケールさせることが出来る。

ID            NAME                 IMAGE                          NODE  DESIRED STATE  CURRENT STATE           ERROR  PORTS
4hyp9xra2dmt  getstartedlab_web.1  yumainaura/get-started:latest  moby  Running        Running 45 seconds ago         
60ns7v9asl31  getstartedlab_web.2  yumainaura/get-started:latest  moby  Running        Running 46 seconds ago         
9o8clta8fpq9  getstartedlab_web.3  yumainaura/get-started:latest  moby  Running        Running 46 seconds ago         
w3tlfu97uffx  getstartedlab_web.4  yumainaura/get-started:latest  moby  Running        Running 46 seconds ago         
ybvi20wefg95  getstartedlab_web.5  yumainaura/get-started:latest  moby  Running        Running 46 seconds ago         

アクセスしてみる

http://localhost/ を見てみる。

ページを更新するたびにサーバーのホスト名が変わり、全部で五種類あるのが分かると思う。

image

image

アプリケーション終了

アプリケーション名を指定して rm する。

$ docker stack rm getstartedlab

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9