X Chenノート------Dockerは容器に独立IPを配置する

2379 ワード

コンテナに独立したipアドレスを使用させるには、まずホストをブリッジモードに構成し、pipeworkコマンドを使用して指定したコンテナにipアドレスを割り当てます.
 
      dockerは4つのネットワークモードをサポートし、--netオプションを使用して指定します.
  • host,--net=host,このモードを指定すると、コンテナは独立したnetwork namespaceを得るのではなく、シンクホストと共有されます.コンテナは自分のネットワークカード、IPなどを仮想化するのではなく、ホストのIPとポートを使用します.つまり、コンテナがwebであれば、ホスト:ポートに直接アクセスします.NAT変換をする必要はありません.ホストでwebを走るのと同じです.コンテナにはネットワーク以外は隔離されています.
  • container,--net=container:NAME_or_IDは、指定されたコンテナとネットワークを共同で使用し、NIC、IPなどもなく、2つのコンテナはネットワーク以外は隔離されています.
  • none ,--Net=noneは、独立したnetwork namespaceを取得しますが、コンテナのネットワーク構成は行われず、自分で手動で構成する必要があります.
  • bridge,--net=bridge、デフォルトdockerとコンテナはnatネットワークを使用し、一般的にIPを割り当てるのは172.17.0.0/16セグメントであり、他のセグメントに変更するには、ブリッジIPアドレスを直接変更することができます.例えば、
  •   $ sudo ifconfig docker0 192.168.10.1 netmask 255.255.255.0
     
    1.ブリッジ設備の設置
    #yum install -y bridge-utils

    2.ブリッジカードの構成
    まず、元のNICプロファイルのIPアドレス、マスク、ゲートウェイ、DNSを削除または注釈します.プロファイルに文BRIDGE="br 0"(ここでbr 0はブリッジカード名であり、実際にはbr 1,br 2など任意の名前でもよい)を追加します.
    vi /etc/sysconfig/network-scripts/ifcfg-eth0 
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=eth0
    UUID=27086e21-3a51-47f0-b03b-90362a902271
    DEVICE=eth0
    ONBOOT=yes
    
    #IPADDR=10.7.31.236
    #NETMASK=255.255.255.224
    #GATEWAY=10.7.31.225
    #DNS1=219.232.82.67
    #DNS2=219.232.82.68
    
    BRIDGE="br0"

    ブリッジNICプロファイルbr 0を追加し、ip、マスク、ゲートウェイ、DNSを書き込みます.
    #vi /etc/sysconfig/network-scripts/ifcfg-
    TYPE=Bridge
    BOOTPROTO=none
    IPADDR=10.7.31.236
    NETMASK=255.255.255.224
    GATEWAY=10.7.31.225
    DNS1=219.232.82.67
    DNS2=219.232.82.68
    NAME=br0
    ONBOOT=yes
    DEVICE=br0

    両方のNICのプロファイルが設定されている場合、NICの新しい構成を再起動すると有効になります.service network restart
     
    3.コンテナを起動し、ネットワークモードをnoneと指定
    # docker run -it -d --net=none --name            /bin/bash
    

    4.pipeworkのインストール
    # git clone https://github.com/jpetazzo/pipework.git
    # cp -rp pipework/pipework /usr/local/bin

    5.コンテナにipアドレスを設定する
    # pipework         ip  /  @  
    # pipework br0 dhcp 10.7.31.237/[email protected]

     
    参照先:https://blog.csdn.net/feinifi/article/details/69487452
               https://www.cnblogs.com/zipon/p/6362401.html