やったこと
docker を使ってみます。
チュートリアルの Part5 です。
調査
スタック (stack)
スタックは相互関係を持つサービスのグループであり、依存関係を共有します。そして、同時にオーケストレート(訳者注;複数のサーバ上で一斉に挙動する)やスケール(訳者注;サービスの拡大および縮小)します。
docker-compose.yml の準備
docker-compose.yml
version: '3'
services:
web:
image: hogehoge/get-started:part1
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- '80:80'
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
redis:
image: redis
ports:
- "6379:6379"
volumes:
- ./data:/data
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
networks:
webnet:
※ web.image
はご自身の環境に合わせて変更してください
myvm1
環境にコピー
$ docker-machine scp docker-compose.yml myvm1:~
ディレクトリ準備
ホスト上の ./data
に対して、Redis コンテナでは、/data
でアクセスします。
$ docker-machine ssh myvm1 "mkdir ./data"
デプロイ
$ docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml getstartedlab"
確認
$ docker-machine ssh myvm1 "docker stack ps getstartedlab"
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
zh7eyy78eeiw getstartedlab_redis.1 redis:latest myvm1 Running Running 21 hours ago
a7qov9u2po63 getstartedlab_visualizer.1 dockersamples/visualizer:stable myvm1 Running Running 21 hours ago
redis
と visualizer
が追加されているのが確認できると思います。
確認
redis
http://192.168.99.100
http://192.168.99.101
にアクセスする度にカウンタが増えていきます。
visualizer
http://192.168.99.100:8080
でページを見ることが出来ます。