LoginSignup
6
6

More than 5 years have passed since last update.

Docker Swarmチュートリアルやってみた(overlayネットワーク)

Last updated at Posted at 2015-11-07

参考

構成図

docker-swarm.png

手順

Consulサーバ作成

仮想ホスト「mh-keystore」作成

仮想ホスト「mh-keystore」作成
docker-machine create -d virtualbox mh-keystore
「mh-keystore」上にconsulサーバコンテナ作成
docker $(docker-machine config mh-keystore) run -d \
    -p "8500:8500" \
    -h "consul" \
    progrium/consul -server -bootstrap
  • 8500portで待ち受け

仮想ホスト「mhs-demo0」作成

docker-machine create \
  -d virtualbox \
  --swarm --swarm-image="swarm" --swarm-master \
  --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \
  --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \
  --engine-opt="cluster-advertise=eth1:2376" \
  mhs-demo0

仮想ホスト「mhs-demo1」作成

docker-machine create -d virtualbox \
    --swarm --swarm-image="swarm:1.0.0-rc2" \
    --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \
    --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \
    --engine-opt="cluster-advertise=eth1:2376" \
  mhs-demo1

この時点でVirutalboxの状態は以下

virtualbox.png

docker network

swarm上にoverlay network「my-net」作成

eval $(docker-machine env --swarm mhs-demo0)
docker network create --driver overlay my-net

mhs-demo0上でnginxコンテナ作成、「my-net」に参加

eval $(docker-machine env mhs-demo0)
docker run -itd --name=web --net=my-net --env="constraint:node==mhs-demo0" nginx

別ホストで、「my-net」経由でnginxコンテナにアクセス

eval $(docker-machine env mhs-demo1)
docker run -it --rm --net=my-net --env="constraint:node==mhs-demo1" busybox wget -O- http://web
  • アクセスできたことを確認。

全ホストシャットダウンしてから再度起動の手順

  • my-netが存在しないため mhs-demo0 -> webを起動できない。
    • mh-keystore上の cunsulサーバを起動
  • mhs-demo0 -> webを起動
eval "$(docker-machine env mh-keystore)"
docker ps -a
docker start `コンテナID`

eval $(docker-machine env --swarm mhs-demo0)
docker start web

eval $(docker-machine env --swarm mhs-demo1)
docker run -it --rm --net=my-net --env="constraint:node==mhs-demo1" busybox wget web -O-
6
6
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
6
6