08_Docker網(wǎng)絡(luò)

學(xué)習(xí)網(wǎng)絡(luò)之前需要理解:Docker捞稿、鏡像、容器之間的關(guān)系和區(qū)別。

可以粗暴的理解為:

Docker = 虛擬機(jī)軟件

鏡像 = 操作系統(tǒng)安裝包

容器就 = 啟動(dòng)的一個(gè)個(gè)輕量級(jí)的虛擬機(jī),包含內(nèi)核、網(wǎng)絡(luò)之類(lèi)的東西闹啦。

docker0

Docker啟動(dòng)之后,在宿主機(jī)上使用ip addr命令可以看到其中有一個(gè)docker0的網(wǎng)卡辕坝。

# 命令
ip addr

# 結(jié)果
...
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:d3:31:07:1f brd ff:ff:ff:ff:ff:ff
    # 定義網(wǎng)段和掩碼位數(shù)為16位窍奋。
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
...

說(shuō)明:docker0網(wǎng)卡會(huì)隨著Docker啟動(dòng)而添加,Docker關(guān)閉而刪除酱畅。

網(wǎng)絡(luò)基礎(chǔ)說(shuō)明:

172.17.0.1/16 中的16表示掩碼位數(shù)為16位琳袄,也就是ip轉(zhuǎn)為二進(jìn)制后,前16位為子網(wǎng)掩碼纺酸。

二進(jìn)制的ip:00000000.00000000.00000000.00000000

加粗部分為子網(wǎng)掩碼位窖逗。

以172.17.0.1/16為例,可用ip為:172.17.0.2 ~ 172.17.255.254 也就是:2^(32-16) - 2 ≈ 65534個(gè)可用ip

以172.17.0.1/24為例餐蔬,可用ip為:172.17.0.2 ~ 172.17.0.254 也就是:2^(32-24) - 2≈254個(gè)可用ip

能夠看到該網(wǎng)卡的ip是xxx.xxx.0.1/16碎紊。

看到這個(gè)差不多能聯(lián)想到路由器,因?yàn)榧依锩娴穆酚善骶褪?code>xxx.xxx.0.1作為網(wǎng)關(guān)樊诺。

那么docker0和路由器有什么相似嗎仗考?

要搞清楚這個(gè)問(wèn)題,則需要研究研究Docker容器之間的通信词爬。

先說(shuō)結(jié)論:Docker容器之間秃嗜,默認(rèn)使用docker0作為路由進(jìn)行通信。

容器之間的通信

