Docker之自定義網(wǎng)絡(luò)實(shí)現(xiàn)
1、自定義網(wǎng)絡(luò)實(shí)現(xiàn)容器互聯(lián)
四類網(wǎng)絡(luò)模式,使用docker network ls查看docker網(wǎng)絡(luò)模式
| Docker網(wǎng)絡(luò)模式 | 配置 | 說(shuō)明 |
|---|---|---|
| host模式 | –net=host | 容器和宿主機(jī)共享Network namespace。 |
| container模式 | –net=container:NAME_or_ID | 容器和另外一個(gè)容器共享Network namespace。 kubernetes中的pod就是多個(gè)容器共享一個(gè)Network namespace。 |
| none模式 | –net=none | 容器有獨(dú)立的Network namespace,但并沒(méi)有對(duì)其進(jìn)行任何網(wǎng)絡(luò)設(shè)置,如分配veth pair 和網(wǎng)橋連接,配置IP等。 |
| bridge模式 | –net=bridge | 橋接模式(默認(rèn)為該模式) |
–net=bridge 這個(gè)是默認(rèn)值,連接到默認(rèn)的網(wǎng)橋。
–net=host 告訴 Docker 不要將容器網(wǎng)絡(luò)放到隔離的名字空間中,即不要容器化容器內(nèi)的網(wǎng)絡(luò)。此時(shí)容器使用本地主機(jī)的網(wǎng)絡(luò),它擁有完全的本地主機(jī)接口訪問(wèn)權(quán)限。容器進(jìn)程可以跟主機(jī)其它 root 進(jìn)程一樣可以打開(kāi)低范圍的端口,可以訪問(wèn)本地網(wǎng)絡(luò)服務(wù)比如 D-bus,還可以讓容器做一些影響整個(gè)主機(jī)系統(tǒng)的事情,比如重啟主機(jī)。因此使用這個(gè)選項(xiàng)的時(shí)候要非常小心。如果進(jìn)一步的使用 --privileged=true,容器會(huì)被允許直接配置主機(jī)的網(wǎng)絡(luò)堆棧。
–net=container:NAME_or_ID 讓 Docker 將新建容器的進(jìn)程放到一個(gè)已存在容器的網(wǎng)絡(luò)棧中,新容器進(jìn)程有自己的文件系統(tǒng)、進(jìn)程列表和資源限制,但會(huì)和已存在的容器共享 IP 地址和端口等網(wǎng)絡(luò)資源,兩者進(jìn)程可以直接通過(guò) lo 環(huán)回接口通信。
–net=none 讓 Docker 將新容器放到隔離的網(wǎng)絡(luò)棧中,但是不進(jìn)行網(wǎng)絡(luò)配置。之后,用戶可以自己進(jìn)行配置。
自定義網(wǎng)絡(luò)
# --driver bridge 橋接模式 # --subnet 192.168.0.0/16 子網(wǎng)絡(luò)網(wǎng)段 # --gateway 192.168.0.1 網(wǎng)關(guān) # mynet 網(wǎng)絡(luò)名 docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

查看自定義的網(wǎng)絡(luò)信息:
docker network inspect mynet

在自定義的網(wǎng)路中創(chuàng)建容器
docker run -d -P --name tomcat01-net-01 --net mynet tomcat docker run -d -P --name tomcat01-net-02 --net mynet tomcat

再次查看自定義的網(wǎng)絡(luò)信息:發(fā)現(xiàn)新創(chuàng)建的兩個(gè)容器添加進(jìn)網(wǎng)絡(luò)中了。

使用容器名互相進(jìn)行ping測(cè)試
tomcat01-net-01 ping tomcat01-net-02:

tomcat01-net-02ping tomcat01-net-01:

現(xiàn)在不使用 --link 容器間也可以互相 ping 通了,容器間可以互相通信。
2、網(wǎng)絡(luò)連通
需求分析圖

創(chuàng)建tomcat01和tomcat02兩個(gè)容器:
docker run -d -P --name tomcat01 tomcat docker run -d -P --name tomcat02 tomcat

