深入解析docker三種網(wǎng)絡(luò)模式
1.docker默認(rèn)的三種網(wǎng)絡(luò)模式:
bridge:橋接模式
host:主機(jī)模式
none:無網(wǎng)絡(luò)模式
查看網(wǎng)絡(luò)模式: docker network ls
2.橋接模式
簡介:橋接模式是docker 的默認(rèn)網(wǎng)絡(luò)設(shè)置,當(dāng)Docker服務(wù)啟動(dòng)時(shí),會(huì)在主機(jī)上創(chuàng)建一個(gè)名為docker0的虛擬網(wǎng)橋,并選擇一個(gè)和宿主機(jī)不同的IP地址和子網(wǎng)分配給docker0網(wǎng)橋
如下圖所示:eno16777728是宿主機(jī)的網(wǎng)卡,192.168.0.156是宿主機(jī)的ip地址,docker0就是docker服務(wù)的虛擬網(wǎng)橋。

橋接拓?fù)鋱D:

網(wǎng)絡(luò)模式選擇橋接模式的容器,就會(huì)連接上docker0這個(gè)網(wǎng)橋,在通過nat的轉(zhuǎn)換,通過宿主機(jī)的網(wǎng)卡,連接外網(wǎng),就能達(dá)到上外網(wǎng)的目的。
如下圖所示,我啟動(dòng)了兩個(gè)容器,就會(huì)有兩個(gè)容器網(wǎng)卡,以及一個(gè)docker0虛擬網(wǎng)卡,如果啟動(dòng)三個(gè)就會(huì)有三個(gè)容器網(wǎng)卡,這幾個(gè)容器網(wǎng)卡都會(huì)橋接到docker0網(wǎng)卡,docker0網(wǎng)卡與物理機(jī)網(wǎng)卡連接使用的是nat技術(shù)

進(jìn)入某一個(gè)容器查看路由情況:
在容器內(nèi)安裝工具:yum -y install net-tools

容器的ip地址是172.17.0.3,他的網(wǎng)關(guān)是172.17.0.1,他的數(shù)據(jù)是發(fā)往172.17.0.1這個(gè)網(wǎng)關(guān),這個(gè)網(wǎng)關(guān)也是虛擬網(wǎng)橋的地址,如下圖所示,docker0這個(gè)虛擬網(wǎng)橋的ip地址就是172.17.0.1。

在宿主機(jī)安裝工具:yum install -y bridge-utils
然后使用brctl show命令查看橋接情況:
如下圖所示就可以看到,docker0這個(gè)網(wǎng)橋橋接了30和17這兩個(gè)容器的網(wǎng)卡.

需要注意的一點(diǎn)如下:
宿主機(jī)能訪問docker容器是因?yàn)橛衐ocker0這個(gè)虛擬網(wǎng)卡,除宿主機(jī)外的機(jī)器想訪問容器,只能夠訪問宿主機(jī),這時(shí)候正常方式都是使用端口映射,也就是將容器的端口與宿主機(jī)的端口進(jìn)行映射,供外面的機(jī)器訪問

3.host模式
host 模式:該模式下容器是不會(huì)擁有自己的ip地址,而是使用宿主機(jī)的ip地址和端口。這種模式的好處就是網(wǎng)絡(luò)性能比橋接模式的好。缺點(diǎn)就是會(huì)占用宿主機(jī)的端口,網(wǎng)絡(luò)的隔離性不太好

以nginx容器為例:啟動(dòng)nginx容器命令并防火墻放開80端口:
docker run -d --net=host mycentos:nginx /usr/local/nginx/sbin/nginx -g “daemon off;”
–net=host是指定網(wǎng)絡(luò)模式為主機(jī)模式,如果不填就是橋接模式
注意:主機(jī)模式啟動(dòng)的容器沒有自己的IP地址
4.none模式
加上后面的參數(shù)就行了 --net=none
none模式?jīng)]有IP地址,無法連接外網(wǎng),等于就是斷網(wǎng)的狀態(tài),作用就是用于測試,生產(chǎn)環(huán)境一般不會(huì)用到這種
到此這篇關(guān)于詳解docker三種網(wǎng)絡(luò)模式的文章就介紹到這了,更多相關(guān)docker網(wǎng)絡(luò)模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
兩種方式創(chuàng)建docker鏡像的啟動(dòng)容器時(shí)區(qū)別介紹(總結(jié)篇)
這篇文章主要介紹了基于兩種創(chuàng)建docker鏡像的啟動(dòng)容器時(shí)區(qū)別總結(jié),第一種凡是用docker commit生成的鏡像啟動(dòng)的時(shí)候可以加載一個(gè)啟動(dòng)自己應(yīng)用的腳本,第二種用Docfile文件生成的鏡像時(shí),來啟動(dòng)容器就不用再加這個(gè)腳本了,具體詳情一起通過本文學(xué)習(xí)吧2016-10-10
docker和docker-compose一鍵安裝教程(支持在線和離線)
這篇文章主要介紹了docker和docker-compose一鍵安裝(支持在線和離線),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
docker如何創(chuàng)建nginx圖片服務(wù)器
這篇文章主要介紹了docker如何創(chuàng)建nginx圖片服務(wù)器問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解
這篇文章主要介紹了Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker安裝Nginx并修改Nginx配置文件的方法詳解
這篇文章主要給大家介紹了關(guān)于Docker安裝Nginx并修改Nginx配置文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02
Docker 部署 pSQL 服務(wù)器的詳細(xì)教程
本文詳細(xì)介紹了如何使用Edu郵箱申請(qǐng)Azure訂閱并開通免費(fèi)VPS,以及在Ubuntu VPS上通過Docker部署pSQL服務(wù)器的方法,感興趣的朋友跟隨小編一起看看吧2025-02-02

