私は docker を使い始めましたが、主に Docker コンテナーが軽量 VM のようなものであるため、気に入っています。しかし、docker コンテナーが相互のホスト名をどのように解決できるかを理解することはできません。それらはIPを使用して相互に接続できますが、ホスト名を使用しないため、コンテナー内の/ etc/hostsを編集してそれを補うことさえできません。コンテナーを再起動すると、異なる IP が取得されるため、IP の代わりにホスト名を使用して相互に通信したいと考えています。たとえば、Zookeeper クラスターの Zookeeper インスタンスをコンテナーで実行し、Zookeeper サーバーのホスト名を構成 (zoo.cfg) ファイルに入れたいとします。
質問する
12847 次
3 に答える
3
Docker リンク ( https://docs.docker.com/userguide/dockerlinks/ )をチェックする価値があるかもしれません。実行中のコンテナーにリンクすると、接続先のコンテナーのホスト エントリが追加されます。
彼らの例では、彼らは示しています
$ sudo docker run -t -i --rm --link db:db training/webapp /bin/bash
root@aed84ee21bde:/opt/webapp# cat /etc/hosts
172.17.0.7 aed84ee21bde
. . .
172.17.0.5 db
ここに示すように、bash にあるアプリケーションを という名前のコンテナーにリンクし、その後、そのコンテナーの IP アドレスを持つdb
ホスト エントリが追加されます。db
したがって、zookeeper を実行している場合は、起動したコンテナを単に Zookeeper にリンクするだけで済みます。これが役立つことを願っています!
于 2014-10-09T08:54:10.593 に答える