国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

這篇具有很好參考價值的文章主要介紹了Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


一、容器網(wǎng)絡(luò)管理

容器網(wǎng)絡(luò)主要用于容器和容器之間、容器與外網(wǎng)、容器和宿主機(jī)的通信和連接。

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

1.1查看容器網(wǎng)絡(luò)

docker network ls [OPTIONS]
參數(shù) 命令
-f 過濾條件
-format string 格式化打印結(jié)果
–no-trunc 不縮略顯示
-q 只顯示網(wǎng)絡(luò)號

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

1.2創(chuàng)建容器網(wǎng)絡(luò)

docker network create [OPTIONS] NETWORK(名字)
參數(shù) 命令
-d 指定網(wǎng)絡(luò)格式
–subnet strings 指定子網(wǎng)網(wǎng)段
–ip-range strings 指定容器的IP范圍
–gateway strings 子網(wǎng)的IPV4或者IPV6

創(chuàng)建一個容器網(wǎng)絡(luò),命名為test-bridge,其中為橋接模式

docker network create -d bridge test-bridge

1.3 刪除容器網(wǎng)絡(luò)

docker network rm <你容器網(wǎng)絡(luò)的名字>
docker network ls
docker network rm test-bridge
docker network ls

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

1.4 容器網(wǎng)絡(luò)詳細(xì)信息

docker network inspect [OPTIONS]
參數(shù) 命令
-format string 格式化打印結(jié)果
docker network inspect none

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

1.5 配置容器網(wǎng)絡(luò)

基本格式

docker run/creat --network NETWORK

啟動

docker run -it -d \
--network=host \
centos /bin/bash

然后查看網(wǎng)絡(luò)格式

docker inspect <進(jìn)程號> | grep NetworkMode

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
如果沒有指定默認(rèn)會使用橋接(bridge)模式進(jìn)行連接

1.6 斷開容器網(wǎng)絡(luò)連接

連接:docker network connect [OPTIONS] NETWORKID CONTAINER
斷開:docker network disconnect [OPTIONS] NETWORKID CONTAINER

例子,創(chuàng)建一個實列

 docker run -it -d \
--network=host \
centos /bin/bash

先停止我們的容器

docker stop f2

去看我們NETWORK 的ID,然后在后面斷開網(wǎng)絡(luò)的時候,就直接輸入,要斷開的網(wǎng)絡(luò)ID

docker network ls

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

docker network disconnect 5e77(NETWORKID) f2(容器進(jìn)程號)

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
再去連接我們的none網(wǎng)絡(luò)

docker network connect 5707(NETWORKID) f2(容器進(jìn)程號)

二、none網(wǎng)絡(luò)

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

none的話就是什么都沒有的網(wǎng)絡(luò),在這個模式下,docker會擁有自己的網(wǎng)絡(luò)空間,但是不會為docker進(jìn)行任何的網(wǎng)絡(luò)配置,也就是說除了本地接口外,沒有任何的網(wǎng)卡、IP、路由等信息。

創(chuàng)建一個默認(rèn)網(wǎng)絡(luò)模式下的BusyBox

docker run --rm -it \
--name test-default \
busybox
ip a

可以看到docker容器分配的ip地址
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
我們再去ping一下外部容器

ping -c 3 wwww.baidu.com

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
可以看到已經(jīng)分配的ip地址

然后我們再來看設(shè)置為none

docker run --rm -it \
--name test-none \
--network=none \
busybox
ip a

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
很清楚的可以看到我們沒有分配了

三、host網(wǎng)絡(luò)

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

創(chuàng)建一個host網(wǎng)絡(luò)模式下的web應(yīng)用

docker run -it -d --name test-host --network=host nginx

docker inspect test-host

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
再去查看我們80端口的狀態(tài)

ss -anptu | grep 80
curl -I 172.20.10.4(ip addr 查看)

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

四、bridge網(wǎng)絡(luò)

在bridge模式下,我們會創(chuàng)建一個虛擬網(wǎng)橋Docker0,附加在其他的網(wǎng)卡上面可以自動轉(zhuǎn)發(fā)包,將其中一個接口eth0,另外一個接口veth放置宿主機(jī)的命令空間,同時,守護(hù)進(jìn)程還會從網(wǎng)橋的私有地址分配一個IP地址和子網(wǎng)給容器

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
先去下載我們的網(wǎng)橋管理工具