容器之間的通信測(cè)試

  1. 啟動(dòng)兩個(gè)tomcat容器,端口分別使用80818082痪寻。

    # 8081
    docker run -d -p 8081:8080 --name tomcat1 tomcat:8.5.57-jdk8-openjdk
    # 8082
    docker run -d -p 8082:8080 --name tomcat2 tomcat:8.5.57-jdk8-openjdk
    
  2. 再使用ip addr查看宿主機(jī)網(wǎng)卡情況螺句,會(huì)發(fā)現(xiàn)多出來(lái)了兩張網(wǎng)卡。

    # 宿主機(jī)執(zhí)行命令
    ip addr
    
    # 輸出結(jié)果
    ...
    5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:d3:31:07:1f brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:d3ff:fe31:71f/64 scope link 
           valid_lft forever preferred_lft forever
    # 可以看到比剛剛多出來(lái)了2張網(wǎng)卡
    # 第一張網(wǎng)卡橡类。7: veth8ee7065@if6,對(duì)應(yīng)tomcat1
    7: veth8ee7065@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
        link/ether 52:fe:db:26:b9:40 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet6 fe80::50fe:dbff:fe26:b940/64 scope link 
           valid_lft forever preferred_lft forever
    # 第二張網(wǎng)卡芽唇。9: veth96e86e0@if8顾画,對(duì)應(yīng)tomcat2
    9: veth96e86e0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
        link/ether 6a:d0:55:36:5d:1a brd ff:ff:ff:ff:ff:ff link-netnsid 1
        inet6 fe80::68d0:55ff:fe36:5d1a/64 scope link 
           valid_lft forever preferred_lft forever
    ...
    
  3. 進(jìn)入tomcat1內(nèi)部,查看該容器的網(wǎng)卡匆笤,發(fā)現(xiàn)和宿主機(jī)上的新增加的第一張網(wǎng)卡是一對(duì)兒研侣,并且發(fā)現(xiàn)ip是docker0網(wǎng)段下面的ip。

    網(wǎng)絡(luò)知識(shí):在一個(gè)網(wǎng)段下炮捧,xxx.xxx.0.1作為保留ip庶诡,對(duì)該網(wǎng)段下的通信進(jìn)行路由。

    # 以交互模式進(jìn)入tomcat1容器內(nèi)部
    docker exec -it tomcat1 bash
    
    # 查看容器網(wǎng)卡
    ip addr
    
    # 輸出結(jié)果
    ...
    # 和宿主機(jī)的第一張網(wǎng)卡是一對(duì)兒咆课。
    6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        # ip是docker0網(wǎng)段下面的ip
        inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    ...
    
  4. 通過(guò)同樣的方法末誓,能夠查詢(xún)到tomcat2的ip為172.17.0.3。

  5. 再次進(jìn)入tomcat1內(nèi)部书蚪,嘗試ping tomcat2的ip喇澡,發(fā)現(xiàn)可以ping通。

    # 以交互模式進(jìn)入tomcat1容器內(nèi)部
    docker exec -it tomcat1 bash
    # ping tomcat2
    ping 172.17.0.3
    
    # 輸出結(jié)果
    PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
    64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.202 ms
    64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.172 ms
    
  6. 在tomcat1中ping 宿主機(jī)的主ip殊校,發(fā)現(xiàn)可以ping通的晴玖。但是網(wǎng)段不同是怎么ping通的呢?

    肯定是通過(guò)了一個(gè)東西中轉(zhuǎn)为流,不然說(shuō)不通呕屎。

    那么可以猜測(cè)進(jìn)行中轉(zhuǎn)的要么是docker0,要么是通過(guò)宿主機(jī)和容器之間出現(xiàn)的那一對(duì)兒網(wǎng)卡進(jìn)行中轉(zhuǎn)敬察。

    # 以交互模式進(jìn)入tomcat1容器內(nèi)部
    docker exec -it tomcat1 bash
    # ping宿主機(jī)的主ip:192.168.24.210
    ping 192.168.24.210
    
    # 輸出結(jié)果
    PING 192.168.24.210 (192.168.24.210) 56(84) bytes of data.
    64 bytes from 192.168.24.210: icmp_seq=1 ttl=64 time=0.140 ms
    64 bytes from 192.168.24.210: icmp_seq=2 ttl=64 time=0.091 ms
    
  7. 通過(guò)宿主機(jī)上通過(guò)ip addr查看新增的網(wǎng)卡秀睛,大致可以看出:宿主機(jī)和容器之間出現(xiàn)的那一對(duì)兒網(wǎng)卡也是通過(guò)docker0轉(zhuǎn)發(fā)的。

    # 宿主機(jī)執(zhí)行命令
    ip addr
    
    # 輸出結(jié)果
    ...
    # 第一張網(wǎng)卡静汤。7: veth8ee7065@if6琅催,對(duì)應(yīng)tomcat1
    # 通過(guò)mtu 1500 qdisc noqueue master docker0 state UP group default這句話(huà)
    # 能大致看出來(lái)是通過(guò)了docker0轉(zhuǎn)發(fā)
    7: veth8ee7065@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
        link/ether 52:fe:db:26:b9:40 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet6 fe80::50fe:dbff:fe26:b940/64 scope link 
           valid_lft forever preferred_lft forever
    ...
    
  8. 在宿主機(jī)上ping tomcat2 發(fā)現(xiàn)也可以ping通。

    # 宿主機(jī)上ping tomcat2
    ping 172.17.0.3
    
    # 輸出結(jié)果
    PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
    64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.128 ms
    64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.102 ms
    

容器之間的通信結(jié)論

結(jié)合對(duì)網(wǎng)絡(luò)基礎(chǔ)認(rèn)識(shí)虫给,可以得到結(jié)論

  • 容器之間可以通過(guò)docker0中轉(zhuǎn)藤抡,實(shí)現(xiàn)相互通信。
  • 宿主機(jī)和容器之間也是通過(guò)docker0實(shí)現(xiàn)互相通信抹估。
  • 宿主機(jī)和容器之間缠黍,使用一對(duì)兒虛擬網(wǎng)卡,通過(guò)docker0進(jìn)行通信药蜻。這個(gè)通信技術(shù)就是veth pair技術(shù)瓷式。

