美文网首页
libnetwork插件化网络功能

libnetwork插件化网络功能

作者: 欧耶90 | 来源:发表于2020-08-24 07:40 被阅读0次

Docker将网络和存储以插件化的形式剥离了出来,独立的容器网络项目即为libnetwork项目。

  1. 容器网络模型(CNM)
    容器网络模型的三要素:
    • 沙盒(Sandbox):代表一个容器或者一个网络命名空间
    • 接入点(Endpoint):代表网络上可以挂载容器的接口,会分配ip地址
    • 网络(Network):可以连通多个接入点的一个子网


      image.png
      image.png

      CNM的生命周期图,首先驱动注册到网络控制器,网络控制器使用驱动来创建网络,然后在创建的网络上创建接口,最后把容器连接到接口上,销毁过程正好相反。
      CNM支持的驱动类型有5中:Null、Bridge、Host、Remote、Overlay

      • Null:不提供网络服务
      • Bridge:默认Linux网桥和iptables实现的单机网络
      • Overlay:用vxlan隧道实现的跨主机容器网络,一般还需要个配置存储服务,如etcd、consul等
      • Remote:扩容类型,自定义网络驱动
      • Host:容器共用宿主机的网络,避免了Bridge的NAT地址转换,但网络隔离不够好,无法进行各自网络资源管理
  2. Docker网络命令
    在libnetwork的支持下,docker网络相关的操作都以network子命令的形式出现。
    • create,创建一个网络
    • connect,将容器接入到网络
    • disconnect,把容器从网络断开
    • inspect,查看网络的详细信息
    • ls,列出所有的网络
    • prune,清理无用的网络资源
    • rm,删除一个网络
  3. 构建跨主机的容器网络
    启动网络信息存储的服务:
docker run -d -p 8500:8500 -h consul progrium/consul -server -bootstrap

配置Docker主机

cat >> /etc/default/docker << EOF
DOCKER_OPTS="$DOCKER_OPTS --cluster-store=consul://192.168.137.131:8500 --cluster-advertise=eth0:2376"
EOF
systemctl restart docker
  1. CNM网络示例
    创建两个网络
➜  ~ docker network create backend
142088e2c04ad7970129ee45f4efe654efce3e1863613f8e908db55ff8460175
➜  ~ docker network create frontend
05259c7c52a37cbaee826d48423337dcb4009f42ac2c3434a90abbb614fea467
➜  ~ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
142088e2c04a        backend             bridge              local
1068a9ce1f8e        bridge              bridge              local
b894b3ed5f83        fronted             bridge              local
05259c7c52a3        frontend            bridge              local
949d8fa1e475        host                host                local
f64daa1fb651        none                null                local

相关文章

  • libnetwork插件化网络功能

    Docker将网络和存储以插件化的形式剥离了出来,独立的容器网络项目即为libnetwork项目。 容器网络模型(...

  • docker学习——libnetwork插件化网络功能

    1.容器网络模型(CNM) 目前CNM支持的驱动类型有四种: Null:不支持网络服务,容器启动后无网络连接 ...

  • Android模块化开发实践

    重复造轮子是肯定的 区分概念(组件化,模块化,插件化) 1.组件化封装可重用功能代码,例如网络组件,数据库组件,图...

  • Docker网络(一)

    libnetwork提出了新的容器模型,定义了标准的API用于为容器配置网络,其底层可以适配各种网络驱动 Dock...

  • 30. 插件化实现方式-加载插件中的类

    什么是插件化 插件化就是以插件下发的到本地的方式,然后通过宿主apk加载插件apk以实现相应的功能的方法,很多大型...

  • Day81-Docker_网络类型,监控

    Docker网络类型(插件形式) None:不为容器配置任何网络功能,--net=noneContainer:与另...

  • Android插件化原理介绍

    什么是插件化 以"插件"的形式,动态加载功能模块。将业务功能模块单独拆分出来打包成APK,也就是插件。主App可以...

  • Android插件化加载调研

    [TOC] 插件化介绍 插件化: 在主程序能独立运行的前提下,插件程序给主程序提供一些辅助的功能,目前主要以apk...

  • 插件化介绍和原理解析

    什么是插件化 首先我们区分一下组件化和插件化的概念 组件化组件化开发就是将一个app分成多个模块,组件化强调功能拆...

  • 聊聊Docker 1.9的新网络特性

    Docker在1.9版本中引入了一整套的自定义网络命令和跨主机网络支持。这是libnetwork项目从Docker...

网友评论

      本文标题:libnetwork插件化网络功能

      本文链接:https://www.haomeiwen.com/subject/yxjwjktx.html