apt install -y bridge-utils
brctl show

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

下面我們再來創(chuàng)建一個bridge的容器

docker run -it -d --name test-nginx --network=bridge -p 8000:80 nginx

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
在這里我們可以看到Docker0上面掛載了網(wǎng)絡(luò)接口,下面我們再來看一個busybox的容器

docker run -it -d --name test-busybox --network=bridge busybox
brctl show

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

下面我們再來看一個例子

brctl show
docker run -d httpd
brctl show

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
我們再進(jìn)去看看網(wǎng)卡設(shè)置

docker ps
docker exec -it 9720[剛剛的進(jìn)程id] bash
第一種:
ip addr/ifconfig【這個好像看不了】
apt-get update
apt-get install net-tools
ifconfig

第二種:
ctrl+p+q
【我用這個看的】
docker inspect 9720

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

然后退出再去看我們網(wǎng)橋的配置

docker network inspect  bridge

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
可以看到是一樣de!

五、container網(wǎng)絡(luò)

container網(wǎng)絡(luò)是一種比較特別的網(wǎng)絡(luò)模式,這個模式讓指定創(chuàng)建的容器和已經(jīng)存在的容器共享一個存儲空間,新建的容器沒有自己的網(wǎng)卡、IP地址等,而是和一個指定ip的容器共享IP地址、端口號。這兩個容器之間不存在網(wǎng)絡(luò)隔離,而這兩個容器與宿主機(jī)還有其他機(jī)器存在網(wǎng)路隔離。
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
創(chuàng)建一個普通的容器

docker run -it --name test1 busybox
ip a

crtl+p+q(不要直接退出了)

然后我們再去創(chuàng)建一個container的容器

docker run -it --name test-container --network=container:test1 busybox 
ip a

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
這樣就可以看到我們兩個容器所使用的網(wǎng)絡(luò)就是一樣的啦

docker ps

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

六、容器連接外部網(wǎng)絡(luò)

其實在我們的虛擬機(jī)上,我們是可以直接聯(lián)通外部的網(wǎng)絡(luò)的
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
我們再去看我們的容器內(nèi)部網(wǎng)絡(luò)連通情況

docker run -it busybox
ping -c 3  www.bing.com

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
可以看到默認(rèn)情況下我們是可以訪問外部網(wǎng)絡(luò)(出容器以外的網(wǎng)絡(luò))的
下面我們可以通過

sudo su【管理員模式下】
iptables -t nat -S

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

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

其含義是: 如果網(wǎng)橋docker0收到來自172.17.0.0/16網(wǎng)段的外出包,把它交給MASQUERADE處理。而MASQUERADE的處理方式是將包的源地址替換成host的地址發(fā)送出去,即做了一次網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT)

下面我們再來看看是怎么轉(zhuǎn)換的

【路由表】
ip r

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
我們是通過ens33發(fā)出的,所以我們?nèi)ケO(jiān)聽下ens33和docker0上的情況

tcpdump -i ens33 -n icmp

開另外一個端口
ping -c 3  www.bing.com

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

tcpdump -i docker0 -n icmp

開另外一個端口并進(jìn)入容器
docker attch 【暫停端口號】
ping -c 3  www.bing.com

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

七、多節(jié)點(diǎn)網(wǎng)絡(luò)

ip addr

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
小唐就用三臺電腦來做一個示范吧

機(jī)器IP 說明
192.168.2.106 主節(jié)點(diǎn)(xiaotang0711)
192.168.2.100 datanode(qiuyb)
192.168.2.102 datanode(root-u)

主節(jié)點(diǎn)

設(shè)置我們的主節(jié)點(diǎn)

docker swarm init --advertise-addr=<IP-ADDRESS-OF-MANAGER>
docker swarm init --advertise-addr=192.168.2.106

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
在去查看

docker node ls

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
再去查看我們節(jié)點(diǎn)的狀態(tài)

docker node inspect ffu

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
加入主節(jié)點(diǎn)

docker swarm join-token manager

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

子節(jié)點(diǎn)
將我們上面所生成的放到節(jié)點(diǎn)機(jī)中
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
在每一個子節(jié)點(diǎn)中,輸入主節(jié)點(diǎn)的類容

