zoukankan      html  css  js  c++  java
  • Docker 网络管理

    1. Docker有五种网络驱动模式:  
    2.     bridge network 模式(网桥):默认的网络模式。类似虚拟机的nat模式  
    3.     host network 模式(主机):容器与宿主机之间的网络无隔离,即容器直接使用宿主机网络  
    4.     None network 模式:容器禁用所有网络。  
    5.     Overlay network 模式(覆盖网络): 利用VXLAN实现的bridge模式  
    6.     Macvlan network 模式:容器具备Mac地址,使其显示为网络上的物理设备  

       

    查看网络    ls

    1. 作用:  
    2.     查看已经建立的网络对象  
    3. 命令格式:  
    4.     docker network COMMAND  
    5.       
    6. 命令参数:  
    7.     -f, --filter filter     过滤条件( 'driver=bridge')       
    8.         --format string     格式化打印结果       
    9.         --no-trunc          不缩略显示     
    10.         -q, --quiet             只显示网络对象的ID  
    11. 默认情况下,docker安装完成后,会自动创建bridgehostnone三种网络驱动      

     

    创建网络    create

    1. 作用:  
    2.     创建新的网络  
    3. 命令格式:  
    4.     docker network create [OPTIONS] NETWORK  
    5.  命令参数:  
    6.     -d  指定网络的驱动(默认bridge  
    7.     --subnet strings        指定子网网段(如192.168.0.0/16172.88.0.0/24  
    8.     --ip-range strings  指容器的IP范围  
    9.     --gateway strings       子网IP的网关 192.168.0.1  
    10. 注意:  
    11.     Hostnone网络只能存在一个  
    12.     Docker自带的overlay网络创建依赖于docker swarm服务  
    13.     192.168.0.0/16  等于192.168.0.0 ~ 192.168.255.255  
    14.     192.168.0.0/24  等于192.168.0.0 ~ 192.168.0.255  
    15. --ip-range —subnet 一个子集,他的范围只能在他之间,
    16. 如果ip-range 没设置就等同于—subnet 范围

     

    1. 注意:  
    2.     这里的IP段和网关不要设置成宿主机一样的,不然进去不去。  

     

    docker network create --subnet 172.89.0.0/16 --ip-range 172.89.8.0/24 --gateway 172.89.8.1 my-test1

    删除网络/查看详情

    1. 作用:  
    2.     删除一个或多个网络   
    3.     
    4. 命令格式:   
    5.         
    6.     docker network rm NETWORK [NETWORK...]   
    7.     
    8. 命令参数(OPTIONS)  
    9.        
    10.     
    11. 作用:  
    12.     查看一个或多个网络的详细信息  
    13. 命令格式:  
    14.     docker network inspect [OPTIONS] NETWORK [NETWORK...]  
    15.        或者 docker inspect [OPTIONS] NETWORK [NETWORK...]   
    16.         命令参数(OPTIONS)  -f, --format string     根据format输出结果   

     

    使用网络

    1. 作用:  
    2.     为启动容器指定网络模式   
    3.     
    4. 命令格式:  
    5.     docker run/create --network NETWORK   
    6.     
    7. 命令参数(OPTIONS)  
    8.       
    9.     
    10. 注意:  
    11.     默认情况下,docker创建或者启动容器时,默认使用网络名为bridge的网络  

     

     

     

    网络连接和断开

    1. 作用:     将指定的容器与指定的网络连接或者断开  
    2. 命令格式:  
    3.     docker network connect [OPTIONS] NETWORK CONTAINER  
    4.     docker network disconnect [OPTIONS] NETWORK CONTAINER  

     

     

     

     

    Docker网络模式介绍

    Bridge

    1. 特点:  
    2.  宿主机上需要单独的bridge网卡,如默认docker默认创建的docker0  
    3.     
    4.  容器之间、容器与主机之间的网络通信,是借助为每一个容器生成的一对veth pair虚拟网络设备对,进行通信的。一个在容器上,另一个在宿主机上。   
    5.     
    6. 每创建一个基于bridge网络的容器,都会自动在宿主机上创建一个veth**虚拟网络设备。   
    7.     
    8. 外部无法直接访问容器。需要建立端口映射才能访问。 容器借由veth虚拟设备通过如docker0这种bridge网络设备进行通信。  
    9.     
    10. 每一容器具有单独的IP   

    Bridge 端口映射

    1. 作用:  
    2.     启动容器时,为容器进行端口映射  
    3. 命令格式:  
    4.     docker run/create -P …  
    5.        或者 docker run/create –p …  
    6. 命令参数(OPTIONS):  
    7.     -P  将容器内所有暴露的端口进行随机映射  
    8.     -p  手动指定端口映射  
    9.     
    10. 注意:   
    11.     -p [HOST_IP]:[HOST_PORT]:CONTAINER_PORT  
    12.  如:  
    13.     -p ::80    将容器的80端口随机(端口)映射到宿主机任意IP  
    14.     -p :8000:6379  将容器的6379端口映射到宿主机任意IP8000端口  
    15.     -p 192.168.5.1::3306 将容器的3306端口随机(端口)映射到宿主机的192.168.5.1IP  

     

     

    Host

    1. 特点:   
    2. 容器完全共享宿主机的网络。网络没有隔离。宿主机的网络就是容器的网络。   
    3. 容器、主机上的应用所使用的端口不能重复。  
    4. 例如:如果宿主机已经占用了8090端口,那么任何一个host模式的容器都不可以使用8090端口了;  
    5. 反之同理。 外部可以直接访问容器,不需要端口映射。 容器的IP就是宿主机的IP   

     

    特殊host 网络模式(Container网络模式)

    1. Container网络模式,其实就是容器共享其他容器的网络。  
    2. 相当于该容器,,在网络层面上,将其他容器作为"主机"。它们之间的网络没有隔离。 这些容器之间的特性同host模式  

     

    1. 用法:  
    2.     docker run --rm -dit --network container:my-test --name my-test2 centos:7.2.1511  

     

     

    None网络

     

    1. 特点:   
    2. 容器上没有网络,也无任何网络设备。   
    3. 如果需要使用网络,需要用户自行安装与配置。   
    4.     
    5. 应用场景  
    6. 该模式适合需要高度定制网络的用户使用。   

    overlay 网络

     

    1. Overlay 网络,也称为覆盖网络。   
    2. Overlay 网络的实现方式和方案有多种。Docker自身集成了一种,基于VXLAN隧道技术实现。   
    3. Overlay 网络主要用于实现跨主机容器之间的通信。   
    4.     
    5. 应用场景:需要管理成百上千个跨主机的容器集群的网络时。   

     

     

    macvlan 网络模式

     

    1. macvlan网络模式,最主要的特征就是他们的通信会直接基于mac地址进行转发。   
    2.     
    3. 这时宿主机其实充当一个二层交换机。Docker会维护着一个MAC地址表,当宿主机网络收到一个数据包后,直接根据mac地址找到对应的容器,再把数据交给对应的容器。   
    4.     
    5. 容器之间可以直接通过IP互通,通过宿主机上内建的虚拟网络设备(创建macvlan网络时自动创建),但与主机无法直接利用IP互通。   
    6.     
    7. 应用场景:  
    8. 由于每个外来的数据包的目的mac地址就是容器的mac地址,这时每个容器对于外面网络来说就相当于一个真实的物理网络设备。因此当需要让容器来的网络看起来是一个真实的物理机时,使用macvlan模式  

  • 相关阅读:
    PAT 1088. Rational Arithmetic
    PAT 1087. All Roads Lead to Rome
    PAT 1086. Tree Traversals Again
    PAT 1085. Perfect Sequence
    PAT 1084. Broken Keyboard
    PAT 1083. List Grades
    PAT 1082. Read Number in Chinese
    求最大公因数
    [转载]Latex文件转成pdf后的字体嵌入问题的解决
    [转载]Matlab有用的小工具小技巧
  • 原文地址:https://www.cnblogs.com/py-web/p/11889198.html
Copyright © 2011-2022 走看看