詳解Centos7 下建立 Docker 橋接網(wǎng)絡(luò)
前言
最近職業(yè)規(guī)劃開始有了轉(zhuǎn)變,在創(chuàng)業(yè)團(tuán)隊(duì)中一個(gè)人的角色不可能只有一個(gè),說說我現(xiàn)在擔(dān)任過的角色:配置管理,項(xiàng)目經(jīng)理,售前技術(shù)支持,售后技術(shù)支持,測(cè)試,少許開發(fā)工作,產(chǎn)品策劃;除了市場(chǎng)營(yíng)銷,其他雜七雜八的都干過了。最后我發(fā)現(xiàn)我最適合的職位也許是devops,這個(gè)崗位的工作內(nèi)容請(qǐng)大家自行百度。
回正題,去年開始關(guān)注docker,直到今年看了壇子里的大神們對(duì)docker調(diào)研實(shí)踐后,我決定也開始實(shí)踐。就從改造公司研發(fā)和運(yùn)維環(huán)境開始,這次的帖子主要是將自己構(gòu)建docker橋接物理網(wǎng)絡(luò)的過程講述一遍,本來網(wǎng)上是有很多帖子的,但坑不少,為了讓想研究docker的同好少走彎路,這才總結(jié)了一下。
為什么要讓docker橋接物理網(wǎng)絡(luò)?
docker默認(rèn)提供了一個(gè)隔離的內(nèi)網(wǎng)環(huán)境,啟動(dòng)時(shí)會(huì)建立一個(gè)docker0的虛擬網(wǎng)卡,每個(gè)容器都是連接到docker0網(wǎng)卡上的。而docker0的ip段為172.17.0.1,若想讓容器與宿主機(jī)同一網(wǎng)段的其他機(jī)器訪問,就必須在啟動(dòng)docker的時(shí)候?qū)⒛硞€(gè)端口映射到宿主機(jī)的端口上才行,例如:docker run -itd -p 22 centos。這是我們所不能接受的,想想每個(gè)應(yīng)用都要絞盡腦汁的去設(shè)置端口,因?yàn)椴荒苤貜?fù),如果應(yīng)用有多端口那更是不堪設(shè)想啊。所以為了讓容器與宿主機(jī)同一個(gè)網(wǎng)段,我們需要建立自己的橋接網(wǎng)絡(luò)。
centos7宿主機(jī)上建立Docker橋接物理網(wǎng)絡(luò)過程
宿主機(jī)網(wǎng)卡信息:
name:ens0
IP:192.168.184.99
GATEWAY:192.168.184.2
DNS:192.168.184.2
1. 停止docker服務(wù)
~#:service docker stop
2.刪除docker0網(wǎng)卡
~#:ip link set dev docker0 down ~#:brctl delbr docker0
3.新建橋接物理網(wǎng)絡(luò)虛擬網(wǎng)卡br0
~#:brctl addbr br0 ~#:ip link set dev br0 up ~#:ip addr add 192.168.184.100/24 dev br0 #為br0分配物理網(wǎng)絡(luò)中的ip地址 ~#:ip addr del 192.168.184.99/24 dev ens0 #將宿主機(jī)網(wǎng)卡的IP清空 ~#:brctl addif br0 ens0 #將宿主機(jī)網(wǎng)卡掛到br0上 ~#:ip route del default #刪除原路由 ~#:ip route add default via 192.168.184.2 dev br0 #為br0設(shè)置路由
4.設(shè)置docker服務(wù)啟動(dòng)參數(shù)
這里要注意的是,不同的linux操作系統(tǒng)docker的配置文件所在不同
centos 在/etc/sysconfig/docker
其他操作系統(tǒng)請(qǐng)前往下面的網(wǎng)址
https://docs.docker.com/installation/#installation
~#:vim /etc/sysconfig/docker #在OPTIONS='--selinux-enabled'這行中修改為OPTIONS='--selinux-enabled -b=br0'即讓docker服務(wù)啟動(dòng)時(shí)使用br0網(wǎng)卡進(jìn)行橋接
5.啟動(dòng)docker服務(wù)
~#:service docker start
6.安裝pipework
~#:git clone https://github.com/jpetazzo/pipework ~#:cp ~/pipework/pipework /usr/local/bin/
7.啟動(dòng)一個(gè)手動(dòng)設(shè)置網(wǎng)絡(luò)的容器
這里最好不要讓docker自動(dòng)獲取ip,下次啟動(dòng)會(huì)有變化而且自動(dòng)獲取的ip可能會(huì)和物理網(wǎng)段中的ip沖突
~#:docker run -itd --net=none --name=test centos7 /bin/bash
8.為test容器設(shè)置一個(gè)與橋接物理網(wǎng)絡(luò)同地址段的ip@網(wǎng)關(guān)
~#:pipework br0 test 192.168.184.11/24@192.168.184.2
9.進(jìn)入容器查看ip
~#:docker attach test
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker搭建ELK日志系統(tǒng),并通過Kibana查看日志方式
這篇文章主要介紹了Docker搭建ELK日志系統(tǒng),并通過Kibana查看日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05詳解修改docker時(shí)區(qū)及docker常用命令
這篇文章主要介紹了詳解修改docker時(shí)區(qū)及docker常用命令,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12Docker容器搭建android編譯環(huán)境的實(shí)踐記錄
這篇文章主要介紹了Docker容器搭建android編譯環(huán)境的實(shí)踐記錄,主要包括部署容器、鏡像管理、容器管理等相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07關(guān)于docker可視化管理工具-DockerUI的安裝
這篇文章主要介紹了關(guān)于docker可視化管理工具-DockerUI的安裝,DockerUI是一款開源強(qiáng)大的輕量級(jí)Docker管理工具,還不了解這款工具的朋友一起來看看吧2023-03-03docker中通過nginx+confd動(dòng)態(tài)生成配置的解決方案
這篇文章主要介紹了docker:nginx+confd動(dòng)態(tài)生成配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Windows Docker部署Jenkins的實(shí)現(xiàn)步驟
Jenkins是一款開源的持續(xù)集成工具,廣泛用于項(xiàng)目開發(fā),能提供自動(dòng)構(gòu)建測(cè)試部署等功能,本文主要介紹了Windows Docker部署Jenkins的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-03-03