9

私の Linux ネットワークでは、専用の macvlan ネットワークを介して、実行中のホストから Docker コンテナーに到達できません。この macvlan ネットワークへの他のすべての接続は問題ありません。

したがって、基本的なセットアップは次のとおりです。

DOCKER1       eth0  172.0.0.1 (default)
  |           eth1  10.0.0.1  (macvlan)
  CONTAINER1        10.0.0.11 (macvlan)

DOCKER2       eth0  172.0.0.2 (default)
  |           eth1  10.0.0.2  (macvlan)
  CONTAINER2        10.0.0.12 (macvlan)
  • ホスト DOCKER1 が CONTAINER1 にアクセスできない
  • ホスト DOCKER2 が CONTAINER2 に到達できない
  • ホスト DOCKER1 は DOCKER2 にアクセスできます
  • ホスト DOCKER1 は CONTAINER2 にアクセスできます
  • ホスト DOCKER2 は DOCKER1 にアクセスできます
  • ホスト DOCKER2 は CONTAINER1 にアクセスできます
  • すべてのコンテナが互いに到達可能
  • 物理ネットワーク内の他のすべてのデバイスは、すべてのデバイスに到達できます。
  • すべてがゲートウェイ/インターネットに到達できます

ホストを macvlan ネットワーク経由で独自のコンテナーに到達させるにはどうすればよいですか?

このネットワークを介してやり取りするには特定のアプリケーションが必要なので、使用しdocker execても問題は解決しません;)。

4

2 に答える 2

12

これを行うには、次のようにします。

ip link add foobar link enp7s0 type macvlan mode bridge
ip addr add 192.168.9.252/32 dev foobar
ip link set foobar up
ip route add 192.168.9.228/32 dev foobar

どこ:

enp7s0 - 物理アダプターの名前

192.168.9.252/32 - ネットワーク上の本物の新しい IP

192.168.9.228/32 - macvlan を使用したコンテナーの IP

これは再起動後は存続しないことに注意してください。そのため、再起動のたびにスクリプトを実行するか、別の方法を使用して永続化する必要があります。

于 2019-07-15T11:27:00.290 に答える