目錄
一、概述
二、默認(rèn)網(wǎng)絡(luò)
三、網(wǎng)絡(luò)模式及應(yīng)用
1. Bridge模式
2. Host模式
3. none網(wǎng)絡(luò)模式
四、自定義網(wǎng)絡(luò)應(yīng)用
1. 網(wǎng)絡(luò)相連
2. 自定義通訊
3.?自定義IP
每篇一獲
一、概述
在 Docker 中,網(wǎng)絡(luò)設(shè)置包括 IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS 和端口號等關(guān)鍵組成部分。下面我將為您詳細(xì)介紹這些概念:
-
IP 地址:IP 地址是 Docker 容器在網(wǎng)絡(luò)中的唯一標(biāo)識。每個 Docker 容器都會被分配一個 IP 地址,用于在網(wǎng)絡(luò)中進(jìn)行通信。在 Docker 的默認(rèn)網(wǎng)絡(luò)模式下,Docker 容器的 IP 地址是由 Docker 內(nèi)部的 IPAM(IP 地址管理)系統(tǒng)自動分配的。
-
子網(wǎng)掩碼:子網(wǎng)掩碼用于劃分 IP 地址的網(wǎng)絡(luò)部分和主機(jī)部分。在 Docker 中,您可以在創(chuàng)建自定義網(wǎng)絡(luò)時指定子網(wǎng)掩碼,以劃分您的 Docker 網(wǎng)絡(luò)。
-
網(wǎng)關(guān):網(wǎng)關(guān)是 Docker 容器訪問外部網(wǎng)絡(luò)的入口。在 Docker 的默認(rèn)網(wǎng)絡(luò)模式下,Docker 容器的網(wǎng)關(guān)是由 Docker 內(nèi)部的 IPAM 系統(tǒng)自動分配的。
-
DNS:DNS(域名系統(tǒng))用于將域名解析為 IP 地址。在 Docker 中,您可以在創(chuàng)建 Docker 容器時指定 DNS 服務(wù)器,以便 Docker 容器可以解析域名。
-
端口號:端口號用于標(biāo)識 Docker 容器內(nèi)部的特定網(wǎng)絡(luò)服務(wù)。在 Docker 中,您可以在創(chuàng)建 Docker 容器時指定端口映射,以便外部網(wǎng)絡(luò)可以訪問 Docker 容器內(nèi)部的網(wǎng)絡(luò)服務(wù)。
以上就是 Docker 中關(guān)于網(wǎng)絡(luò)的 IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS 和端口號的詳細(xì)介紹。理解這些概念對于管理和配置 Docker 容器的網(wǎng)絡(luò)環(huán)境非常重要。
子網(wǎng)掩碼:
子網(wǎng)掩碼是網(wǎng)絡(luò)地址的一部分,用于劃分網(wǎng)絡(luò)地址和主機(jī)地址。它是一個 32 位的二進(jìn)制數(shù),其中網(wǎng)絡(luò)部分全為 1,主機(jī)部分全為 0。子網(wǎng)掩碼的主要作用是幫助網(wǎng)絡(luò)設(shè)備判斷一個 IP 地址的哪些位代表網(wǎng)絡(luò)地址,哪些位代表主機(jī)地址。
在 Docker 中,當(dāng)我們創(chuàng)建自定義網(wǎng)絡(luò)時,可以指定子網(wǎng)掩碼。例如,我們可以創(chuàng)建一個子網(wǎng)掩碼為 255.255.255.0 的網(wǎng)絡(luò),這意味著這個網(wǎng)絡(luò)的前 24 位(即 255.255.255)是網(wǎng)絡(luò)地址,后 8 位是主機(jī)地址。這樣,我們就可以在這個網(wǎng)絡(luò)中創(chuàng)建最多 256(2 的 8 次方)個 Docker 容器。
子網(wǎng)掩碼的設(shè)置對于 Docker 網(wǎng)絡(luò)的劃分和管理非常重要。通過合理地設(shè)置子網(wǎng)掩碼,我們可以有效地管理 Docker 容器的網(wǎng)絡(luò)資源,例如避免 IP 地址的沖突,或者根據(jù)需要劃分不同的網(wǎng)絡(luò)區(qū)域。
網(wǎng)關(guān):
網(wǎng)關(guān)在網(wǎng)絡(luò)中起著非常重要的作用,它是一個網(wǎng)絡(luò)設(shè)備,用于連接兩個或更多的網(wǎng)絡(luò),使得這些網(wǎng)絡(luò)可以互相通信。在 Docker 中,網(wǎng)關(guān)通常被用于連接 Docker 容器和外部網(wǎng)絡(luò)。
在 Docker 的默認(rèn)網(wǎng)絡(luò)模式下,每個 Docker 容器都會被分配一個網(wǎng)關(guān)地址。這個網(wǎng)關(guān)地址是 Docker 容器訪問外部網(wǎng)絡(luò)的入口,所有從 Docker 容器發(fā)出的網(wǎng)絡(luò)請求都會通過這個網(wǎng)關(guān)地址轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò)。
例如,如果一個 Docker 容器需要訪問互聯(lián)網(wǎng)上的一個網(wǎng)站,它會將網(wǎng)絡(luò)請求發(fā)送到它的網(wǎng)關(guān)地址,然后由網(wǎng)關(guān)將請求轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)。同樣,所有發(fā)往 Docker 容器的網(wǎng)絡(luò)響應(yīng)也會通過網(wǎng)關(guān)地址轉(zhuǎn)發(fā)回 Docker 容器。
在創(chuàng)建自定義網(wǎng)絡(luò)時,我們可以指定網(wǎng)關(guān)地址。這樣,我們就可以控制 Docker 容器的網(wǎng)絡(luò)訪問,例如限制 Docker 容器訪問特定的外部網(wǎng)絡(luò),或者設(shè)置網(wǎng)絡(luò)路由規(guī)則。
二、默認(rèn)網(wǎng)絡(luò)
安裝 Docker 以后,會默認(rèn)創(chuàng)建三種網(wǎng)絡(luò),可以通過?
docker network ls
?命令查看。
Bridge:Bridge 網(wǎng)絡(luò)是 Docker 的默認(rèn)網(wǎng)絡(luò)模型。當(dāng)您啟動一個新的 Docker 容器時,如果沒有指定網(wǎng)絡(luò),Docker 就會自動將這個容器連接到 Bridge 網(wǎng)絡(luò)。Bridge 網(wǎng)絡(luò)允許容器之間通過 IP 地址或者容器名進(jìn)行通信,但是,不同的 Bridge 網(wǎng)絡(luò)之間的容器是無法進(jìn)行通信的。
Host:在 Host 網(wǎng)絡(luò)模式下,Docker 容器將直接使用主機(jī)的網(wǎng)絡(luò),無需進(jìn)行任何的網(wǎng)絡(luò)轉(zhuǎn)發(fā)。這意味著,如果您在容器中啟動了一個網(wǎng)絡(luò)服務(wù),那么這個服務(wù)將直接使用主機(jī)的網(wǎng)絡(luò)端口。
None:None 網(wǎng)絡(luò)模式下,Docker 容器將運(yùn)行在自己的網(wǎng)絡(luò)命名空間中,但是不會進(jìn)行任何網(wǎng)絡(luò)配置。這意味著,這個容器沒有網(wǎng)絡(luò)接口,無法進(jìn)行網(wǎng)絡(luò)通信。
三、網(wǎng)絡(luò)模式及應(yīng)用
1. Bridge模式
Bridge 網(wǎng)絡(luò)模式?是 Docker 的默認(rèn)網(wǎng)絡(luò)模式,又稱網(wǎng)橋模式,它為 Docker 容器提供了一種簡單且有效的網(wǎng)絡(luò)連接方式。以下是 Bridge 網(wǎng)絡(luò)模式的主要作用和應(yīng)用:
容器間通信:在 Bridge 網(wǎng)絡(luò)模式下,同一 Bridge 網(wǎng)絡(luò)中的 Docker 容器可以通過 IP 地址或者容器名進(jìn)行通信。這使得在同一主機(jī)上運(yùn)行的不同容器可以方便地共享數(shù)據(jù)和服務(wù)。
網(wǎng)絡(luò)隔離:每個 Bridge 網(wǎng)絡(luò)都是獨(dú)立的,不同 Bridge 網(wǎng)絡(luò)之間的容器無法直接通信。這為 Docker 容器提供了一種有效的網(wǎng)絡(luò)隔離機(jī)制,可以防止不同應(yīng)用之間的網(wǎng)絡(luò)干擾。
端口映射:Bridge 網(wǎng)絡(luò)模式支持 Docker 容器和主機(jī)之間的端口映射。這意味著,您可以將 Docker 容器的網(wǎng)絡(luò)服務(wù)通過特定的端口暴露給主機(jī),從而使得外部網(wǎng)絡(luò)可以訪問到 Docker 容器的服務(wù)。
在實際應(yīng)用中,Bridge 網(wǎng)絡(luò)模式被廣泛用于部署和運(yùn)行各種 Docker 應(yīng)用。例如,您可以使用 Bridge 網(wǎng)絡(luò)模式來部署一個 Web 服務(wù)器和數(shù)據(jù)庫服務(wù)器,然后通過端口映射將 Web 服務(wù)器的服務(wù)暴露給外部網(wǎng)絡(luò),同時保持?jǐn)?shù)據(jù)庫服務(wù)器在網(wǎng)絡(luò)中的隔離。
命令:
docker run -itd --name t1? -p 9999:8080? tomcat:8.5.20
t1名稱? 9999主機(jī)端口? 8080虛擬機(jī)端口? ?tomcat鏡像? ?鏡像版本8.5.20
查看:
docker inspect t1
t1 容器名稱
查看信息如下:
Gateway:這是 Docker 容器的默認(rèn)網(wǎng)關(guān),也就是容器發(fā)送的所有非本地地址的網(wǎng)絡(luò)流量都會通過這個網(wǎng)關(guān)路由。在大多數(shù)情況下,這個網(wǎng)關(guān)就是 Docker 容器所在的主機(jī)。
IPAddress:這是 Docker 容器在其網(wǎng)絡(luò)內(nèi)的 IP 地址。每個 Docker 容器在其所連接的網(wǎng)絡(luò)中都會有一個唯一的 IP 地址,其他容器可以通過這個 IP 地址與其進(jìn)行通信。
查看默認(rèn)網(wǎng)絡(luò)【bridge】:
docker inspect bridge
Container ID:這是 Docker 容器的唯一標(biāo)識符,由 Docker 在創(chuàng)建容器時自動生成。
Name:這是 Docker 容器的名稱,可以在創(chuàng)建容器時由用戶自定義,也可以由 Docker 自動生成。
IPv4Address:這是 Docker 容器在 Bridge 網(wǎng)絡(luò)中的 IPv4 地址。其他容器可以通過這個地址與其進(jìn)行通信。
IPv6Address:這是 Docker 容器在 Bridge 網(wǎng)絡(luò)中的 IPv6 地址。如果 Docker 容器的網(wǎng)絡(luò)配置支持 IPv6,那么這個地址就會被顯示出來。
EndpointID:這是 Docker 容器在 Bridge 網(wǎng)絡(luò)中的端點標(biāo)識符。Docker 使用這個標(biāo)識符來跟蹤容器的網(wǎng)絡(luò)連接。
MacAddress:這是 Docker 容器的 MAC 地址。雖然 Docker 容器是虛擬的,但是它們在網(wǎng)絡(luò)中的行為就像真實的物理設(shè)備一樣,包括擁有自己的 MAC 地址。
- 外部訪問
設(shè)置端口映射
docker run -itd --name bridge -p 8081:8080 spring:1.0
在這個 Docker 命令中,
-p 8081:8080
?是一個端口映射參數(shù)。這個參數(shù)的作用是將 Docker 容器內(nèi)的端口映射到宿主機(jī)的端口上。具體來說,
8081:8080
?的含義是:
8081
?是宿主機(jī)的端口號。8080
?是 Docker 容器內(nèi)的端口號。這個參數(shù)的設(shè)置意味著,Docker 容器內(nèi)運(yùn)行的應(yīng)用如果監(jiān)聽在?
8080
?端口,那么這個應(yīng)用的服務(wù)就可以通過宿主機(jī)的?8081
?端口進(jìn)行訪問。
例如,如果您的?
spring:1.0
?容器是運(yùn)行一個 Web 服務(wù),并且這個服務(wù)在容器內(nèi)監(jiān)聽?8080
?端口,那么您就可以通過訪問宿主機(jī)的?8081
?端口來使用這個 Web 服務(wù)。端口映射是 Docker 的一個重要特性,它使得 Docker 容器內(nèi)的應(yīng)用可以方便地對外提供服務(wù),而無需關(guān)心容器的網(wǎng)絡(luò)環(huán)境和配置。
-p 參數(shù)可以出現(xiàn)多次,綁定多個端口號
docker run -itd --name bridge -p 8081:8080? -p 8082:8080 spring:1.0
在這個的 Docker 命令中,-p 8081:8080 -p 8082:8080
?是端口映射參數(shù),這里映射了兩個宿主機(jī)端口到同一個 Docker 容器內(nèi)的端口。
具體來說:
-
-p 8081:8080
?表示將 Docker 容器內(nèi)的?8080
?端口映射到宿主機(jī)的?8081
?端口。 -
-p 8082:8080
?表示將 Docker 容器內(nèi)的?8080
?端口映射到宿主機(jī)的?8082
?端口。
這個設(shè)置意味著,Docker 容器內(nèi)運(yùn)行的應(yīng)用如果監(jiān)聽在?
8080
?端口,那么這個應(yīng)用的服務(wù)就可以通過宿主機(jī)的?8081
?端口和?8082
?端口進(jìn)行訪問。
這種綁定多個端口的方式可以讓您有更多的選擇來訪問 Docker 容器內(nèi)的服務(wù),也可以用來處理一些特殊的網(wǎng)絡(luò)需求,例如負(fù)載均衡和端口沖突等問題。
2. Host模式
Host 網(wǎng)絡(luò)模式?是 Docker 的一種網(wǎng)絡(luò)模式,又稱主機(jī)模式,它允許 Docker 容器共享宿主機(jī)的網(wǎng)絡(luò)命名空間。以下是 Host 網(wǎng)絡(luò)模式的主要作用和應(yīng)用:
性能優(yōu)化:在 Host 網(wǎng)絡(luò)模式下,Docker 容器可以直接使用宿主機(jī)的網(wǎng)絡(luò),無需通過 Docker 的網(wǎng)絡(luò)橋接,這可以減少網(wǎng)絡(luò)延遲,提高網(wǎng)絡(luò)性能。
端口管理:在 Host 網(wǎng)絡(luò)模式下,Docker 容器內(nèi)的端口會直接映射到宿主機(jī)的端口,無需進(jìn)行額外的端口映射設(shè)置。這使得端口管理更加簡單,也避免了端口映射可能帶來的端口沖突問題。
網(wǎng)絡(luò)服務(wù)部署:對于需要直接使用宿主機(jī)網(wǎng)絡(luò)的網(wǎng)絡(luò)服務(wù),例如需要監(jiān)聽宿主機(jī)所有 IP 地址的服務(wù),或者需要使用特定網(wǎng)絡(luò)接口或協(xié)議的服務(wù),Host 網(wǎng)絡(luò)模式是一個很好的選擇。
在實際應(yīng)用中,Host 網(wǎng)絡(luò)模式常常被用于部署需要高性能網(wǎng)絡(luò)或者特殊網(wǎng)絡(luò)需求的 Docker 應(yīng)用。例如,您可以使用 Host 網(wǎng)絡(luò)模式來部署一個需要監(jiān)聽所有 IP 地址的 Web 服務(wù)器,或者一個需要使用特定網(wǎng)絡(luò)接口的 VPN 服務(wù)。
需要注意的是,Host 網(wǎng)絡(luò)模式下的 Docker 容器會直接共享宿主機(jī)的網(wǎng)絡(luò),這可能會帶來一些安全風(fēng)險,因此在使用 Host 網(wǎng)絡(luò)模式時,需要對 Docker 容器的網(wǎng)絡(luò)訪問進(jìn)行適當(dāng)?shù)目刂坪拖拗啤?/p>
創(chuàng)建:?
docker run -itd --name t2?-p8848:8080 --net host tomcat:8.5.20
創(chuàng)建完成之后,可以直接在主機(jī)上通過虛擬機(jī)ip訪問:
在這個模式下不用映射端口也可以訪問,默認(rèn)8080直接映射:
刪除容器:docker rm -f t2??(刪除已有容器t2)
創(chuàng)建:docker run -itd --name t2? --net host tomcat:8.5.20
3. none網(wǎng)絡(luò)模式
None 網(wǎng)絡(luò)模式?是 Docker 的一種網(wǎng)絡(luò)模式,它為 Docker 容器提供了一個最小化的網(wǎng)絡(luò)環(huán)境。
在 None 網(wǎng)絡(luò)模式下,Docker 容器擁有自己的網(wǎng)絡(luò)命名空間,但是不會進(jìn)行任何網(wǎng)絡(luò)設(shè)備、IP 地址和路由的配置。這意味著,Docker 容器在 None 網(wǎng)絡(luò)模式下無法進(jìn)行網(wǎng)絡(luò)通信。
以下是 None 網(wǎng)絡(luò)模式的主要應(yīng)用:
-
網(wǎng)絡(luò)隔離:None 網(wǎng)絡(luò)模式可以為 Docker 容器提供一個完全隔離的網(wǎng)絡(luò)環(huán)境,這對于需要高度網(wǎng)絡(luò)隔離的應(yīng)用非常有用。例如,您可以使用 None 網(wǎng)絡(luò)模式來運(yùn)行一些安全敏感的應(yīng)用,以防止這些應(yīng)用被網(wǎng)絡(luò)攻擊。
-
自定義網(wǎng)絡(luò)配置:雖然 None 網(wǎng)絡(luò)模式下的 Docker 容器默認(rèn)無法進(jìn)行網(wǎng)絡(luò)通信,但是您可以在容器內(nèi)部進(jìn)行自定義的網(wǎng)絡(luò)配置,以滿足特殊的網(wǎng)絡(luò)需求。例如,您可以在 None 網(wǎng)絡(luò)模式下的 Docker 容器內(nèi)部設(shè)置 VPN,以實現(xiàn)容器的網(wǎng)絡(luò)通信。
需要注意的是,None 網(wǎng)絡(luò)模式下的 Docker 容器默認(rèn)無法進(jìn)行網(wǎng)絡(luò)通信,因此在使用 None 網(wǎng)絡(luò)模式時,需要對 Docker 容器的網(wǎng)絡(luò)需求進(jìn)行詳細(xì)的評估和規(guī)劃。
- none 網(wǎng)絡(luò)模式是指禁用網(wǎng)絡(luò)功能,只有 lo 接口 local 的簡寫,代表 127.0.0.1,即 localhost 本地環(huán)回接口。在創(chuàng)建容器時通過參數(shù)?
--net none
?或者?--network none
?指定;- none 網(wǎng)絡(luò)模式即不為 Docker Container 創(chuàng)建任何的網(wǎng)絡(luò)環(huán)境,容器內(nèi)部就只能使用 loopback 網(wǎng)絡(luò)設(shè)備,不會再有其他的網(wǎng)絡(luò)資源。可以說 none 模式為 Docke Container 做了極少的網(wǎng)絡(luò)設(shè)定,但是俗話說得好“少即是多”,在沒有網(wǎng)絡(luò)配置的情況下,作為 Docker 開發(fā)者,才能在這基礎(chǔ)做其他無限多可能的網(wǎng)絡(luò)定制開發(fā)。這也恰巧體現(xiàn)了 Docker 設(shè)計理念的開放。
我們可以通過?
docker network inspect none
?查看所有?none
?網(wǎng)絡(luò)模式下的容器,在?Containers
?節(jié)點中可以看到容器名稱。
四、自定義網(wǎng)絡(luò)應(yīng)用
1. 網(wǎng)絡(luò)相連
刪除所有容器,看容器中的網(wǎng)絡(luò)是否相互連得通,當(dāng)然也可以不刪除,保證容器不一致即可
刪除所有容器:docker rm -f $(docker ps -aq)
創(chuàng)建:docker run -it --name c1 centos
并且查看ip:ip addr
創(chuàng)建:docker run -it --name c2 centos
并且查看ip:ip addr
在c1中看看可不可以連接到c2中,進(jìn)行網(wǎng)絡(luò)相連
命令:ping 172.17.0.3??(172.17.0.3是c2的ip)
在c2中看看可不可以連接到c1中,進(jìn)行網(wǎng)絡(luò)相連
命令:ping 172.17.0.2??(172.17.0.2是c1的ip)
由以上看出兩容器是網(wǎng)絡(luò)相連的
2. 自定義通訊
創(chuàng)建路徑:
mkdir -p /mysql/{conf,data}
創(chuàng)建一個mysql目錄在其中創(chuàng)建了兩個文件夾,名為conf,data
將主機(jī)(自己的電腦)上的mysql配置文件拖到虛擬機(jī)的新建路徑中的conf文件夾中
my.cnf :
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified:
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password
創(chuàng)建目錄:mkdir mode
將主機(jī)(自己的電腦)上的war拖到虛擬機(jī)的新建路徑中
創(chuàng)建一個基于tomcat的容器并進(jìn)行目錄掛載:
docker run -it \ --name t1 \ -p 8080:8080 \ -v /mode:/usr/local/tomcat/webapps \ tomcat:8.5.20?
之后在mysql目錄中執(zhí)行命令:
docker run \ --name m1 \ -v /mysql/conf/my.cnf:/etc/my.cnf \ -v /mysql/data:/var/lib/mysql \ --privileged=true \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql/mysql-server:5.7
這里需要下載鏡像,等待下載完成并且創(chuàng)建完成即可。
進(jìn)入mysql容器:
命令:docker exec -it m1 bash
之后登入:mysql -uroot -p??
輸入創(chuàng)建時的密碼即可,也就是在mysql目錄中執(zhí)行命令中的MYSQL_ROOT_PASSWORD
在mysql中創(chuàng)建一個名為jun的用戶,可以進(jìn)行遠(yuǎn)程訪問
命令:grant all on *.* to jun@'%' identified by '123456';
并且退出:exit?
重新啟動mysql容器
命令:docker restart m1
在啟動的war中的配置文件進(jìn)行修改/mode/bs/WEB-INF/classes/中的application.yml的mysql
配置:
在這里也可以寫容器的ip進(jìn)行目錄,查看容器信息即可查看容器IP
3.?自定義IP
需要先創(chuàng)建一個網(wǎng)絡(luò)
docker network create --subnet 172.18.0.0/16? mode
其中mode為網(wǎng)絡(luò)名稱,可以直接修改名稱,subnet是指定IP
查看我們創(chuàng)建網(wǎng)絡(luò)的網(wǎng)段:docker inspect mode? ??(mode是需要查看的網(wǎng)絡(luò)名稱)
創(chuàng)建并指定容器的IP:
1. tomcat
docker run -it --name t1 \ -p 8080:8080 \ -v /mode:/usr/local/tomcat/webapps \ --net mode \ --ip 172.18.0.2 \ tomcat:8.5.20
2. mysql
docker run \ --name m1 \ -v /mysql/conf/my.cnf:/etc/my.cnf \ -v /mysql/data:/var/lib/mysql \ --privileged=true \ -e MYSQL_ROOT_PASSWORD=123456 \ --net mode \ --ip 172.18.0.3 \ -d mysql/mysql-server:5.7
之后修改根據(jù)容器的名稱修改war中的配置連接mysql,/mode/bs/WEB-INF/classes/中的application.yml,如何修改上面由講述。
每篇一獲
學(xué)習(xí) Docker 的網(wǎng)絡(luò)模式以及如何自定義網(wǎng)絡(luò)和 IP,可以帶給我們以下幾方面的收獲:
-
更好的網(wǎng)絡(luò)管理:理解 Docker 的網(wǎng)絡(luò)模式可以幫助我們更好地管理 Docker 容器的網(wǎng)絡(luò)環(huán)境,例如選擇合適的網(wǎng)絡(luò)模式來滿足特定的網(wǎng)絡(luò)需求,或者解決 Docker 容器的網(wǎng)絡(luò)問題。
-
更高的網(wǎng)絡(luò)性能:通過選擇合適的網(wǎng)絡(luò)模式,例如 Host 網(wǎng)絡(luò)模式,我們可以提高 Docker 容器的網(wǎng)絡(luò)性能。同時,通過自定義網(wǎng)絡(luò)和 IP,我們可以進(jìn)一步優(yōu)化 Docker 容器的網(wǎng)絡(luò)配置,以提高網(wǎng)絡(luò)性能。
-
更強(qiáng)的網(wǎng)絡(luò)安全:理解 Docker 的網(wǎng)絡(luò)模式可以幫助我們更好地保護(hù) Docker 容器的網(wǎng)絡(luò)安全,例如使用 None 網(wǎng)絡(luò)模式來實現(xiàn)網(wǎng)絡(luò)隔離,或者使用自定義網(wǎng)絡(luò)和 IP 來限制 Docker 容器的網(wǎng)絡(luò)訪問。
-
更大的網(wǎng)絡(luò)靈活性:通過自定義網(wǎng)絡(luò)和 IP,我們可以為 Docker 容器創(chuàng)建更靈活的網(wǎng)絡(luò)環(huán)境,例如創(chuàng)建多個網(wǎng)絡(luò)來隔離不同的 Docker 容器,或者為 Docker 容器分配特定的 IP 地址。文章來源:http://www.zghlxwxcb.cn/news/detail-801312.html
總的來說,學(xué)習(xí) Docker 的網(wǎng)絡(luò)模式以及如何自定義網(wǎng)絡(luò)和 IP,可以幫助我們更好地使用 Docker,提高我們的工作效率和產(chǎn)品質(zhì)量。文章來源地址http://www.zghlxwxcb.cn/news/detail-801312.html
到了這里,關(guān)于【Docker】網(wǎng)絡(luò)模式詳解及容器間網(wǎng)絡(luò)通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!