0

このドキュメントを完成させました:

https://docs.docker.com/swarm/install-w-machine/

それは正常に動作します。

このドキュメントに従って、この EC2 インスタンスをセットアップしようとしました。

https://docs.docker.com/swarm/install-manual/

ステップ 4 にいます。検出バックエンドをセットアップします

さらに何をする必要があるかの手順を理解できません。

EC2 に manager0、manager1、consul0、node0、node1 の 5 つのノードを作成しました。次に、swarm でサービス ディスカバリをセットアップする方法を知る必要があります。

そのドキュメントでは、manager0 と consul0 を接続し、次に ifconfig を接続するように求め、次に etc0 インスタンスとして指定しています。これがどこから来ているのかわかりません。

最終的には、このコマンドを実行する場所 (どのノードで?) を知る必要があります。

$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

このステップをクリアするにはどうすればよいですか?

4

1 に答える 1

0

Consul は、作成した consul0 サーバー上で実行されます。したがって、基本的にはまず、worker0 と worker1 で docker をリモートで実行できるようにする必要があります。これがステップ 3 です。これを行うより良い方法は、次のコマンドでデーモンを直接編集することです。

sudo echo 'DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"' > /etc/default/docker`

次にドッカーを再起動します。その後、次で始まる docker コマンドを使用して、master0、master1、またはファイアウォールの背後にある他のインスタンスから docker をリモートで実行できることがわかります。

docker -H $WORKER0_IPADDRESS:2375 

たとえば、ワーカーの IP アドレスが 1.2.3.4 の場合、docker ps コマンドがリモートで実行されます。

docker -H 1.2.3.4:2375 ps

これは、swarm が実行されるものです。次に、実行したいコマンドで領事サーバーを起動します。これで問題は解決しました。それで、swarm コマンドを実行するときにその IP アドレスを使用する以外は、consul0 サーバーで他に何もする必要はありません。

したがって、$CONSUL0 が領事サーバーの IP アドレスを表している場合、これが swarm の残りの設定方法です。各ノードのローカル マシンでそれぞれを実行した場合:

consul0 で:

docker run -d -p 8500:8500 --restart=unless-stopped --name=consul progrium/consul -server -bootstrap

master0 と master1:

docker run --name=master -d -p 4000:4000 swarm manage -H :4000 --replication --advertise $(hostname -i):4000 consul://$CONSUL0:8500

worker0 と worker1 の場合:

docker run -d --name=worker swarm join --advertise=$(hostname -i):2375 consul://$CONSUL0:8500/
于 2016-06-15T06:55:31.103 に答える