最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker網(wǎng)絡之自定義網(wǎng)絡方式

 更新時間:2025年01月02日 14:52:31   作者:后會無期77  
文章介紹了Docker的網(wǎng)絡模式,包括bridge、none、container、host和用戶自定義網(wǎng)絡,并詳細說明了docker0網(wǎng)絡的特點和自定義網(wǎng)絡的創(chuàng)建

幫助命令

docker network --help

查看所有的網(wǎng)絡

docker network ls

網(wǎng)絡模式

網(wǎng)絡模式配置說明
bridge模式–net=bridge默認值,在Docker網(wǎng)橋docker0上為容器創(chuàng)建新的網(wǎng)絡棧
none模式–net=none不配置網(wǎng)絡,用戶可以稍后進入容器,自行配置
container模式– net=container:name/id容器和另外一個容器共享Network namespace。kubernetes中的pod就是多個容器共享一個Network namespace。
host模式–net=host容器和宿主機共享Network namespace
用戶自定義–net=自定義網(wǎng)絡用戶自己使用network相關命令定義網(wǎng)絡,創(chuàng)建容器的時候可以指定為自己定義的網(wǎng)絡

查看一個網(wǎng)絡的相信信息

[root@ls-bPtysZTW ~]# docker network inspect 1944197a1821
[
    {
        "Name": "bridge",
        "Id": "1944197a18211b7cbd5f07b9c25f696c6fc74dfe19324b1a51db33335627c8f3",
        "Created": "2022-03-18T18:34:10.650916029+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "99610ffcbeb1124ac54bbb2cad77043828793028ffb75612ddbde10ce0d8ed77": {
                "Name": "tomcat02",
                "EndpointID": "da9819333b969861729adee15dae290021fddeeab91b0d878e64d4cee7efe43a",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            },
            "b4b7bcb5cf4d2c6b984400b21e2009a7936be6dec0c8db0e62f5a470c926b013": {
                "Name": "tomcat01",
                "EndpointID": "8103ffad548da7aa51eb888bae4f6b808447d49fdcb42c8b19655bddaa4b3958",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "ee86fd75423ae1d9631dfba52ea7df05904e358a35319c103e990a61e5c7904a": {
                "Name": "tomcat03",
                "EndpointID": "0f25ea01f8ec30eaa002c4e2c2346a3e249875797cf051f5c9d6de9135607d34",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]
[root@ls-bPtysZTW ~]# 

docker0子網(wǎng)段172.17.0.0/16,表示容器劃分是0到16位,也就是意味著docker容器可以劃分出65535個ip,其中172.17.0.1是網(wǎng)關,那么docker可以劃分65534個ip提供給容器使用。

自定義網(wǎng)卡

1.刪除所有的容器,查看網(wǎng)卡恢復到最開始。

docker rm -f $(docker ps -aq)

2. 接下來我們創(chuàng)建容器,但是我們知道默認創(chuàng)建的容器都是docker0的網(wǎng)卡。

#我們不配置網(wǎng)絡,也叫相當于默認值,--net bridge 使用的docker0
docker run -d -P --name tomcat01 --net bridge tomcat #默認

docker0網(wǎng)絡特點

  • 他是默認的
  • 域名訪問不通
  • –link 域名通了,但是刪除了又不行

3.我們可以讓容器創(chuàng)建的時候使用自定義網(wǎng)絡

#自定義創(chuàng)建的默認default bridge
#自定義創(chuàng)建一個網(wǎng)絡
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

查看到我們剛剛創(chuàng)建的網(wǎng)絡 docker network ls

我們來啟動兩個容器測試,使用自己的mynet
[root@ls-bPtysZTW ~]# docker run -d -P --name tomcat-net-01 --net mynet lengcz/tomcat:1.0
855dc33189221c61fbe6bc35ce2b080ff71f34547ce6cf77a5c98e3afcd9daaa
[root@ls-bPtysZTW ~]# docker run -d -P --name tomcat-net-02 --net mynet lengcz/tomcat:1.0
a8dff5c6a82649356385253c96f5ff07771644b8dca85f9a814d1b17041290df
[root@ls-bPtysZTW ~]# docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                         NAMES
a8dff5c6a826   lengcz/tomcat:1.0   "/bin/sh -c '/usr/lo…"   20 seconds ago   Up 19 seconds   0.0.0.0:49158->8080/tcp, :::49158->8080/tcp   tomcat-net-02
855dc3318922   lengcz/tomcat:1.0   "/bin/sh -c '/usr/lo…"   37 seconds ago   Up 36 seconds   0.0.0.0:49157->8080/tcp, :::49157->8080/tcp   tomcat-net-01
[root@ls-bPtysZTW ~]# 
# 再次查看一下我們定義的網(wǎng)絡,會發(fā)現(xiàn)containers列表里包含了兩個容器的網(wǎng)絡信息。
[root@ls-bPtysZTW ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "c81f4fcc9c8b2b916d0dce6400495dd69375032c358e2a24061e8c0dd48ffb89",
        "Created": "2022-03-21T09:54:51.169378153+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "855dc33189221c61fbe6bc35ce2b080ff71f34547ce6cf77a5c98e3afcd9daaa": {
                "Name": "tomcat-net-01",
                "EndpointID": "3f5751193ffa31fa723c2a999575186e343da653e39d654c9b62a3fdf72ef8bd",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "a8dff5c6a82649356385253c96f5ff07771644b8dca85f9a814d1b17041290df": {
                "Name": "tomcat-net-02",
                "EndpointID": "68859294c6ce5f5179390e29718982bbfd2848b6e260d0486cd33967239e4990",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
# 測試一下ping容器名和ip,都可以ping通
[root@ls-bPtysZTW ~]# docker exec -it tomcat-net-01 ping 192.168.0.3 -c4
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.099 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.131 ms
[root@ls-bPtysZTW ~]# docker exec -it tomcat-net-01 ping tomcat-net-02 -c4
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.067 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.105 ms
rtt min/avg/max/mdev = 0.067/0.090/0.105/0.014 ms

結(jié)論:我們自定義的網(wǎng)絡docker已經(jīng)幫我們維護好了對應的關系。所以我們平時都可以使用這樣的網(wǎng)絡,不使用–link效果一樣,所有東西實時維護好,直接域名ping通。

到這里,我們基本可以理解docker網(wǎng)絡了。

網(wǎng)絡連通

docker0和自定義網(wǎng)絡肯定不通,我們是使用自定義網(wǎng)絡的好處就是網(wǎng)絡隔離:

大家公司項目部署的業(yè)務都非常多,假設我們有一個商城,我們會有訂單業(yè)務(操作不同數(shù)據(jù)),會有 訂單業(yè)務購物車業(yè)務(操作不同緩存)。

如果在一個網(wǎng)絡下,有的程序猿的惡意代碼就不能防止了,所 以我們就在部署的時候網(wǎng)絡隔離,創(chuàng)建兩個橋接網(wǎng)卡,比如訂單業(yè)務(里面的數(shù)據(jù)庫,redis,mq,全 部業(yè)務 都在order-net網(wǎng)絡下)其他業(yè)務在其他網(wǎng)絡。

那么關鍵問題來了,如何讓tomcat-net-01訪問tomcat01?

#啟動默認的容器,在docker0網(wǎng)絡下
[root@ls-bPtysZTW ~]# docker run -d -P --name tomcat01 lengcz/tomcat:1.0
a8f874ddc701eff4adf3921b65f91f1fd080bdf5c3ce429c59808249b72ca020
[root@ls-bPtysZTW ~]# docker run -d -P --name tomcat02 lengcz/tomcat:1.0
184e19b40cd39662e7d6d0ccf1cf440d7a455f22505a57d64636b23ea29e6945
#查看當前的容器
[root@ls-bPtysZTW ~]# docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                         NAMES
184e19b40cd3   lengcz/tomcat:1.0   "/bin/sh -c '/usr/lo…"   8 seconds ago    Up 7 seconds    0.0.0.0:49160->8080/tcp, :::49160->8080/tcp   tomcat02
a8f874ddc701   lengcz/tomcat:1.0   "/bin/sh -c '/usr/lo…"   20 seconds ago   Up 19 seconds   0.0.0.0:49159->8080/tcp, :::49159->8080/tcp   tomcat01
a8dff5c6a826   lengcz/tomcat:1.0   "/bin/sh -c '/usr/lo…"   3 hours ago      Up 3 hours      0.0.0.0:49158->8080/tcp, :::49158->8080/tcp   tomcat-net-02
855dc3318922   lengcz/tomcat:1.0   "/bin/sh -c '/usr/lo…"   3 hours ago      Up 3 hours      0.0.0.0:49157->8080/tcp, :::49157->8080/tcp   tomcat-net-01
#查看network幫助
[root@ls-bPtysZTW ~]# docker network --help
Usage:  docker network COMMAND
Manage networks
Commands:
  connect     Connect a container to a network # 連接一個容器到一個網(wǎng)絡
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

#測試一下!打通一下mynet-docker0
#命令docker network connect [OPTIONS] NETWORK CONTAINER
[root@ls-bPtysZTW ~]# docker network connect mynet tomcat01
[root@ls-bPtysZTW ~]# docker network inspect mynet
[
    {
        .....
        "Containers": {
            "855dc33189221c61fbe6bc35ce2b080ff71f34547ce6cf77a5c98e3afcd9daaa": {
                "Name": "tomcat-net-01",
                "EndpointID": "3f5751193ffa31fa723c2a999575186e343da653e39d654c9b62a3fdf72ef8bd",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "a8dff5c6a82649356385253c96f5ff07771644b8dca85f9a814d1b17041290df": {
                "Name": "tomcat-net-02",
                "EndpointID": "68859294c6ce5f5179390e29718982bbfd2848b6e260d0486cd33967239e4990",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            },
            "a8f874ddc701eff4adf3921b65f91f1fd080bdf5c3ce429c59808249b72ca020": {
                "Name": "tomcat01",  #發(fā)現(xiàn)tomcat01加入了該網(wǎng)絡,tomcat01擁有雙ip
                "EndpointID": "39e946d3c4b510712ab3b6dd2c921b0941e2341b914cf5e645e56e82ea725e71",
                "MacAddress": "02:42:c0:a8:00:04",
                "IPv4Address": "192.168.0.4/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

#tomcat01可以ping通了
[root@ls-bPtysZTW ~]# docker exec -it tomcat01 ping tomcat-net-01 -c2
PING tomcat-net-01 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.085 ms
#tomcat02依舊ping不通
[root@ls-bPtysZTW ~]# docker exec -it tomcat02 ping tomcat-net-01 -c2
ping: tomcat-net-01: Name or service not known

結(jié)論:如果要跨網(wǎng)絡訪問,就需要使用

docker network connect [OPTIONS] NETWORK CONTAINER  進行連接,否則就無法互相訪問

最后

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • docker容器與宿主機的數(shù)據(jù)交互方式總結(jié)

    docker容器與宿主機的數(shù)據(jù)交互方式總結(jié)

    這篇文章主要給大家介紹了關于docker容器與宿主機的數(shù)據(jù)交互,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Docker數(shù)據(jù)目錄遷移方法詳解

    Docker數(shù)據(jù)目錄遷移方法詳解

    這篇文章主要介紹了Docker數(shù)據(jù)目錄遷移方法,Docker數(shù)據(jù)目錄遷移成功后再也不用擔心服務器系統(tǒng)盤目錄被占滿的情況的,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Docker釋放空間幾種常用的清理方法

    Docker釋放空間幾種常用的清理方法

    隨著Docker的廣泛使用,管理Docker占用的磁盤空間變得越來越重要,長時間運行Docker環(huán)境,未使用的容器、鏡像、卷和網(wǎng)絡等會逐漸積累,這篇文章主要介紹了Docker釋放空間幾種常用的清理方法,需要的朋友可以參考下
    2026-04-04
  • Dockerfile構(gòu)建Redis鏡像的方法實現(xiàn)(yum方式)

    Dockerfile構(gòu)建Redis鏡像的方法實現(xiàn)(yum方式)

    本文主要介紹了Dockerfile構(gòu)建Redis鏡像的方法實現(xiàn)(yum方式),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • Docker安裝Nacos容器并根據(jù)Nginx實現(xiàn)負載均衡

    Docker安裝Nacos容器并根據(jù)Nginx實現(xiàn)負載均衡

    本文主要介紹了Docker安裝Nacos容器并根據(jù)Nginx實現(xiàn)負載均衡,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • 阿里云安裝docker全過程

    阿里云安裝docker全過程

    這篇文章主要介紹了阿里云安裝docker全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • docker安裝mysql、redis鏡像方式

    docker安裝mysql、redis鏡像方式

    這篇文章主要介紹了docker安裝mysql、redis鏡像方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Docker中的數(shù)據(jù)存放位置

    Docker中的數(shù)據(jù)存放位置

    這篇文章主要介紹了Docker中的數(shù)據(jù)存放位置,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • docker進階教程之dockerfile優(yōu)化鏡像大小

    docker進階教程之dockerfile優(yōu)化鏡像大小

    同樣功能的鏡像,但是不同的Dockerfile build出來的鏡像大小是不一樣的,下面這篇文章主要給大家介紹了關于docker進階教程之dockerfile優(yōu)化鏡像大小的相關資料,需要的朋友可以參考下
    2022-10-10
  • Docker重啟命令的使用詳解

    Docker重啟命令的使用詳解

    Docker重啟命令包括使用systemctl、service命令重啟Docker服務,以及使用dockerrestart命令重啟Docker容器,在重啟Docker服務之前,建議先停止所有正在運行的容器,并確保做好相應的準備和備份
    2025-03-03

最新評論

绵阳市| 兖州市| 海城市| 游戏| 高唐县| 鹤庆县| 隆林| 大理市| 略阳县| 全南县| 柘城县| 古田县| 安溪县| 姜堰市| 赞皇县| 那坡县| 万州区| 驻马店市| 辉县市| 桦南县| 杭锦后旗| 临湘市| 张北县| 左贡县| 沛县| 白朗县| 丰县| 河源市| 萍乡市| 苗栗市| 柘荣县| 黔江区| 镇坪县| 枣阳市| 临高县| 清原| 岱山县| 商城县| 宁阳县| 阜阳市| 湖口县|