docker swarm join --token SWMTKN-1-0ktmburrukg72jsyri177tlpk4i8ftkatanwcrlqshfn67ex6r-7b448j9aihy08u3b6kn0z2cdx 192.168.2.106:2377
降級
docker node inspect ffu

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
如果 做錯了,請在當(dāng)前機(jī)器退出節(jié)點(diǎn)設(shè)置

docker swarm leave --force

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

查看swrm集群中的節(jié)點(diǎn)
docker node ls
脫離節(jié)點(diǎn)(在對應(yīng)節(jié)點(diǎn)處執(zhí)行)
docker swarm leave
刪除脫離節(jié)點(diǎn)【對于manager需要先將節(jié)點(diǎn)降為worker節(jié)點(diǎn)才能刪除】
docker node rm XXX(編號)

7.1創(chuàng)建Overlay網(wǎng)絡(luò)

同步swarm節(jié)點(diǎn)

docker network create -d overlay mynet

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

docker service ps test

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

在主節(jié)點(diǎn)和分節(jié)點(diǎn)上同時運(yùn)行

docker service create --network mynet --name test --replicas 2 busybox ping 8.8.8.8
【進(jìn)入容器】
docker ps

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
在主節(jié)點(diǎn)和分節(jié)點(diǎn)上同時運(yùn)行(注意主節(jié)點(diǎn)子節(jié)點(diǎn)他們的容器id不一樣)

docker container exec -it 57f sh

主節(jié)點(diǎn)
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
分節(jié)點(diǎn)
Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)
互相ping

ping 10.0.1.3[去另外一臺主機(jī)的ip addr 看]
ping www.baidu.com

Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)

7.2創(chuàng)建Macvlan網(wǎng)絡(luò)

主節(jié)點(diǎn)

docker network create -d macvlan --subnet 192.168.2.106/24[你自己的ip] --gateway 192.168.2.106[你自己的getway] -o parent=ens33 mac-test

另外一臺

docker network create -d macvlan \
--subnet 192.168.2.106/24 \
--gateway 192.168.2.106 \
-o parent=ens33 mac-test

再進(jìn)入兩個主機(jī)
再去看ip addr
然后我們就可以看到我們節(jié)點(diǎn)互通啦?。。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-426487.html

