ネットワークモードのドッキングウィンドウの詳細な分析

I.はじめに

ドッカードッカーの実行がコンテナベースを作成するときは、-netネットワークモードオプションを使用することができますコンテナを指定し、ドッカーのデフォルトモードのネットワークは、次の4つがあります。

  • 指定されたホストモード、-net =ホスト;
  • 容器モード、-net =コンテナ:NAME_or_IDは、指定されました。
  • なしモード、-net =いずれも指定されていません。
  • ブリッジモード、-net =ブリッジは、デフォルトの設定を指定されています。

二、ホストモード(推奨されません)

ドッカーコンテナがホストモ​​ードに基づいて、独立したネットワーク名前空間の分離・サブシステムを実行するためにデフォルトで割り当てられます、コンテナが別のネットワークの名前空間を取得することはできませんが、ホストと共有ネットワーク名前空間は、コンテナは、独自の仮想ネットワークカードの設定ではありません自身のIPなどが、ホストのIPを使用するとポート。

三、コンテナモード(推奨されません)

独自のネットワークカードを作成していない、新しく作成されたコンテナは、独自のIPを設定しますが、指定されたコンテナと共有IP、ポート範囲。同一のネットワークに加えて、同じ2つの容器、例えば、ファイル、プロセスリスト、または単離されたような他のシステム、。

四、ブリッジブリッジモード(推奨)

1、基本

ドッカーブリッジモードがIPを提供し、各容器のネットワーク名前空間を割り当て、デフォルトのネットワークモード、であり、構成をルーティング、デフォルトでは、仮想ブリッジスイッチDocker0に接続された容器をドッカーであろう。

ホスト:
ここに画像を挿入説明注:このdocker0両方ブリッジカードは、それが仮想的であることに注意してください、仮想ブリッジスイッチです。ゲートウェイIPアドレス]ドッキングウィンドウコンテナはIPです。

ドッキングウィンドウコンテナ:
ここに画像を挿入説明
:私は現象を言いたいまず第一に、我々はドッキングウィンドウコンテナを開け、ifconfigコマンドは、もう一つのことになります
。注:ここでは私は2個のドッキングウィンドウコンテナを開け:
ここに画像を挿入説明注:のveth中国名は、仮想ネットワークカードのデバイスである、それが対になっていますコンテナを起動した後、vethxxxxと呼ばれる一端のホスト、ドッキングウィンドウコンテナにはeth0という男性(名前は固定されています)

2次ブリッジモードトポロジー

ここに画像を挿入説明

仮想ブリッジスイッチの詳細を表示するための3、brctlコマンド
yum install bridge-utils -y
brctl show

ここに画像を挿入説明

五、なしモード(推奨社)

あなたはpipworkツールの設定を使用する必要があるので、モデル名が示唆なしには、ネットワーク構成は、no ip、カードなし、ノー何も何もありません。
注:なしIPが存在しないので、何も存在しないネットワークモードでのドッキングウィンドウ実行コマンドは、もはや-pポートマッピング、ポートをマッピングすることはできませんが、解決策が見つからないと!
pipwork実際のネットワーク構成

1、編集ドッカ・ネットワーク・ファイル
vim /etc/sysconfig/docker-network
systemctl restart docker

ここに画像を挿入説明

2、編集のifcfg-ens33、のifcfg-BR0のネットワークプロファイル
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33

DEVICE=ens33
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BRIDGE="br0"
vim ifcfg-br0

DEVICE="br0"
BOOTPROTO=none
ONBOOT=yes
TYPE="Bridge"
IPADDR=172.16.193.200
NETMASK=255.255.255.0
GATEWAY=172.16.193.2 #利用pipework工具指定容器网关时,需要使用这个ip

注:次の配管ツール指定されたコンテナゲートウェイは、仮想ブリッジ、スイッチのIPカードを使用することはできません

systemctl restart network #使配置生效
ifconfig

ここに画像を挿入説明注:仮想ネットワークアダプタBR0にブリッジするens33インターフェース!

3、ダウンロード、pipworkツールをインストール
git clone https://github.com/jpetazzo/pipework
cp ./pipework/pipework /usr/local/bin/
4、スタートモード容器なし
docker run -itd -p 6022:22 --net=none docker.io/jdeathe/centos-ssh
ifconfig
5、提供されるツールを使用してpipworkネットワークドッキングウィンドウコンテナ
pipework    br0       0ae0e8cff698 172.16.193.100/24@172.16.193.2
#	虚拟网卡交换机的名称   容器ID		 指定容器的IP      指定容器的网关
#注意这里网关不能填172.16.193.200,至于为什么请看下文详解!
docker exec -it 0ae0e8cff698 /bin/bash
yum install net-tools -y
ifconfig
route -n
ping www.baidu.com #看看网络是否通了,通了就对了!

ここに画像を挿入説明ルックは、これはあなたがネットワークアダプタの仮想ブリッジスイッチのIP(172.16.193.200)にコンテナゲートウェイを置けば、あなたは内部ネットワークのIPにpingを実行することができ、成功します、ではない外部のネットワーク

6.なぜ仮想スイッチブリッジへのコンテナゲートウェイ(BR0)ネットワークカードのIP(172.16.193.200)が動作しませんか?

上記のチャートは、理解と組み合わせたモード・アーキテクチャを橋渡ししてください!

ゲートウェイのルーティングが必要になると、我々は、機能をルーティングする仮想ブリッジスイッチを持っていないので、我々はそのゲートウェイ172.16.193.200を設定したとします。だから、ルートできません!それはゲートウェイはLANのブロードキャストアドレスで到達する前に、あなたが172.16.193.2、172.16.193.2を記入した場合、ゲートウェイは見つけることができ、およびゲートウェイは、ルーティング機能。なぜ以前に設定ゲートウェイ172.16.193.200を行うことができます!ブリッジの合併IP IPと私たちのホスト仮想スイッチ以来。以前に記入すると非連結IPがホストで、ホストは、テーブルがルーティング機能である、ことができますルーティングされますroute -n

彼は188元の記事を発表 ウォンの賞賛150 ビュー30000 +

おすすめ

転載: blog.csdn.net/weixin_44571270/article/details/104444960