Docker Swarmチュートリアルやってみた(overlayネットワーク)
6974 ワード
参考
構成図
手順
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
仮想ホスト「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
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
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の状態は以下
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-
eval $(docker-machine env --swarm mhs-demo0)
docker network create --driver overlay my-net
eval $(docker-machine env mhs-demo0)
docker run -itd --name=web --net=my-net --env="constraint:node==mhs-demo0" 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-
Author And Source
この問題について(Docker Swarmチュートリアルやってみた(overlayネットワーク)), 我々は、より多くの情報をここで見つけました https://qiita.com/tukiyo3/items/14e06c3dcf48ffcfbe6f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .