4

参照: https://github.com/crosbymichael/skydock https://github.com/crosbymichael/skydns

最初に、これら 2 つのインスタンスを起動しました。

docker run -d -p 8080:8080 -p 172.17.42.1:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain docker

docker run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s   /docker.sock -domain docker -name skydns

そして、このセットアップは期待どおりに機能しています。

ここで、別の本番環境を生成したいと考えています。今回は、次のように env プロダクションで別のスカイドック コンテナーを起動しただけです。

docker run -d -v /var/run/docker.sock:/docker.sock --name skydock-prod crosbymichael/skydock -ttl 30 -environment prod -s /docker.sock -domain docker -name skydns

API のクエリを実行しても、本番用のスカイドキュメントは表示されません。

curl $(docker-ip):8080/skydns/services/

そして今、skydockの製品版をどのようにセットアップするのか疑問に思っています.

別の docker-host で実行する必要がありますか? 同じ docker ホストで起動した場合、どの DNS url エントリで新しいコンテナを利用できますか? 新しいコンテナを起動して本番環境で使用できるようにするときに、いくつかのフラグ/変数を渡す必要がありますか?

4

1 に答える 1

4

2 つ以上の skydock インスタンスが同じ docker.sock (単一のホスト マシン内) をリッスンする方法については触れません。概念的には正しくないと思います。Docker コンテナーは、論理環境 (本番、ステージングなど) について何も知りません。

skydns と skydock を使用してマルチホストをセットアップしました。別のホストで skydns を実行しています。他の 2 つのサーバーはそれぞれ、skydock の単一インスタンスを実行します。これは、すべてのコンテナーが異なる物理ホスト間で dns 名で表示されるように、すべての Docker コンテナーの IP を集中型の SkyDNS に登録します。

これらはすべて、Flannel ネットワーク オーバーレイhttps://github.com/coreos/flannel (etcd が必要)の上で動作しています。

于 2014-11-24T23:12:18.603 に答える