網(wǎng)絡(luò)拓?fù)鋱D大致如下:

image-20210111155323742.png

--link(不常用)

根據(jù)上面的測(cè)試替饿,發(fā)現(xiàn)容器之間是可以使用ip通過(guò)docker0互相訪問(wèn)的。

但是容器每次啟動(dòng)的時(shí)候贸典,容器ip是有可能發(fā)生變化的视卢。

如果發(fā)生變化,之前配置的ip就極有可能是訪問(wèn)不到的廊驼。要怎么解決這個(gè)問(wèn)題呢据过?

--link測(cè)試

參考Spring Cloud的服務(wù)名調(diào)用,是否docker也可以通過(guò)容器名調(diào)用呢妒挎?這就需要使用--link命令了绳锅。

  • 使用方式:在容器啟動(dòng)的時(shí)候加上--link指令。

  • 詳細(xì)如下:

  1. 啟動(dòng)兩個(gè)tomcat酝掩,tomcat2使用--link連接tomcat1鳞芙。

    注意:--link的位置不能放到images后面,否則可能會(huì)報(bào)錯(cuò)期虾。

    # 8081
    docker run -d -p 8081:8080 --name tomcat1 tomcat:8.5.57-jdk8-openjdk
    # 8082原朝,使其連接tomcat1
    docker run -d -p 8082:8080 --name tomcat2 --link tomcat1 tomcat:8.5.57-jdk8-openjdk
    

    如果容器啟動(dòng)需要連接多個(gè)容器,則使用多個(gè)--link命令即可彻消。比如:

    # 連接多個(gè)容器
    docker run -d -p 8082:8080 --name tomcat2 --link tomcat1 --link mysql tomcat:8.5.57-jdk8-openjdk
    
  2. 進(jìn)入tomcat2內(nèi)部竿拆,嘗試ping tomcat1發(fā)現(xiàn)可以通。

    # 以交互模式進(jìn)入容器內(nèi)部
    docker exec -it tomcat2 bash
    
    # ping tomcat1
    ping tomcat1
    
    # 輸出結(jié)果
    64 bytes from tomcat1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.908 ms
    64 bytes from tomcat1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.106 ms
    ...
    
  3. 進(jìn)入tomcat1內(nèi)部宾尚,嘗試ping tomcat2發(fā)現(xiàn)不通丙笋。

    # 以交互模式進(jìn)入容器內(nèi)部
    docker exec -it tomcat1 bash
    
    # ping tomcat2
    ping tomcat2
    
    # 輸出結(jié)果
    ping: tomcat2: Temporary failure in name resolution
    
    # 嘗試ping tomcat2的ip,發(fā)現(xiàn)可以通煌贴。
    ping 172.17.0.3
    
    # 輸出結(jié)果
    64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.153 ms
    64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.101 ms
    ...
    
  4. 使用inspect 查看tomcat2的元信息御板,發(fā)現(xiàn)在HostConfig.Links的節(jié)點(diǎn)中多了tomcat1的配置。

    # 查看tomcat2的源信息
    docker inspect tomcat2
    
    # 輸出結(jié)果
    "HostConfig": {
        ...
        "Links": [
            "/tomcat1:/tomcat2/tomcat1"
        ],
        ...       
    },
    
  5. 反觀tomcat1的元信息中沒(méi)有該配置牛郑。

    # 查看tomcat1的源信息
    docker inspect tomcat1
    
    # 輸出結(jié)果
    "HostConfig": {
        ...
        "Links": null
        ...       
    },
    
  6. 進(jìn)入tomcat2內(nèi)部怠肋,找到hosts文件,可以很明顯看出來(lái)淹朋,docker將tomcat1的ip寫(xiě)到hosts文件中了笙各。

    # 進(jìn)入容器內(nèi)部
    docker exec -it tomcat2 bash
    
    # 查看hosts文件
    cat /etc/hosts
    
    # 輸出結(jié)果
    127.0.0.1   localhost
    ::1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    # 很明顯能夠看出來(lái),docker將tomcat1的ip寫(xiě)到hosts文件中了
    172.17.0.2  tomcat1 74a446e44fa9
    172.17.0.3  3d97defbb83b
    
  7. 將tomcat1停用础芍,并新啟動(dòng)容器tomcat3杈抢,再將tomcat1啟動(dòng)起來(lái)。目的是讓tomcat1容器的ip發(fā)生變化仑性。

    很明顯能夠看出來(lái)惶楼,docker會(huì)自動(dòng)維護(hù)被關(guān)聯(lián)容器的新ip。

    # 停用tomcat1
    docker stop tomcat1
    
    # 啟動(dòng)tomcat3,端口:8083
    docker run -d -p 8083:8080 --name tomcat3 tomcat:8.5.57-jdk8-openjdk
    
    # 再次啟動(dòng)tomcat1
    docker start tomcat1
    
    # 進(jìn)入tomcat2內(nèi)部
    docker exec -it tomcat2 bash
    
    # 查看hosts文件
    cat /etc/hosts
    
    # 輸出結(jié)果
    127.0.0.1   localhost
    ::1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    # 很明顯能夠看出來(lái)歼捐,docker會(huì)自動(dòng)維護(hù)被關(guān)聯(lián)容器的新ip何陆。
    172.17.0.4  tomcat1 74a446e44fa9
    172.17.0.3  3d97defbb83b
    

