2017-10-30 10 views
0

内のコマンドを実行している:は、ドッキングウィンドウを使用して、次のネットワークを作成した後ドッカーユーザー定義されたネットワーク

sudo docker network create --driver bridge mynet_nw 

は、どのように私はこのネットワーク内からコマンドを発行することができますか?つまり、私のマシンはmynet_nwの中にありますので、mynet_nwの中に作成された別のドッカー画像にpingコマンドを発行できますか?

Thxを

答えて

1

あなたの問題は、ネットワーク内の任意のドッカーコンテナからのコマンドを。最初にコンテナを追加するだけです。それについてはdocker network connectを参照してください。

どちらの方法でも、ネットワーク上のDockerコンテナは、同じネットワーク上の他のDockerコンテナと通信できます。あなたのホスト、containerA、およびcontainerBを持っていると仮定すると、あなたがお互いからこれら3つのいずれかにpingを実行できるようになります:

containerA:~$ ping 172.18.0.1 # from containerA to host 
56 bytes from 172.18.0.1: icmp_seq=0 ttl=64 time=0.101 ms 
56 bytes from 172.18.0.1: icmp_seq=0 ttl=64 time=0.098 ms 
56 bytes from 172.18.0.1: icmp_seq=0 ttl=64 time=0.102 ms 
56 bytes from 172.18.0.1: icmp_seq=0 ttl=64 time=0.100 ms 

containerA:~$ ping 172.18.0.3 # from containerA to containerB 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.082 ms 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.079 ms 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.116 ms 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.094 ms 

は、あなたがホスト名を知っているAsssuming、あなたは直接ホスト名を持つにも、pingを実行できるはずです。これは、ホストにpingを実行しようとすると少し怪しいかもしれませんが、コンテナ間で動作するはずです。

containerA:~$ ping containerB # from containerA to containerB 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.067 ms 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.084 ms 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.080 ms 
56 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.0811 ms 
+0

私は containerAを実行できます。ip addreesesを使用して$ピングcontainerBの#containerAからc​​ontainerB にO回避が –

+0

と仮定すると、ホスト名が設定されている〜、あなたは直接pingを実行することができます。私はIPアドレスを使うのが好きですが、それは私だけです。 –

1

は、一般的に私は、ドッキングウィンドウのネットワークコマンドのマニュアルを読むことをお勧め:https://docs.docker.com/engine/reference/commandline/network_connect/#related-commands https://docs.docker.com/engine/userguide/networking/work-with-networks/

とにかくドッカネットワークは、ネットワークを生成し、あなたはそこでコマンドを実行するためのコンテナが必要。

例:

docker run -it alpine --network mynet_nw /bin/bash 
ping mydb 

あなたは、コンテナの名前を知っていればあなたはなかれホスト自体からネットワークを確認することができます。

INSTANCE_NAME='myalpine' 
IPADD=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_NAME) 
ping $IPADD