• 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模式  

  • 相关阅读:
    unix/linux中如何在vi编辑器中方便的跳转到首行和末行?
    如何在Ubuntu中用firefox浏览器查看chm文档?
    sybase数据库技术 :游标可更新与for read only/for update
    PropertyMetadata和UIPropertyMetadata的一点区别
    wpf,离线状态下部分功能不可用。
    C#操作注册服务卸载服务启动服务停止服务.. .
    ContentControl与ContentPresenter区别?
    wpf telerik中的book控件
    C#写入和读出文本文件
    WPF 点击Calendar后,需要点击两次按钮
  • 原文地址:https://www.cnblogs.com/py-web/p/11889198.html
Copyright © 2020-2023  润新知