--link結(jié)論

通過(guò)以上實(shí)驗(yàn),可以發(fā)現(xiàn)--link其實(shí)就是在容器的/etc/hosts文件中記錄了其他關(guān)聯(lián)容器的ip映射豹储。

并且當(dāng)被關(guān)聯(lián)的容器ip改變后贷盲,docker會(huì)自動(dòng)將新的ip維護(hù)到/etc/hosts文件中。

自定義網(wǎng)絡(luò)(常用)

Docker默認(rèn)使用docker0作為基礎(chǔ)網(wǎng)絡(luò)服務(wù)颂翼,多個(gè)容器之間使用--link連接晃洒,使其能夠通過(guò)名稱(chēng)相互訪問(wèn)。

但是如果容器依賴(lài)較多朦乏,且雙向綁定,此時(shí)使用--link就比較麻煩了氧骤,所以需要用到自定義網(wǎng)絡(luò)呻疹。

Docker自定義網(wǎng)絡(luò)默認(rèn)使用橋接模式(bridge),且自定義網(wǎng)絡(luò)容器之間可以直接通過(guò)容器名互相訪問(wèn)筹陵,沒(méi)有docker0的限制刽锤。

參考資料:《官方文檔-網(wǎng)絡(luò)篇》

自定義網(wǎng)絡(luò)測(cè)試

  • 創(chuàng)建一個(gè)mynet網(wǎng)絡(luò),并指定子網(wǎng)范圍和網(wǎng)關(guān)朦佩。

    # 創(chuàng)建一個(gè)名叫mynet的網(wǎng)絡(luò)并思,并設(shè)置子網(wǎng)和網(wǎng)關(guān)
    # 16表示子網(wǎng)掩碼是前16位
    # 也就是可用ip為:172.18.0.2 ~ 172.18.255.254 也就是:2^(32-16) - 2 ≈ 65534個(gè)可用ip
    docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 mynet
    
  • 啟動(dòng)兩個(gè)tomcat,并指定連接到mynet網(wǎng)絡(luò)上语稠。

    # 8081
    docker run -d -p 8081:8080 --name tomcat1 --network mynet tomcat:8.5.57-jdk8-openjdk
    # 8082宋彼,使其連接tomcat1
    docker run -d -p 8082:8080 --name tomcat2 --network mynet tomcat:8.5.57-jdk8-openjdk
    
  • 進(jìn)入tomcat1內(nèi)部,嘗試ping tomcat2發(fā)現(xiàn)可以通仙畦。

    # 進(jìn)入容器內(nèi)部
    docker exec -it tomcat1 bash
    
    # ping tomcat2
    ping tomcat2
    
    # 輸出結(jié)果
    PING tomcat2 (172.18.0.3) 56(84) bytes of data.
    64 bytes from tomcat2.mynet (172.18.0.3): icmp_seq=1 ttl=64 time=0.173 ms
    64 bytes from tomcat2.mynet (172.18.0.3): icmp_seq=2 ttl=64 time=0.117 ms
    ...
    
  • 反之输涕,進(jìn)入tomcat2內(nèi)部,嘗試ping tomcat1發(fā)現(xiàn)也可以通慨畸。

    # 進(jìn)入容器內(nèi)部
    docker exec -it tomcat2 bash
    
    # ping tomcat1
    ping tomcat1
    
    # 輸出結(jié)果
    PING tomcat1 (172.18.0.2) 56(84) bytes of data.
    64 bytes from tomcat1.mynet (172.18.0.2): icmp_seq=1 ttl=64 time=0.207 ms
    64 bytes from tomcat1.mynet (172.18.0.2): icmp_seq=2 ttl=64 time=0.113 ms
    ...
    
  • 查看tomcat容器元信息莱坎。

    # 查看tomcat1元信息
    docker inspect tomcat1
    
    # 輸出結(jié)果
    ...
    "NetworkSettings": {
        ...
        "Networks": {
            "mynet": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": [
                    "3fe6bc63d6d7"
                 ],
                 "NetworkID": "36116879e0017...",
                 "EndpointID": "10ab48216424d8...",
                 # 網(wǎng)關(guān)
                 "Gateway": "172.18.0.1",
                 # ip
                 "IPAddress": "172.18.0.2",
                 "IPPrefixLen": 16,
                 "IPv6Gateway": "",
                 "GlobalIPv6Address": "",
                 "GlobalIPv6PrefixLen": 0,
                 "MacAddress": "02:42:ac:12:00:02",
                 "DriverOpts": null
            }
       }
    }
    
  • 查看mynet網(wǎng)絡(luò)元信息。

    # 查看net網(wǎng)絡(luò)元信息
    docker network inspect mynet
    
    # 輸出結(jié)果
    [
        {
            # 網(wǎng)絡(luò)名稱(chēng)
            "Name": "mynet",
            "Id": "36116879e0017d2...",
            "Created": "2021-01-11T18:30:54.331993801+08:00",
            "Scope": "local",
            # 網(wǎng)絡(luò)模式
            "Driver": "bridge",
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "default",
                "Options": {},
                "Config": [
                    {
                        # 子網(wǎng)范圍
                        "Subnet": "172.18.0.0/16",
                        # 子網(wǎng)網(wǎng)關(guān)
                        "Gateway": "172.18.0.1"
                    }
                ]
            },
            "Internal": false,
            "Attachable": false,
            "Ingress": false,
            "ConfigFrom": {
                "Network": ""
            },
            "ConfigOnly": false,
            "Containers": {
                # 容器ID寸士,對(duì)應(yīng)tomcat2
                "09354b339db77b4...": {
                    # 容器名稱(chēng)
                    "Name": "tomcat2",
                    "EndpointID": "ee2aaa8d75afcd14ece...",
                    # MAC地址
                    "MacAddress": "02:42:ac:12:00:03",
                    # tomcat2的ip
                    "IPv4Address": "172.18.0.3/16",
                    "IPv6Address": ""
                },
                # 容器ID檐什,對(duì)應(yīng)tomcat1
                "3fe6bc63d6d79e1...": {
                    # 容器名稱(chēng)
                    "Name": "tomcat1",
                    "EndpointID": "10ab48216424d806619...",
                    # MAC地址
                    "MacAddress": "02:42:ac:12:00:02",
                    # tomcat1的ip
                    "IPv4Address": "172.18.0.2/16",
                    "IPv6Address": ""
                }
            },
            "Options": {},
            "Labels": {}
        }
    ]
    

