真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

docker和iptables的關(guān)系是什么

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)docker和iptables的關(guān)系是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),馬關(guān)企業(yè)網(wǎng)站建設(shè),馬關(guān)品牌網(wǎng)站建設(shè),網(wǎng)站定制,馬關(guān)網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,馬關(guān)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。


1、首先了解一下docker的網(wǎng)絡(luò)機(jī)制

docker有4中網(wǎng)絡(luò)模式:

a.host

b.container

c.none

d.bridge

docker使用linux中的namespace隔離資源,一個docker容器會分配一個獨(dú)立的network namespace。但是如果容器采用host時,那么這個容器會和宿主機(jī)公用一個network namespqce,容器將不會虛擬出自己的網(wǎng)卡,配置自己的ip,而是使用宿主機(jī)的ip和端口

contianer模式是指和已經(jīng)存在的一個容器共享一個network namespaces,那兩個容器除了網(wǎng)絡(luò)方面,其它的資源還是隔離的,兩個容器的進(jìn)程可以通過lo網(wǎng)卡設(shè)備通信

none模式時docker擁有自己的network namespaces,但是docker進(jìn)行任何網(wǎng)絡(luò)配置,需要我們自己為docker容器添加網(wǎng)絡(luò)、配置ip

bridge模式是docker默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會為每個容器分配network namespace、設(shè)置ip等,并將一個主機(jī)的docker容器連接到一個虛擬網(wǎng)絡(luò)上

下面說明一下最常用的bridge模式

1.1 bridge模式下的拓?fù)浣Y(jié)構(gòu)

如圖所示:

當(dāng)docker deamon 啟動的時候會在主機(jī)上創(chuàng)建一個名為docker0的虛擬網(wǎng)橋,此主機(jī)上啟動的docker容器會連接到這個虛擬網(wǎng)橋上。虛擬網(wǎng)橋的工作方式和物理交換機(jī)類似。

docker會從分配與宿主機(jī)不同的ip地址給docker網(wǎng)橋和container。

docker0: flags=4163  mtu 1500

        inet 192.168.0.1  netmask 255.255.240.0  broadcast 0.0.0.0

        ether 02:42:a7:07:f4:fc  txqueuelen 0  (Ethernet)

        RX packets 13612806  bytes 1998086329 (1.8 GiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 17525195  bytes 2961142842 (2.7 GiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以把docker0看作網(wǎng)橋的管理接口
Chain DOCKER (1 references)

target     prot opt source               destination         

ACCEPT     tcp  --  0.0.0.0/0            192.168.0.3          tcp dpt:15672

ACCEPT     tcp  --  0.0.0.0/0            192.168.0.3          tcp dpt:5672

ACCEPT     tcp  --  0.0.0.0/0            192.168.0.2          tcp dpt:6379

ACCEPT     tcp  --  0.0.0.0/0            192.168.0.4          tcp dpt:80

ACCEPT     tcp  --  0.0.0.0/0            192.168.0.5          tcp dpt:80

ACCEPT     tcp  --  0.0.0.0/0            192.168.0.6          tcp dpt:33246

以上是iptables出來的的不同container的IP和port


1.2 新建的docker container 完成以上網(wǎng)絡(luò)配置的過程大致如此:

首先在主機(jī)上創(chuàng)建虛擬網(wǎng)卡veth pair設(shè)備,成對出現(xiàn),組成一個數(shù)據(jù)通道。一端在container里,并命名為eth0,另一端放在主機(jī)中以veth。。命令,用$brctl show如下:

bridge name bridge id STP enabled interfaces

docker0 8000.0242a707f4fc no veth0dca6c1

veth530a377

vethb6dcd90

vethe08439b

vethe56b601

vethfc60fba


然后會分配一個IP給container,并設(shè)置docker0的ip地址為容器的默認(rèn)網(wǎng)關(guān)

1.3 bridge模式下的容器通信

在bridge模式下連在同一網(wǎng)橋下的容器可以相互通信。

容器發(fā)包出去的過程:ip包會從container發(fā)往自己默認(rèn)的網(wǎng)關(guān)docker0,到包到達(dá)docker0時就時到達(dá)了主機(jī),這時候會查詢主機(jī)的路由表,發(fā)現(xiàn)包應(yīng)該從主機(jī)的網(wǎng)卡eth0出去,如下的iptables的規(guī)則就起作用,對包做snat轉(zhuǎn)換,將原地址轉(zhuǎn)成eth0的地址,這樣對于外部來說docker容器就是不可見的:

-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

容器接受包的過程,需要用到主機(jī)的端口映射:

看ipbtales:

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

DOCKER-ISOLATION  all  --  anywhere             anywhere            

DOCKER     all  --  anywhere             anywhere            

ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED

ACCEPT     all  --  anywhere             anywhere            

ACCEPT     all  --  anywhere             anywhere            

DROP       all  --  anywhere             anywhere            

 對主機(jī)相應(yīng)端口的流量進(jìn)行dnat轉(zhuǎn)換,將流量發(fā)往container

上述就是小編為大家分享的docker和iptables的關(guān)系是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享名稱:docker和iptables的關(guān)系是什么
文章分享:http://weahome.cn/article/giidcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部