Docker容器間通信之BIP使用及配置方式
Docker容器間通信之BIP使用及配置
Docker 使用一個(gè)稱為 bip
(Bridge IP) 的概念來管理容器之間的網(wǎng)絡(luò)通信。
在 Docker 中,當(dāng)你創(chuàng)建一個(gè)容器時(shí),默認(rèn)情況下這個(gè)容器會(huì)被連接到一個(gè)名為 bridge
的網(wǎng)絡(luò)上。
這個(gè)網(wǎng)絡(luò)是由 Docker 自動(dòng)創(chuàng)建的,并且每個(gè) Docker 宿主機(jī)上都有一個(gè)這樣的網(wǎng)絡(luò)。
Bridge Network 和 BIP
- Bridge Network: 是一種虛擬網(wǎng)絡(luò)接口,它允許 Docker 容器通過宿主機(jī)上的物理網(wǎng)絡(luò)接口與其他容器或外部網(wǎng)絡(luò)進(jìn)行通信。每個(gè)容器都會(huì)被分配一個(gè)獨(dú)立的 IP 地址,并且這些地址都位于橋接網(wǎng)絡(luò)的子網(wǎng)上。
- BIP (Bridge IP): 是指橋接網(wǎng)絡(luò)的網(wǎng)關(guān) IP 地址。當(dāng)容器啟動(dòng)時(shí),它們會(huì)自動(dòng)獲得一個(gè)在這個(gè)子網(wǎng)內(nèi)的 IP 地址,并且這個(gè)子網(wǎng)的網(wǎng)關(guān)就是
bip
地址。
配置 Bridge Network 和 BIP
默認(rèn)情況下,Docker 會(huì)在啟動(dòng)時(shí)自動(dòng)配置 bridge network,并且會(huì)為該網(wǎng)絡(luò)分配一個(gè) IP 地址作為其網(wǎng)關(guān)(即 BIP)。
這個(gè)地址通常是一個(gè)私有 IP 地址,例如 172.17.0.1
。
你可以在 /etc/docker/daemon.json
文件中進(jìn)行自定義配置,以更改默認(rèn)設(shè)置。
示例配置
假設(shè)你想自定義 Docker 的 bridge network 的 IP 地址范圍和網(wǎng)關(guān),可以在 /etc/docker/daemon.json
文件中添加以下內(nèi)容:
{ "bip": "192.168.5.1/24", "fixed-cidr": "192.168.5.2/24" }
這里:
"bip": "192.168.5.1/24"
指定了 bridge network 的網(wǎng)關(guān) IP 地址和子網(wǎng)掩碼。"fixed-cidr": "192.168.5.2/24"
指定了容器將從這個(gè)子網(wǎng)內(nèi)獲取 IP 地址。
重啟 Docker 服務(wù)
修改完配置文件后,你需要重啟 Docker 服務(wù)以使更改生效:
sudo systemctl restart docker
請(qǐng)注意,如果你已經(jīng)有一些容器正在運(yùn)行,并且想要更改這些容器的網(wǎng)絡(luò)配置,那么你需要先停止并重新啟動(dòng)這些容器。
手動(dòng)創(chuàng)建 Bridge Network
除了使用默認(rèn)的 bridge network 外,你還可以手動(dòng)創(chuàng)建自定義的 bridge network,并指定特定的 IP 地址池。
例如,你可以使用 docker network create
命令創(chuàng)建一個(gè)新的 bridge network,并指定 IPAM 配置:
docker network create --driver bridge --subnet=192.168.5.0/24 --gateway=192.168.5.1 my_network
這將創(chuàng)建一個(gè)名為 my_network
的新網(wǎng)絡(luò),并且所有連接到此網(wǎng)絡(luò)的容器都將從 192.168.5.0/24
子網(wǎng)中獲取 IP 地址,而網(wǎng)關(guān)將是 192.168.5.1
。
總結(jié)
- 默認(rèn)情況下,Docker 使用
bridge
網(wǎng)絡(luò),可以自定義其配置。 - 可以通過修改
/etc/docker/daemon.json
文件來自定義bip
和fixed-cidr
。 - 也可以通過
docker network create
命令手動(dòng)創(chuàng)建自定義的 bridge network 并指定 IP 地址池。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker部署Tomcat并開放8082端口的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署Tomcat并開放8082端口的實(shí)現(xiàn)步驟,首先安裝docker環(huán)境,創(chuàng)建tomcat鏡像,隨后開放端口,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10解決Docker Desktop運(yùn)行一直轉(zhuǎn)問題
遇到Docker啟動(dòng)報(bào)錯(cuò)、Docker Desktop運(yùn)行不正常等問題,常見解決方案包括以管理員身份運(yùn)行CMD,重啟Docker服務(wù),恢復(fù)Docker Desktop出廠設(shè)置,啟用Windows功能等,最終通過運(yùn)行cmd命令"netsh winsock reset"解決問題,但需注意此操作可能導(dǎo)致Docker鏡像丟失2024-09-09docker對(duì)網(wǎng)絡(luò)和程序速度的影響解讀
本文通過對(duì)比分析,測(cè)試了在宿主機(jī)和Docker容器中部署Spring Boot程序的性能差異,在網(wǎng)絡(luò)延遲方面,Docker容器比宿主機(jī)慢0.1~0.2毫秒,在程序運(yùn)行速度方面,宿主機(jī)和Docker容器的平均運(yùn)行時(shí)間相近,單次運(yùn)行時(shí)間存在較大差異,無法確定Docker容器在速度上優(yōu)于宿主機(jī)2025-01-01在Docker中更快地構(gòu)建Maven項(xiàng)目
本文主要介紹了在Docker中更快地構(gòu)建Maven項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10教你用100?行shell實(shí)現(xiàn)Docker詳解
這篇文章主要為大家介紹了教你用100?行shell實(shí)現(xiàn)Docker詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02docker中的link和network網(wǎng)絡(luò)互連問題
這篇文章主要介紹了docker中的link和network網(wǎng)絡(luò)互連問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Shell腳本構(gòu)建Docker 半自動(dòng)化編譯打包發(fā)布應(yīng)用操作
這篇文章主要介紹了Shell腳本構(gòu)建Docker 半自動(dòng)化編譯打包發(fā)布應(yīng)用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03