命令集

查看所有網(wǎng)絡(luò)列表:docker network ls

  • 語(yǔ)法

    docker network ls [OPTIONS]
    
  • 示例

    # 查看所有網(wǎng)絡(luò)列表
    docker network ls
    

連接容器到網(wǎng)絡(luò):docker network connect

  • 語(yǔ)法

    docker network connect [OPTIONS] NETWORK CONTAINER
    
  • 示例

    # 連接tomcat1到mynet網(wǎng)絡(luò)
    docker network connect mynet tomcat1
    

創(chuàng)建網(wǎng)絡(luò):docker network create

  • 語(yǔ)法

    docker network create [OPTIONS] NETWORK
    
    • 重要參數(shù)

      • --subnet:設(shè)置子網(wǎng)范圍

      • --gateway:設(shè)置子網(wǎng)網(wǎng)關(guān)

      • --driver:設(shè)置網(wǎng)絡(luò)類(lèi)型,可選值有:bridge(默認(rèn))弱卡、host乃正、containernone

        網(wǎng)絡(luò)模式 使用方法 說(shuō)明
        bridge --driver bridge或缺省 和宿主機(jī)網(wǎng)絡(luò)間使用橋接模式谐宙。
        host --driver host 和宿主機(jī)共享網(wǎng)絡(luò)(直連NAT)烫葬。
        container --driver container:[容器名稱(chēng)/ID] 和指定容器共享網(wǎng)絡(luò)。
        none --driver none 不設(shè)置網(wǎng)絡(luò)。
  • 示例

    # 示例1:創(chuàng)建一個(gè)名叫mynet的網(wǎng)絡(luò)
    docker network create mynet
    
    # 示例2:創(chuàng)建一個(gè)名叫mynet的網(wǎng)絡(luò)搭综,并設(shè)置子網(wǎng)和網(wǎng)關(guān)
    # 16表示子網(wǎng)掩碼是前16位
    # 也就是可用ip為:172.18.0.2 ~ 172.18.255.254 也就是:2^(32-16) - 2 ≈ 65534個(gè)可用ip
    docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 mynet
    
    # 示例3:創(chuàng)建一個(gè)名叫mynet的網(wǎng)絡(luò)垢箕,并設(shè)置為和主機(jī)使用nat直連(共享網(wǎng)絡(luò))
    # 按照語(yǔ)法寫(xiě)的,沒(méi)有測(cè)試過(guò)兑巾,不知道真實(shí)是否可用条获。有可能要依據(jù)真實(shí)網(wǎng)絡(luò)情況配置。具體請(qǐng)參考官方文檔蒋歌。
    docker network create --driver host mynet
    

