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.本地訪問