• docker网络模式


    目录

    1. docker四种网络模式

    1.1  none

    1.2  bridge

    1.3  container

    1.4  host

    2. 自定义模式

    3. 指定端口号和网络模式

    1. docker四种网络模式

    1.1  none

    应用none模式,Docker容器领有本人的Network Namespace,然而,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。须要咱们本人为Docker容器增加网卡、配置IP等。

    这种网络模式下容器只有lo回环网络,没有其余网卡。none模式能够在容器创立时通过–network=none来指定。这种类型的网络没有方法联网,关闭的网络能很好的保障容器的安全性。

    1.2  bridge

    当Docker过程启动时,会在主机上创立一个名为docker0的虚构网桥,此主机上启动的Docker容器会连贯到这个虚构网桥上。虚构网桥的工作形式和物理交换机相似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

    从docker0子网中调配一个IP给容器应用,并设置docker0的IP地址为容器的默认网关。在主机上创立一对虚构网卡veth pair设施,Docker将veth pair设施的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样相似的名字命名,并将这个网络设备退出到docker0网桥中。能够通过brctl show命令查看。

    bridge模式是docker的默认网络模式,不写–net参数,就是bridge模式。应用docker run -p时,docker理论是在iptables做了DNAT规定,实现端口转发性能。能够应用iptables -t nat -vnL查看。

    1.3  container

    这个模式指定新创建的容器和曾经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创立本人的网卡,配置本人的 IP,而是和一个指定的容器共享 IP、端口范畴等。同样,两个容器除了网络方面,其余的如文件系统、过程列表等还是隔离的。两个容器的过程能够通过 lo 网卡设施通信。

    1.4  host

    如果启动容器的时候应用host模式,那么这个容器将不会取得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚构出本人的网卡,配置本人的IP等,而是应用宿主机的IP和端口。然而,容器的其余方面,如文件系统、过程列表等还是和宿主机隔离的。

    应用host模式的容器能够间接应用宿主机的IP地址与外界通信,容器外部的服务端口也能够应用宿主机的端口,不须要进行NAT,host最大的劣势就是网络性能比拟好,然而docker host上曾经应用的端口就不能再用了,网络的隔离性不好。

    2. 自定义模式

    1. # 查看本机docker所有网络
    2. docker network ls
    3. # 创建网络 --driver 是网络模式,--subnet是子网掩码,后面的/16表示可以生成6万多个ip, --gateway是网关地址
    4. docker network create 网络名称 --driver bridge --subnet 网址 --gateway 网关 mynet
    5. # 将容器加入到当前网络
    6. docker network connect 网络名称 容器名称
    7. # 断开容器的网络 (容器必须是运行状态才能断开连接)
    8. docker network disconnect 网络名称 容器名称
    9. # 查看网络的详细信息
    10. docker network inspect 网络id/网络名称
    11. #删除网络
    12. docker network rm 网络id/网络名称
    13. # 删除所有未使用的网络
    14. docker network prune --f

    3. 指定端口号

    -p :指定端口

    -P:分配随机端口号

    分配随机地址

     指定地址

     

  • 相关阅读:
    什么是数据库锁(Lock)?有哪些类型的锁
    Java基础知识【String、StringBuffer、StringBuilder、==与equal()的区别】
    基于词云图的短信热词数据可视化
    企业为什么做数字化转型?
    【Python3】【力扣题】232. 用栈实现队列
    MATLAB算法实战应用案例精讲-【数模应用】线性判别分析(附MATLAB、python和R语言代码实现)
    PTA题目 用天平找小球
    jacoco的学习以及理解
    Android 透明度设置
    是什么让 360 反馈成为一种成功的方法?
  • 原文地址:https://blog.csdn.net/kid00013/article/details/125458413