當我們把docker部署好,是不是想docker能聯網呢,能跟其他服務器或者應用進行交互訪問呢,那麼今天我們來給Docker配置獨立的IP及容器之間的互聯;
內置bridge(nat)
缺點:
需要配套服務註冊/發現,否則宿主上端口分配困難,容易衝突。
由於每個容器暴露的端口都不一致,造成前端路由層nginx配置(proxy_pass)裏無法使用dns的方式。
端口映射要在容器啓動時就指定好,後期無法變更。
測試發現nat不支持websocket。
自建橋接網絡
優點:
每個容器都有獨立ip,對外提供服務,如nginx+php,nginx+resin,都可以使用默認的80端口
由於容器暴露端口都可以使用80端口,因此前端路由層nginx配置(proxy_pass)裏可以使用dns的方式。
無需爲了後期端口映射添加而煩惱
橋接支持websocket
當我們把docker鏡像下載下來之後,啓動一個容器,登錄容器我們會發現容器的ip如下圖所示:
停止服務
/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