2016-12-15 15 views
6

macOSとdocker ubuntuを実行すると、ローカルネットワークのIPアドレスにpingできません。以下は私のドッカーコンテナーのネットワーク構成です。ホストマシンのIPアドレスに対してpingを実行できますが、ローカルネットワーク上の他のIPアドレスにアクセスすることはできません。dockerコンテナからローカルネットワークIPにアクセスできない

root# ping 172.17.101.192 
PING 172.17.101.192 (172.17.101.192) 56(84) bytes of data. 
From 172.17.0.3 icmp_seq=1 Destination Host Unreachable 
From 172.17.0.3 icmp_seq=2 Destination Host Unreachable 

root# ifconfig   
eth0  Link encap:Ethernet HWaddr 02:42:ac:11:00:03 
      inet addr:172.17.0.3 Bcast:0.0.0.0 Mask:255.255.0.0 
      inet6 addr: fe80::42:acff:fe11:3/64 Scope:Link 

この操作を実行するのに役立つネットワーク設定はありますか?

私はnet=hostを試しましたが、それはそれを助けていません。

+0

どのドッカーのバージョンを使用していますか? – Gaafar

+0

'1.13.0-rc4、build 88862e7' – montrealist

+0

docker-machineまたはdockerをmac(https://docs.docker.com/engine/installation/mac/)に使用していますか? –

答えて

8

私はMac用のdockerを使用していましたが、問題はローカルネットワークのアドレス指定と競合するdocker内部ネットワークでした。 この問題を解決するには、ドクターメニューのPreferencesにアクセスする必要があります。 PreferencesメニューDaemon>Advanced Menuでは、私は他のbipを供給することができます。

{ 
    "bip" : "12.12.0.1/24" 
} 

適用して再起動します。次回ドッカーは内部ネットワークで12.12.0.1/24と開始します。

2

私は次のことを試みたが、それは動作します:

mac-os $> ifconfig 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether 78:31:c1:bd:4b:84 
    inet6 fe80::1425:a90d:9c00:ef53%en0 prefixlen 64 secured scopeid 0x4 
    inet 10.191.41.1 netmask 0xfffff800 broadcast 10.191.47.255 
    nd6 options=201<PERFORMNUD,DAD> 
    media: autoselect 
    status: active 

だから私のIPが10.191.41.1です。次に、私は:

mac-os $> docker run -ti --rm ubuntu bash -c "apt-get update && apt-get install -y inetutils-ping && ping 10.191.41.1" 

これは、 "ping"コマンドをインストールし、私のホストにpingを試みます。

[...] 
PING 10.191.41.1 (10.191.41.1): 56 data bytes 
64 bytes from 10.191.41.1: icmp_seq=0 ttl=37 time=0.303 ms 
64 bytes from 10.191.41.1: icmp_seq=1 ttl=37 time=0.536 ms 
[...] 
+0

私の質問を更新しました – badal16

+0

私のMacにpingを実行できますが、ローカルネットワーク上のサーバにアクセスできません。 Dockerは、VM上で通常のブリッジネットワークを作成しません。だから、私は私のMacから同じアクセス権を持つブリッジネットワークを作成したい。 – badal16

2

ドッカーマシンを使用していると思います。

docker for macには、この機能を実現するnetworking improvementsが含まれています。これは私が使用しているもので、私はドッカーから私の内部ネットワーク上の他のホストに到達することができます。

+0

いいえ、Mac用ドッカーを使用しています。あなたのコンテナに特別なネットワーク設定をしましたか? – montrealist

+0

何も特別なものはありません。 しかし、私は安定したブランチを使用しています(あなたが持っているバージョンを見て)あなたはベータブランチにいます。 –

+1

(私はちょうどベータブランチをインストールしましたが、それも私のために働く) –

2

ドッカーの内部ネットワークがローカルネットワークのアドレス指定と競合している可能性があります。

デフォルトの内部ネットワークを172.31.0.0/24のように競合しないものに変更しようとします。これは、Macの実装が異なる場合、Linuxの中で真のですが、ドキュメントhereを参照してください、あなたがMac用ドッカーを使用している場合には、依存または:

# Use DOCKER_OPTS to modify the daemon startup options. 
DOCKER_OPTS="--bip 172.31.0.1/24" 

UPDATE:おそらく/etc/default/dockerに位置してあなたのドッカー起動オプション--bip 172.31.0.1/24に追加Linuxの場合

ノートパソコンを別のネットワークに接続しようとすると、192.168.0.0/16の範囲で十分です。

関連する問題