很明顯,直接ping通是不可能的,需要先把tomcat01容器和mynet網(wǎng)絡(luò)連通。
docker network connect
docker network connect 命令是用于將 docker 容器連接到某個(gè)網(wǎng)絡(luò)中,可以使用容器名或者容器ID。
用法:
docker network connect [OPTIONS] NETWORK CONTAINER
把tomcat01容器連接到mynet網(wǎng)絡(luò)上:
docker network connect mynet tomcat01
查看mynet的網(wǎng)絡(luò)信息:docker inspect mynet

tomcat01已經(jīng)連接到mynet網(wǎng)絡(luò)上,像tomcat01-net-tomcat01和tomcat01-net-tomcat02一樣。
此時(shí),tomcat01已經(jīng)和mynet網(wǎng)絡(luò)中的兩個(gè)容器連接起來(lái),因?yàn)檫@三個(gè)容器處于同一網(wǎng)絡(luò)中,當(dāng)然可以互相通信:

一個(gè)容器兩個(gè)網(wǎng)絡(luò):
查看tomcat01的元數(shù)據(jù):docker inspect tomcat01

tomcat01連接到自定義的mynet網(wǎng)絡(luò)后,就有兩個(gè)網(wǎng)絡(luò)了。
到此這篇關(guān)于Docker之自定義網(wǎng)絡(luò)實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker網(wǎng)絡(luò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker compose自定義網(wǎng)絡(luò)實(shí)現(xiàn)固定容器ip地址
- Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例
- 如何解決docker-compose網(wǎng)段路由沖突,docker-compose自定義網(wǎng)絡(luò)
- Docker自定義網(wǎng)絡(luò)詳細(xì)介紹
- Docker網(wǎng)絡(luò)原理及自定義網(wǎng)絡(luò)詳細(xì)解析
- Docker網(wǎng)絡(luò)之自定義網(wǎng)絡(luò)方式
- Docker自定義網(wǎng)絡(luò)詳解
- docker自定義網(wǎng)絡(luò)從入門到實(shí)踐
- Docker自定義網(wǎng)絡(luò)的實(shí)現(xiàn)步驟
相關(guān)文章
Docker Alpine鏡像時(shí)區(qū)問(wèn)題完美解決方案
這篇文章主要介紹了Docker Alpine鏡像時(shí)區(qū)問(wèn)題完美解決方案,本文給大家分享兩種解決方案供大家參考,需要的朋友可以參考下2021-04-04
用Docker快速構(gòu)建LEMP環(huán)境的方法示例
這篇文章主要介紹了用Docker快速構(gòu)建LEMP環(huán)境的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Windows Docker端口占用錯(cuò)誤及解決方案總結(jié)
在 Windows 環(huán)境下使用 Docker 容器時(shí),端口占用錯(cuò)誤是開(kāi)發(fā)和運(yùn)維中常見(jiàn)且棘手的問(wèn)題,本文將深入剖析該問(wèn)題的成因,介紹如何通過(guò)查看端口分配,合理調(diào)整動(dòng)態(tài)端口范圍,以及重啟網(wǎng)絡(luò)服務(wù)等實(shí)用技巧,有效解決 Windows Docker 端口占用錯(cuò)誤,需要的朋友可以參考下2025-04-04
Docker部署ELK7.3.0日志收集服務(wù)最佳實(shí)踐
這篇文章主要介紹了Docker部署ELK7.3.0日志收集服務(wù)最佳實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
docker-swarm之使用Docker secret管理敏感數(shù)據(jù)
就Docker Swarm集群服務(wù)而言,secret 是塊狀數(shù)據(jù),例如密碼、SSH私鑰、SSL證書(shū)或其他不應(yīng)通過(guò)網(wǎng)絡(luò)傳輸或未加密存儲(chǔ)在Dockerfile或應(yīng)用程序源代碼中的數(shù)據(jù),我們可以使用Docker secret 集中管理這些數(shù)據(jù),所以接下來(lái)就帶大家了解一下如何使用Docker secret 管理敏感數(shù)據(jù)2023-08-08
docker在windows創(chuàng)建卷后本地找不到的完美解決方法
這篇文章主要介紹了docker在windows創(chuàng)建卷后本地找不到的完美解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02

