2

私がやった事:

[spdocker@codebrag02 ~]$ weave launch
[spdocker@codebrag02 ~]$ weave env
export DOCKER_HOST=unix:///var/run/weave/weave.sock ORIG_DOCKER_HOST=
[spdocker@codebrag02 ~]$ eval $(weave env)

[spdocker@codebrag02 ~]$ weave run -idt --name hostA ubuntu bash
19c1caf5e6ebc6e398ddae58d253b3352847cdb78fdb58d77717450f3b156a0a
[spdocker@codebrag02 ~]$ weave run -idt --name hostB ubuntu bash
c0508959453c2d1af83ea98e7361be004fa75962897536bbb842a25382bae002
[spdocker@codebrag02 ~]$ docker exec -it 19c bash
root@hostA:/# ping hostB
PING hostB.weave.local (10.32.0.3) 56(84) bytes of data.
64 bytes from hostB.weave.local (10.32.0.3): icmp_seq=1 ttl=64 time=0.096 ms
64 bytes from hostB.weave.local (10.32.0.3): icmp_seq=2 ttl=64 time=0.061 ms
64 bytes from hostB.weave.local (10.32.0.3): icmp_seq=3 ttl=64 time=0.075 ms
^C
--- hostB.weave.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.061/0.077/0.096/0.016 ms
root@hostA:/# [spdocker@codebrag02 ~]$ 
[spdocker@codebrag02 ~]$ ping hostA.weave.local
ping: unknown host hostA.weave.local
[spdocker@codebrag02 ~]$ ping hostB.weave.local
ping: unknown host hostB.weave.local
[spdocker@codebrag02 ~]$ 

私は startweave serviceと start 2 docker container、hostA と hostB を持っています。HostA の ping は hostB に成功しますが、 DOCKER HOSThostA.weave.localからping を実行できますか?

4

1 に答える 1

1

コンテナのホスト名を外部ホストから解決するよう求めていると思います。これを実現するには、ホストの DNS リゾルバーを変更して、Weave の DNS リゾルバーを指すようにする必要があります。そのアドレスは次のように表示weave dns-argsされます (これは で使用するためにフォーマットされていますがdocker run、あまり暗号化されていません)。

ホストの DNS リゾルバーを正確に変更する方法は、ホストの OS によって異なります。

他にも重要なニュアンスがいくつかあります。より高いレベルで達成しようとしていることについて、もう少し教えていただけますか?

于 2016-04-20T16:44:47.780 に答える