what is the use of HOST and NONE network in docker?

后端 未结 3 1962
感动是毒
感动是毒 2020-12-05 03:10

Trying to understand the docker networks, Docker creates the following networks automatically:

# docker network ls 
NETWORK ID          NAME                D         


        
3条回答
  •  执笔经年
    2020-12-05 03:34

    Docker by default supports 3 networks:

    1) None:

    This mode will not configure any IP for the container and doesn’t have any access to the external network as well as for other containers. It does have the loopback address and can be used for running batch jobs.

    # docker run -it --network=none ubuntu:14.04 /bin/bash
    root@66308c6686be:/# ifconfig
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    # 
    # docker inspect 66308c6686be | grep -i ipaddr
                "SecondaryIPAddresses": null,
                "IPAddress": "",
                        "IPAddress": "",
    

    2) Host

    In this mode container will share the host’s network stack and all interfaces from the host will be available to the container. The container’s host name will match the host name on the host system

    # docker run -it --net=host ubuntu:14.04 /bin/bash
    root@labadmin-VirtualBox:/# hostname
    labadmin-VirtualBox
    

    Even the IP configuration is same as the host system's IP configuration

    root@labadmin-VirtualBox:/# ip addr | grep -A 2 eth0
    2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:b5:82:2f brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
           valid_lft forever preferred_lft forever
    3: lxcbr0:  mtu 1500 qdisc noqueue state UNKNOWN group default 
    root@labadmin-VirtualBox:/# exit
    exit
    
    HOST SYSTEM IP CONFIGURATION
    
    # ip addr | grep -A 2 eth0
    2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:b5:82:2f brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
           valid_lft forever preferred_lft forever
    3: lxcbr0:  mtu 1500 qdisc noqueue state UNKNOWN group default 
    

    In host and none mode are not configured directly but default bridge network can be configured as well as create your own user-defined bridge networks.

    3) Bridge Mode

    It is the Docker default networking mode which will enable the connectivity to the other interfaces of the host machine as well as among containers.

    # docker run -it --network=bridge ubuntu:14.04 /bin/bash
    root@58b0b1f18b2e:/# ifconfig
    eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:0c  
              inet addr:172.17.0.12  Bcast:0.0.0.0  Mask:255.255.0.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:16 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:2668 (2.6 KB)  TX bytes:0 (0.0 B)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

    Accessibility to other containers is possible in bridge mode.

    root@58b0b1f18b2e:/# ping 172.17.0.11
    PING 172.17.0.11 (172.17.0.11) 56(84) bytes of data.
    64 bytes from 172.17.0.11: icmp_seq=1 ttl=64 time=0.143 ms
    64 bytes from 172.17.0.11: icmp_seq=2 ttl=64 time=0.050 ms
    

    Connectivity to external network.

    root@58b0b1f18b2e:/# ping google.com 
    PING google.com (216.58.197.46) 56(84) bytes of data.
    64 bytes from maa03s20-in-f46.1e100.net (216.58.197.46): icmp_seq=1 ttl=51 time=16.9 ms
    

    Connectivity to host machine

    root@labadmin-VirtualBox:~# ip a | grep eth0
    2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
    
    root@58b0b1f18b2e:/# ping 10.0.2.15
    PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
    64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.113 ms
    

    Along with these docker provides MACVLAN network which allows to configure multiple Layer 2(MAC) addresses on a single physical interface.

提交回复
热议问题