1. 程式人生 > >docker網絡卡設定

docker網絡卡設定

1、Vmware的網絡卡設定

(1)Bridged(橋接)方式
       用這種方式虛擬機器的IP可設定成與本機在同一網段,虛擬機器相當於網路內的一臺獨立的機器,網路內其他機器可訪問虛擬機器,虛擬機器也可訪問網路內其他機器,當然與本機系統的雙向訪問也不成問題。
       這個時候vmware就模擬成一個網橋的功能,就只使用 vmnet1網絡卡,vmnet8就可以不用;
(2)NAT(網路地址轉換)方式
       這種方式也可以實現本機與虛擬機器的雙向訪問。但網路內其他機器不能訪問虛擬機器,虛擬機器可通過本機用NAT協議訪問網路內其他機器。
       現在vmware就模擬成了一個具有DHCP功能的路由器,這個時候就要用vmnet8了。
(3)host-only方式

       這種方式只能進行虛擬機器和主機之間的網路通訊,即:網路內其他機器不能訪問虛擬機器,同時虛擬機器也不能訪問其他機器。

2、優缺點

(1)內建bridge(nat)

        缺點:
        需要配套服務註冊/發現,否則宿主上埠分配困難,容易衝突。
        由於每個容器暴露的埠都不一致,造成前端路由層nginx配置(proxy_pass)裡無法使用dns的方式。

        埠對映要在容器啟動時就指定好,後期無法變更。

(2)自建橋接網路

        優點:

        每個容器都有獨立ip,對外提供服務,如nginx+php,nginx+resin,都可以使用預設的80埠
        由於容器暴露埠都可以使用80埠,因此前端路由層nginx配置(proxy_pass)裡可以使用dns的方式。

        無需為了後期埠對映新增而煩惱

3、操作步驟

    停止服務
         /etc/init.d/docker stop
    關掉docker0
        ifconfig docker0 down
    刪除docker
         brctl  delbr  docker0
     增加網橋br0
          yum install bridge-utils
     CentOS6.5下的配置:
           vim  /etc/sysconfig/docker

            other_args="-b=br0"

      配置bridge橋接網路:
       在/etc/sysconfig/network-scripts/下,修改ifcfg-eth0網絡卡配置,同時增加ifcfg-br0橋接網絡卡配置如下:
       vi  ifcfg-eth0內容如下:
            DEVICE=eth0
            BOOTPROTO=none
            ONBOOT=yes
            TYPE=Ethernet
            BOOTPROTO=static
            BRIDGE=br0
        vi  ifcfg-br0內容如下:
            DEVICE="br0"
            ONBOOT=yes
            NM_CONTROLLED=no
            BOOTPROTO=dhcp

            TYPE=Bridge

        啟動docker服務

4、問題排查

1、如果出現

使用docker run --net=bridge --dns=223.5.5.5 --dns=223.6.6.6 -d -i -t    jdeathe/centos-ssh /bin/bash方式啟動,然後進入容器之後就可以ping www.baidu.com

2、在安裝jdk的過程中,如果直接在容器裡面下載jdk版本,會出現下載檔案失敗,檔案的大小隻有50多k,所以在解壓過程會失敗。因此可以採用宿主機共享資料夾的方式。所以啟動容器的指令為:

docker run --net=bridge --dns=223.5.5.5 --dns=223.6.6.6 -d -i -t -v   /alidate/soft/:/alidate/soft   jdeathe/centos-ssh /bin/bash

-v就是掛載資料卷。後面跟的就是   本地目錄:容器目錄