サンドボックスで docker swarm クラスターを構築しています。ディスカバリー用のマシンに 1 つの飼育係、1 つのスウォーム マスター、2 つのスウォーム ノードがあります。それらを接続しようとしましたが、swarm マスターで docker run コマンドを実行しようとすると、作業がノードに分散されません。またdocker info
、swarm マスターで実行すると、ノードが接続されていないことがわかります。何が間違っているのかわかりません。私の問題を再現する手順は次のとおりです。
空のpwd
/data フォルダーとpwd
、zoo.cfg を含む /config フォルダーがあります。
tickTime=2000
dataDir=/tmp/zookeeper
clientPort=2181
initLimit=5
-
#---- CREATE ZOO ---
docker-machine create --driver virtualbox zoo1
docker-machine start zoo1
eval $(docker-machine env zoo1)
docker pull jplock/zookeeper
docker run -p 2181:2181 -v `pwd`/conf:/opt/zookeeper/conf -v `pwd`/data:/tmp/zookeeper jplock/zookeeper
docker-machine ip zoo1 #############192.168.99.100
-
#--- CREATE CLUSTER ---
docker-machine create --driver virtualbox --swarm --swarm-master machine-smaster
docker-machine create --driver virtualbox --swarm machine-s01
docker-machine create --driver virtualbox --swarm machine-s02
-
eval "$(docker-machine env machine-smaster)"
docker run -p 2375:2375 -d -t swarm manage -H 0.0.0.0:2375 --advertise $(docker-machine ip machine-smaster):2375 zk://192.168.99.100:2181/swarm
docker run swarm list zk://192.168.99.100:2181/swarm
sleep 10
eval "$(docker-machine env machine-s01)"
docker run -d swarm join --advertise $(docker-machine ip machine-s01):2375 zk://192.168.99.100:2181/swarm
docker run swarm list zk://192.168.99.100:2181/swarm
eval "$(docker-machine env machine-s02)"
docker run -d swarm join --advertise $(docker-machine ip machine-s02):2375 zk://192.168.99.100:2181/swarm
docker run swarm list zk://192.168.99.100:2181/swarm
いくつかのコンテナーを実行する場合:
eval "$(docker-machine env machine-smaster)"
docker run hello-world
作業はノードにディスパッチされません (マスターによって実行されます)。docker info を実行すると:
eval "$(docker-machine env machine-smaster)"
docker info
swarm ノードが表示されません。