ドッカーコンテナ知人のネットワークモード

  1. ドッカーコンテナネットワークモデルの4種類の
    ドッキングウィンドウコンテナを作成するために、ドッキングウィンドウの実行に基づいては、コンテナがネットワークモードを指定するには、--netオプションを使用することができ、ドッキングウィンドウのネットワークモデルがあります:
    1)、なしモードは、
    コンテナは任意のネットワーク構成ではありません。--networkなし

    # docker run -it --network none busybox:latest
    Unable to find image 'busybox:latest' locally
    latest: Pulling from library/busybox
    ee153a04d683: Pull complete 
    Digest: sha256:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70
    Status: Downloaded newer image for busybox:latest
    / # 
    / # ifconfig
    lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    / # 

    コンテナ内にはIPアドレスが、割り当てられていないIPホスト、外部のネットワークに接続することはできません。
    2)、コンテナモード
    とネットワーク名前空間を共有する別の容器を実行しています。--network =コンテナ:ContainerIDの
    新しく作成されたコンテナは、指定されたコンテナで、独自のIP、ネットワークカード情報、共有ネットワーク環境を持っていません。コンテナネットワークに加えて、他のものはそのようなので、上のファイルシステム、プロセスとして、単離されます。
    3)、ホストモード
    とホストは、ネットワークの名前空間を共有しました。--network =ホスト

    # docker run -it --network host centos:latest

    上記のコマンドを入力すると、何も変更を見つけた後は、実際には、ホスト名ともホストとして、原因パブリックネットワークとホストに、コンテナに入りました。コンテナは、それに応じて開放容器、どのホストポート内で開いた場合、セキュリティが十分でないネットワークに関連して、ホストIPとポートを使用して、ネットワークカードやその他の情報を持っていません。
    4)、ブリッジブリッジモード
    NATネットワークモデルドッカーがドッカーデフォルトモードネットワークであり、ホストが自動的にネットワークに接続できるようにドッカー容器は、docker0仮想ブリッジに接続され、容器、別々の仮想IPをドッカーするネットワークの名前空間を割り当てます。
    図プロトタイプドッカーブリッジブリッジネットワーク
    ドッカーコンテナ知人のネットワークモード
    ホスト2つのネットワークカード:eth0の、docker0。ドッキングウィンドウのサービスは、ブリッジdocker0(#brctlショー)ビューの登場ながら、ブリッジカードdocker0(172.17.0.1)を作成し、自動的に開始されます。

    [root@docker-qa ~]# brctl show
    bridge name     bridge id       STP enabled     interfaces
    docker0     8000.024267a34c5d       no          veth008914e9
                                                veth04d070a5
                                                veth109e9cae
                                                veth126cdf5

    ドッキングウィンドウのdocker0ブリッジにすべての仮想NICを接続し、ドッキングウィンドウコンテナを開始するには、順番にIPを割り当てます。
    ドッカーブリッジブリッジ作成プロセス:
    1)、仮想NICデバイスのvethペアのホストを作成し、VETH対がデータ伝送のために、2つのネットワークデバイスを接続するために使用されます。
    2)のveth容器装置の一端に一対、名前はeth0、ブリッジdocker0の他端、brctl showコマンド。
    3)docker0 IPコンテナに割り当てられ、そして容器はdocker0 IPデフォルト・ゲートウェイが設けられています。
    4)容器は、ホストと通信することができます。ブリッジモードでは、同じ橋の下の容器が通信することができ、およびコンテナは、インターネットにアクセスすることができます。
    設定項目は、でLinuxシステムをnet.ipv4.ip_forwardに必要な前記ドッカー容器と外部ネットワークに接続することができ、主に重要な役割Linuxカーネル、Linuxカーネルは=は、eth0に容器ブリッジカード信号を転送は、eth0次に外側のネットワークに接続されました転送を設定するには

  2. 外側容器アクセスネットワーク
    アプリケーションコンテナは、-Pまたは-pポートマッピングパラメータで指定することができ、外部のネットワークに接続されます。

    -P   docker随机映射: docker run -d -P --name nginxTest nginx
    -p   docker指定映射:-p hostPort:containerPort
                     -p ip:hostPort:containerPort
                     -p ip::containerPort    #宿主机任意Port映射容器指定的Port
                     -p hostPort:containerPort:udp

    ホストがiptablesのルールになっている場合、ポートマッピングが完了すると、ポートは、ファイアウォールの対応する開口部が、後にiptablesのルールをルール参加します。

  3. -Link相互接続コンテナ
    船はポートマッピングに加えて、相互に接続するだけでなく、ドッキングウィンドウでコンテナの間の安全な相互作用のために指定された--linkパラメータを実行します。たとえば:
    DBコンテナを作成します:
    #docker run -d --name dbserver test/mysql

    Webコンテナを作成し、コンテナのDBサーバーに接続します

    #docker run -p 8080:8090 --name myweb --link dbserver:db  mywebtest:latest

    この時点で、ドッキングウィンドウは、2隻の相互接続された船舶に安全なトンネルを構築し、強化するために、暴露DBサーバーデータベースのコンテナ港を避けるために、DBサーバーコンテナドッキングウィンドウの実行中に-Pまたは-pポートを指定していない、ホストポートにマッピングする必要がありセキュリティ。
    --linkフォーマット: -リンク名:別名、名前はコンテナ、エイリアスエイリアス接続を接続するための名前です。しかし、その後のバージョンのドッキングウィンドウ、オプションが中--linkドッキングウィンドウの実行をキャンセルされます。
    DBサーバー、インターネットデータベースのWebコンテナとコンテナ。さて、Webコンテナにドッキングウィンドウの幹部から入っhostsファイルは、ホスト名とIP情報データベースコンテナのDBサーバーの分解能で見つけることができます参照してください。Pingのリンクとエイリアス。

おすすめ

転載: blog.51cto.com/10874766/2437867