zoukankan      html  css  js  c++  java
  • docker 网络命令总结

    查看网络模式

    docker network ls
    
    NETWORK ID          NAME                DRIVER              SCOPE
    6856e3d6a118        bridge              bridge              local
    74519c816cff        host                host                local
    9187a93406a2        none                null                local
    ecb198e04339        test-net            bridge              local
    

    查看容器网络配置

    docker inspect 06c88a111a61 | grep -i "network" 
    
    "NetworkMode": "default",
    "NetworkSettings": {
          "Networks": {
                "NetworkID": "6856e3d6a118c05fb39f557be229a5cb3ee7a9cc66788a25ce56e19f73bda999",
    

    类似用法: docker inspect 06c88a111a61 | grep -i "IP" 查看ip信息

    查看所有容器的ip

    docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}} {{.IPAddress}} {{end}}' $(docker ps -aq)
    
    /redis -  172.17.0.4  172.18.0.4
    /php-fpm -  172.17.0.3  172.18.0.3
    /nginx -  172.17.0.2  172.18.0.2
    /myrabbit -  172.17.0.4
    

    创建docker 网络

    docker network create -d bridge --subnet 172.17.0.0/16 my-net
    (-d bridge可以省略)
    
    Error response from daemon: Pool overlaps with other one on this address space
    如果报错,说明172.17.0.0已被其他网络空间占用(默认bridge就是这个子网段),此时可以改172.18.0.0
    docker network create --subnet 172.18.0.0/16 my-net
    

    查看网络具体信息

    docker network inspect my-net
    
    [
        {
            "Name": "my-net",
            "Id": "684e82a9f4d171ee379eb637c2190863d21d7d23be659994db13643a8861da72",
            "Created": "2021-03-16T02:42:28.239558199Z",
            "Scope": "local",
            "Driver": "bridge",
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "default",
                "Options": {},
                "Config": [
                    {
                        "Subnet": "172.18.0.0/16"
                    }
                ]
            },
            "Internal": false,
            "Attachable": false,
            "Ingress": false,
            "ConfigFrom": {
                "Network": ""
            },
            "ConfigOnly": false,
            "Containers": {},
            "Options": {},
            "Labels": {}
        }
    ]
    

    容器创建时,连接网络和指定ip

    docker run --network=my-net --ip=172.18.0.3 -itd --name=redis-test -d redis
    

    容器创建后,新增网络和指定ip(相当于给某容器多接上一条网线)

    docker run --name redis-test2 -d redis  (默认接入bridge网络,172.17.0.0网段)
    
    docker network connect --ip 172.18.0.5 my-net redis-test2 (连接新网络,并指定ip)
    
    docker inspect redis-test2
    可以查看到接入了两个网络:
    "Networks": {
                    "bridge": {
                        "IPAMConfig": null,
                        "Links": null,
                        "Aliases": null,
                        "NetworkID": "70d8553b1b8fa83cea39a42943f86734c4883f6ab19913cfe1e3d57dc312e715",
                        "EndpointID": "",
                        "Gateway": "",
                        "IPAddress": "",
                        "IPPrefixLen": 0,
                        "IPv6Gateway": "",
                        "GlobalIPv6Address": "",
                        "GlobalIPv6PrefixLen": 0,
                        "MacAddress": "",
                        "DriverOpts": null
                    },
                    "my-net": {
                        "IPAMConfig": {
                            "IPv4Address": "172.18.0.5"
                        },
                        "Links": null,
                        "Aliases": [
                            "393c4a6faeb2"
                        ],
                        "NetworkID": "",
                        "EndpointID": "",
                        "Gateway": "",
                        "IPAddress": "",
                        "IPPrefixLen": 0,
                        "IPv6Gateway": "",
                        "GlobalIPv6Address": "",
                        "GlobalIPv6PrefixLen": 0,
                        "MacAddress": "",
                        "DriverOpts": {}
                    }
                }
            }
    

    网络别名(创建容器时指定)

    docker run --network=my-net --ip=172.18.0.6 --network-alias r4-alias -itd --name=redis-test3 -d redis
    可以看到,此时指定别名r4-alias,
    
    因为redis-test容器也是my-net网络内,此时可以ping r4-alias
    docker exec -it redis-test bash
    ping r4-alias
    PING m5 (172.18.0.6) 56(84) bytes of data.
    64 bytes from redis-test3.my-net (172.18.0.6): icmp_seq=1 ttl=64 time=0.146 ms
    64 bytes from redis-test3.my-net (172.18.0.6): icmp_seq=2 ttl=64 time=0.112 ms
    64 bytes from redis-test3.my-net (172.18.0.6): icmp_seq=3 ttl=64 time=0.108 ms
    

    网络别名添加(创建容器之后追加)

    docker run  -itd --name=redis-test4 redis
    docker network connect --alias r4-alias --ip=172.18.0.7 my-net redis-test4
    
  • 相关阅读:
    MySQL灾备切换
    crontab 定时任务
    Mysql常用命令 详细整理版
    linux 常用命令
    shell逻辑运算总结, 包括[[]]与[]的区别,&&与-a的区别,||与-o的区别
    linux端口详解大全
    编译安装php5.6
    linux给用户添加sudo权限
    Effective C#(二)
    Effective C#(一)
  • 原文地址:https://www.cnblogs.com/chq3272991/p/14523103.html
Copyright © 2011-2022 走看看