斷開(kāi)容器網(wǎng)絡(luò):docker network disconnect

  • 語(yǔ)法

    docker network disconnect [OPTIONS] NETWORK CONTAINER
    
  • 示例

    # tomcat1斷開(kāi)mynet網(wǎng)絡(luò)連接
    docker network disconnect mynet tomcat1
    

查看網(wǎng)絡(luò)元信息:docker network inspect

  • 語(yǔ)法

    docker network inspect [OPTIONS] NETWORK [NETWORK...]
    
  • 示例

    # 查看mynet網(wǎng)絡(luò)元信息
    docker network inspect mynet
    

刪除所有無(wú)用網(wǎng)絡(luò):docker network prune

  • 語(yǔ)法

    docker network prune [OPTIONS]
    
  • 示例

    # 刪除所有無(wú)用網(wǎng)絡(luò)(沒(méi)有被連接的網(wǎng)絡(luò))
    docker network prune
    

刪除指定網(wǎng)絡(luò):docker network rm

  • 語(yǔ)法

    docker network rm NETWORK [NETWORK...]
    
  • 示例

    # 刪掉mynet網(wǎng)絡(luò)(只有沒(méi)有被連接的網(wǎng)絡(luò)才能刪除)
    docker network rm mynet
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末帅掘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子堂油,更是在濱河造成了極大的恐慌修档,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件府框,死亡現(xiàn)場(chǎng)離奇詭異吱窝,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)迫靖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)院峡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人系宜,你說(shuō)我怎么就攤上這事照激。” “怎么了盹牧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵俩垃,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我欢策,道長(zhǎng)吆寨,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任踩寇,我火速辦了婚禮啄清,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俺孙。我一直安慰自己辣卒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布睛榄。 她就那樣靜靜地躺著荣茫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪场靴。 梳的紋絲不亂的頭發(fā)上啡莉,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天港准,我揣著相機(jī)與錄音,去河邊找鬼咧欣。 笑死浅缸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的魄咕。 我是一名探鬼主播衩椒,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼哮兰!你這毒婦竟也來(lái)了毛萌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤喝滞,失蹤者是張志新(化名)和其女友劉穎阁将,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體右遭,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冀痕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了狸演。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡僻他,死狀恐怖宵距,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吨拗,我是刑警寧澤满哪,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站劝篷,受9級(jí)特大地震影響哨鸭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜娇妓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一像鸡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哈恰,春花似錦只估、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至荠医,卻和暖如春吁脱,著一層夾襖步出監(jiān)牢的瞬間桑涎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工兼贡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留攻冷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓紧显,卻偏偏與公主長(zhǎng)得像讲衫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子孵班,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容