概要
docker 17.06 で swarm の使い方が変わっていたので試してみました
かなり簡単に使える印象です
Manager と Worker 2 つのノードを作成してどちらも dockerd を起動しておきましょう
ついでなので overlay ネットワークも試してみました
環境
- Ubuntu 16.04
- Docker version 17.06.2-ce, build cec0b72
Manager となるノードで初期化する
- docker swarm init
以下で実行する join 用のコマンドが表示されます
Worker となるノードで join する
docker swarm join --token SWMTKN-1-4n6elansbxnaz6iubmy2i171dptprfpflykqn3vjx53ef7kivy-65jhododu1mnkps3s95jfl86j 192.168.100.20:2377
Manager ノードで overlay ネットワークを作成する
docker network create -d overlay --attachable overlay1
attachable を指定すると作成したネットワークを手動でアタッチすることができるようになります
- docker network ls
で作成した overlay ネットワークを確認しましょう
Manager では表示されると思います
Worker 側では表示されません、が普通に使うことができるので試してみます
ちなみに ingress というデフォルトで作成されるネットワークは Manager にも Worker 側にもあります
overlay ネットワークを試してみる
Manager 側でコンテナを起動します
docker run -d --net overlay1 -p 80:80 --name nginx nginx
これで overlay ネットワーク上で起動するコンテナが 1 台作成されました
続いて Worker 側のホストでコンテナを起動してみます
docker run --rm --net overlay1 --link nginx alpine ping -c 5 nginx
これで実行すると Manager 側のコンテナにアクセスできると思います
Swarm 状態を解除する
まず Worker 側で
- docker swarm leave
します
Manager 側で
- docker node ls
を実行してみて leave した Worker 側のホストのステータスが Down になるのを待ちます
Down になったら Manager 側で
docker node rm 7jug2spgk3c1i335shlnmz885
することで Worker を切り離すことができます
Worker 側で docker info を実行すると Swarm の状態が表示されなくなります
最後に Manager 1 台になったら Manager で以下のコマンドを実行すると Manager を切り離せます
docker swarm leave --force
ちなみに swarm 状態が解除されると overlay ネットワークも勝手に削除してくれました
最後に
比較的新しめの docker で Swarm 機能を試してみました
かなり簡単に使えるようになっている印象です
昔は Swarm を管理する agent コンテナが起動する必要があったのですがそれはなくても動作するみたいです
KVS を管理する必要があると思うのでどこかで管理しているとは思いますが
0 件のコメント:
コメントを投稿