1.1 網(wǎng)絡(luò)命名空間 (Network Namespace)
每個(gè)容器通常都有自己的網(wǎng)絡(luò)命名空間软吐,這是Linux內(nèi)核提供的隔離機(jī)制,使得每個(gè)容器可以有自己的網(wǎng)絡(luò)接口吟税、IP地址和路由表等凹耙。宿主機(jī)和容器之間的通信通常通過以下幾種方式實(shí)現(xiàn):
- Bridge模式: 在Bridge模式下,容器的網(wǎng)絡(luò)接口(veth pair)連接到宿主機(jī)上的一個(gè)虛擬橋接器(bridge)肠仪。這個(gè)橋接器可以看作一個(gè)虛擬交換機(jī)肖抱,連接容器的所有網(wǎng)絡(luò)接口,同時(shí)也連接到宿主機(jī)的物理網(wǎng)絡(luò)接口异旧。通過這個(gè)橋接器意述,容器可以和宿主機(jī)、其他容器以及外部網(wǎng)絡(luò)進(jìn)行通信吮蛹。
- Host模式: 在Host模式下荤崇,容器直接使用宿主機(jī)的網(wǎng)絡(luò)命名空間,也就是說潮针,容器和宿主機(jī)共享相同的網(wǎng)絡(luò)接口术荤、IP地址和路由表。這樣每篷,容器和宿主機(jī)之間的通信就像是在同一臺(tái)機(jī)器上的兩個(gè)進(jìn)程之間的通信一樣瓣戚,效率較高,但缺少隔離性焦读。
- None模式:容器沒有網(wǎng)絡(luò)接口子库,完全隔離,沒有網(wǎng)絡(luò)連接矗晃。
- Container模式:容器共享另一個(gè)容器的網(wǎng)絡(luò)命名空間仑嗅,多個(gè)容器可以共享同一個(gè)網(wǎng)絡(luò)堆棧。適用場景:微服務(wù)架構(gòu)--多個(gè)緊密耦合的微服務(wù)可以使用 Container 模式,以減少網(wǎng)絡(luò)配置復(fù)雜性和提高性能无畔;應(yīng)用程序組合--當(dāng)多個(gè)應(yīng)用程序組件(如 Web 服務(wù)器和應(yīng)用服務(wù)器)必須協(xié)同工作時(shí),Container 模式能讓它們無縫共享網(wǎng)絡(luò)資源吠冤。
- Overlay模式: Overlay網(wǎng)絡(luò)是一種跨主機(jī)的網(wǎng)絡(luò)模式浑彰,通常用于容器集群中。容器的網(wǎng)絡(luò)接口連接到一個(gè)虛擬隧道(VXLAN或IPsec)上拯辙,這些隧道將容器連接到跨多臺(tái)宿主機(jī)的虛擬網(wǎng)絡(luò)中郭变。宿主機(jī)之間的通信通過這些隧道實(shí)現(xiàn),而容器和宿主機(jī)之間的通信通過宿主機(jī)的網(wǎng)絡(luò)接口進(jìn)行涯保。
1.2 具體操作:
-
Bridge模式 :
image.png
1.創(chuàng)建bridge網(wǎng)絡(luò)诉濒,自定義網(wǎng)絡(luò), 可以指定子網(wǎng)、IP地址范圍夕春、網(wǎng)關(guān)等網(wǎng)絡(luò)配置
image.png
-
查看docker網(wǎng)絡(luò)
image.png
3.查看詳細(xì)信息
image.png
4.使用指定網(wǎng)路創(chuàng)建容器
image.png
-
Host模式 :
image.png
1.創(chuàng)建host網(wǎng)絡(luò)的容器
image.png
2.測試
image.png
-
container模式
1.創(chuàng)建container網(wǎng)絡(luò)的容器
docker run --name=busybox_container --net=container:nginx_bridge -td busybox
2.查看容器ip
image.png
3.兩個(gè)容器使用同一個(gè)ip未荒,同一張網(wǎng)卡
# 通過ifconfig查詢ip
$ docker exec busybox_container ifconfig
image.png