zoukankan      html  css  js  c++  java
  • docker 四种网络模型

    docker的网络模型

    有4种网络模型,通过宿主机的docker 0这样一个网络设备,NAT出一个网络,这个配置是在daemon.json中配置的。

    NAT(默认)

    [root@huan ~]# docker tag b7b28af77ffe myalpine
    [root@huan ~]# docker images | grep myalpine
    REPOSITORY         TAG                       IMAGE ID          CREATED             
    myalpine           latest                    b7b28af77ffe      13 months ago       5.58MB
    [root@huan ~]# docker run -it --rm myalpine /bin/sh
    / # ip add
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    60: eth0@if61: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
        link/ether 02:42:ac:11:00:01 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/24 brd 172.17.0.255 scope global eth0
           valid_lft forever preferred_lft forever
    / #
    

    NONE

    None是第二种网络模型

    docker封装的容器的业务,很有可能不对外提供网络接口。比如可能只要cpu的运算资源,内存资源,或者存储资源等,或者没有任何协议栈的要求,不对外提供http服务,或者rpc服务等。

    用到任何容器,甚至任何技术的时候,严格的和你的业务契合或者匹配,什么样的业务决定用什么样的技术。不能说为了用docker而用docker,或者为了用k8s而用k8s,

    k8s最适合编排的是那种没有状态的服务,还有不需要扩容的,比如mysql不适合用k8s到生产上,比如如果扩容,能保证数据的一致性吗?

    横向扩容的最大特征就是没有状态。

    HOST

    host就是docker和宿主机在同一个网络

    [root@huan ~]# docker run -it --rm --net=host myalpine /bin/sh
    

    联合网络

    两个容器共享一个网络名称空间。

    [root@huan ~]# docker run -ti --rm --name lhwl2 --net=container:d62807b4af37 xxxxxxxxxxxx/nginx:curl /bin/bash
    
  • 相关阅读:
    ddl(数据定义语言) ,dml (数据操控语言),dcl(数据控制语言)
    集合框架
    泛型(模拟list)
    Clone
    线程问题以及调用
    面向对象(封装、继承、多态、抽象)
    SpringMVC的四个核心接口
    VUE项目报错 This is probably not a problem with npm. There is likely additional logging output above.
    debian java8 cacerts 证书的丢失
    yii2 ,thinkphp的伪静态
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/13512735.html
Copyright © 2011-2022 走看看