2

複数のホストで Docker を実行しており、Consul をキー値ストアとして使用しています。オーバーレイ ネットワークを作成できます。コンテナは互いのホスト名と IP を確認できます。コンテナが作成または破棄されると、/etc/hosts が適切に更新されます。ただし、異なるホストにあるコンテナーは実際には相互に接続できません (同じホストにあるコンテナーは接続できます)。

私はログを調査し続けており、Docker デーモンのログには次のものが含まれています。

[INFO] serf: EventMemberJoin: vagrant-ubuntu-trusty-64 192.168.57.103

[ERR] memberlist: Conflicting address for vagrant-ubuntu-trusty-64. Mine: 192.168.57.103:7946 Theirs: 192.168.57.102:7946

[ERR] serf: Node name conflicts with another node at 192.168.57.102:7946. Names must be unique! (Resolution enabled: true)

Docker デーモンは何らかの方法で自分自身を識別する必要がありますか? 各デーモンは単にホスト名を識別子として使用するため、Serf が混乱しているようです。

4

2 に答える 2

6

回答: Docker デーモンは (デフォルトで) ホスト名に基づいて識別されるため、クラスター メンバーには一意のホスト名が必要です。いったいなぜ、Docker はこれをチュートリアルから除外したのでしょうか?

于 2016-01-13T15:07:49.157 に答える
3

docker が実行されているマシンのホスト名を確認します。ホスト名を確認するには、ターミナルでこれを実行します。

hostname

すべてのノードで異なる必要があります。

于 2016-07-06T19:08:57.143 に答える