docker を使ってみる (チュートリアル Part3: サービス)
Docker
Published: 2019-10-17

やったこと

docker を使ってみます。

チュートリアルの Part3 です。

調査

サービスとは、正に「本番環境におけるコンテナ」なのです。

docker-compose.yml の作成

プロダクションにおける Docker コンテナのあるべき挙動を定義します

docker-compose.yml

version: '3'
services:
  web:
    image: friendlyhello
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - '80:80'
    networks:
      - webnet
networks:
  webnet:

Doker Swarm

Docker Swarm は Docker に対応するネイティブなクラスタリング用ツールです。Docker Swarm は標準 Docker API で操作できます。

コンテナを複数立ち上げる

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

getstartedlab というアプリケーションの名前をつけています。

サービスの情報表示

$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                  PORTS
xxng7z8u0l7w        getstartedlab_web   replicated          5/5                 friendlyhello:latest   *:80->80/tcp

コンテナの一覧表示

$ docker container ls -q
d529dc4961e3
8c47e3a1207e
7e8a65af869f
4d03c61b387e
1e3780cdd23a

停止

$ docker stack rm getstartedlab

swarm は起動したまま

$ docker node ls
ID                            HOSTNAME                STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
l8th1njjpb5qd71epemf95ony *   linuxkit-025000000001   Ready               Active              Leader              18.09.2

swarm も停止

$ docker swarm leave --force

参考