到了這里,關(guān)于Ubantu docker學(xué)習(xí)筆記(七)容器網(wǎng)絡(luò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker 容器學(xué)習(xí)筆記以及安裝配置

    Docker 容器學(xué)習(xí)筆記以及安裝配置

    容器的由來 早先,虛擬機(jī)通過操作系統(tǒng)實現(xiàn)相互隔離,保證應(yīng)用程序在運(yùn)行時相互獨(dú)立,避免相互干擾。但是操作系統(tǒng)又笨又重,耗費(fèi)資源嚴(yán)重: 容器技術(shù)只隔離應(yīng)用程序的運(yùn)行時環(huán)境但容器之間共享同一個操作系統(tǒng),這里的運(yùn)行時環(huán)境指的是程序運(yùn)行依賴的各種庫以及配

    2024年02月09日
    瀏覽(22)
  • Docker學(xué)習(xí):容器五種(3+2)網(wǎng)絡(luò)模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定義網(wǎng)絡(luò)模式詳解

    Docker學(xué)習(xí):容器五種(3+2)網(wǎng)絡(luò)模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定義網(wǎng)絡(luò)模式詳解

    本講是從Docker系列講解課程,單獨(dú)抽離出來的一個小節(jié),重點(diǎn)介紹 容器網(wǎng)絡(luò)模式 , 屬于了解范疇,充分了容器的網(wǎng)絡(luò)模式, 更有助于更好的理解Docker的容器之間的訪問邏輯 。 疑問: 為什么要了解容器的網(wǎng)絡(luò)模式? 首先, 容器之間 雖然不是物理隔離,但是它們彼此之間

    2024年02月09日
    瀏覽(27)
  • 【docker筆記】Docker容器數(shù)據(jù)卷

    【docker筆記】Docker容器數(shù)據(jù)卷

    卷就是目錄或者文件,存在于一個或多個容器中,由docker掛載到容器,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過Union File System提供一些用于持續(xù)存儲或共享數(shù)據(jù)的特性 卷的設(shè)計目的就是數(shù)據(jù)的持久化,完全獨(dú)立于容器的生存周期,因此docker不會在容器刪除是刪除其掛載的數(shù)據(jù)卷

    2024年02月02日
    瀏覽(32)
  • Ubantu安裝Docker(完整詳細(xì))

    Ubantu安裝Docker(完整詳細(xì))

    然后根據(jù)官方文檔一步一步跟著操作即可 要成功安裝Docker Desktop,必須: 滿足系統(tǒng)要求 擁有64位版本的Ubuntu Jammy Jellyfish 22.04(LTS)或Ubuntu Impish Indri 21.10。 Docker Desktop支持x86_64(或amd64)架構(gòu)。 對于非Gnome Desktop環(huán)境,gnome-terminal 必須安裝 卸載Docker Desktop for Linux的技術(shù)預(yù)覽版或

    2024年02月13日
    瀏覽(25)
  • docker使用容器名實現(xiàn)容器網(wǎng)絡(luò)互相訪問

    docker運(yùn)行容器的時候沒有指定–network 參數(shù),默認(rèn)是以bridge模式創(chuàng)建,bridge網(wǎng)絡(luò)表現(xiàn)形式就是docker0這個網(wǎng)絡(luò)接口。容器默認(rèn)都是通過docker0這個接口進(jìn)行通信。也可以通過docker0去和本機(jī)的以太網(wǎng)接口連接,這樣容器內(nèi)部才能訪問互聯(lián)網(wǎng)。 但是停止/重啟容器之后,容器ip會以誰先

    2024年02月14日
    瀏覽(20)
  • Docker容器常用命令筆記分享

    Docker容器常用命令筆記分享

    Docker是一個開源的應(yīng)用容器引擎,可以讓開發(fā)者將應(yīng)用程序及其依賴打包成一個可移植的容器,然后發(fā)布到任何支持Docker的機(jī)器上,實現(xiàn)應(yīng)用程序在不同環(huán)境中的一致性運(yùn)行。相比傳統(tǒng)的虛擬化技術(shù),Docker具有更輕量級、更快速、更高效的特點(diǎn)。使用Docker可以方便地創(chuàng)建、部

    2024年03月17日
    瀏覽(22)
  • Docker筆記 容器的數(shù)據(jù)卷

    Docker筆記 容器的數(shù)據(jù)卷

    大家好 我是積極向上的湘鍋鍋?????? 思考: Docker容器刪除后,在容器中產(chǎn)生的數(shù)據(jù)還在嗎? 答案是不在了,數(shù)據(jù)存放在容器中,如果將容器刪除,數(shù)據(jù)也會被一并刪除 Docker容器和外部機(jī)器可以直接交換文件嗎? 答案是不行,因為外部機(jī)器與docker內(nèi)部之間是不互通的,但

    2024年02月15日
    瀏覽(19)
  • Docker網(wǎng)絡(luò)---容器互聯(lián)

    Docker網(wǎng)絡(luò)---容器互聯(lián)

    前言: 雖然每個docker容器之間都能通過ip來進(jìn)行互聯(lián),但當(dāng)容器重新啟動,ip就會被重新分配給重新啟動的容器,這時同個容器由于重啟導(dǎo)致ip不一樣了,這時就會導(dǎo)致開發(fā)和運(yùn)維的困難程度大大增加,這時候就要考慮能不能不通過ip互聯(lián),而是通過容器的名稱或id來實現(xiàn)容器

    2024年02月16日
    瀏覽(48)
  • Docker容器網(wǎng)絡(luò)(七)

    Docker容器網(wǎng)絡(luò)(七)

    在應(yīng)用程序和網(wǎng)絡(luò)之間是 Docker 網(wǎng)絡(luò),被親切地稱為容器網(wǎng)絡(luò)模型 或 CNM(Container Network Model)。是 CNM 為您的 Docker 容器代理連接性,并且還抽象出網(wǎng)絡(luò)中常見的多樣性和復(fù)雜性。結(jié)果是可移植性,它來自 CNM 強(qiáng)大的網(wǎng)絡(luò)驅(qū)動程序。這些是 Docker 引擎、Swarm 和 UCP 的可插拔接口,

    2024年02月05日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包