1. 程式人生 > >docker網橋模式報錯以及解決方案與測試

docker網橋模式報錯以及解決方案與測試

一、報錯:

      在配置docker網橋模式的過程中,在配置好網絡卡和br0之後,在重啟網絡卡的過程中一直報以下這種錯誤:

配置檔案檢查了好多次,沒有錯誤,在網上查詢資料,很多都是相互抄襲,千篇一律,說是要關閉網路管理服務再重啟網絡卡

systemctl disable NetworkManager.service
systemctl stop NetworkManager.service

試過好多次,非但沒有什麼卵用!還會把自己x-shell連線踢掉,再去伺服器上一看,ip地址都沒有了,只有一個光禿禿的docker0!

找了好幾天,終於找到了有價值的資料,現整理如下:經多次驗證,有效!!

二、解決方案

1.首先檢視docker程序是否開啟,如果開啟的話,幹掉!

2.停止docker0網絡卡: ifconfig docker0 down

3.刪除預設的橋接網路docker0:

yum -y install bridge-utils
brctl delbr docker0

4.修改網絡卡配置檔案

#我的ip為dhcp自動獲取的,只保留網絡卡的最基本的資訊,其他的資訊都沒有。

如果你的是靜態ip地址的話,配置方法也一樣,不過需要注意的是:

(1)在實際網絡卡(例如:eth0 或 eno16777736)配置過程要把  IPADDR \NETMASK \GATEWAY \DNS 這四項全部註釋掉!

(2)在配置br0網絡卡時,一定要去掉UUID繫結資訊和網絡卡MAC地址,否則,網絡卡還是重啟不了!

cd /etc/sysconfig/network-scripts/
cp ifcfg-eno16777736  ifcfg-br0
vi ifcfg-eno16777736

 

5.重啟網絡卡

systemctl restart network

這下就不會再報錯了!這時你的網絡卡模式就變為網橋模式了。

重新啟動docker

systemctl daemon-reload
systemctl start docker

三、測試

測試目的:通過docker啟動tomcat容器,並能夠實現本地訪問

測試過程:

1.通過docker下載centos6.7映象

docker pull hub.c.163.com/public/centos:6.7-tools

2.本地下載tomcat所需軟體包和所需要的jdk環境 並上傳到指定目錄 如 /root/目錄下

apache-tomcat-7.0.42.tar.gz下載:https://pan.baidu.com/s/1HAk-NKMsGJxH110smM787g

jdk-7u25-linux-x64.tar.gz下載:https://pan.baidu.com/s/1t0DzgAnucW3_1zbV1oh_Aw

3.編寫Dockfile指令碼,執行,生成tomcat映象

FROM hub.c.163.com/public/centos:6.7-tools
MAINTAINER [email protected]
	
ADD ./apache-tomcat-7.0.42.tar.gz /root
ADD ./jdk-7u25-linux-x64.tar.gz /root

ENV JAVA_HOME /root/jdk1.7.0_25
ENV PATH $JAVA_HOME/bin/:$PATH

EXPOSE 8080

ENTRYPOINT /root/apache-tomcat-7.0.42/bin/startup.sh && tail -f /root/apache-tomcat-7.0.42/logs/catalina.out
##在dockers語法中一定要有一條前端守護程序 否則將會無法開啟開閉容器

在當前路徑下生成comcat映象:不要忘記最後面代表當前路徑的 點“.”

docker build -t peng/tomcat:v1.0 .

4.安裝pipework工具

yum -y install git
git clone https://github.com/jpetazzo/pipework
cp -a pipework/pipework /usr/local/bin/

5.從tomcat映象啟動tomcat容器,並給tomcat容器配置ip地址

docker run --name tomcat --net=none  -d peng/tomcat:v1.0
docker exec -it tomcat /bin/bash
ifconfig #無網路ip
exit

docker inspect tomcat  #  檢視容器資訊  無ip,netmask,gateway,dns

pipework br0 tomcat 172.16.253.222/24    #給新容器賦予ip地址與子網掩碼   再次進入容器,ifconfig可以ip:172.16.253.222

6.本地訪問