本节开始,会学习docker的几种原生网络,以及如何创建自定义网络。然后探究容器之间如何通信,以及容器与外界如何交互
 
docker网络从覆盖范围可以分为单个host上的容器网络和跨多个host的网络,本章终点学习前一种。对于更复杂的多host网络,将在后面的进阶部分学习。
 
docker安装时会自动在host上创建三个网络,我们可以用docker network ls 命令查看
 
root@docker-lab:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
b41bf72cd691        bridge              bridge              local
e5cb8d603efd        host                host                local
f9dc6032baba        none                null                local
 
none网络
 
none网络就是什么网络都没有,挂载这个网络下的容器除了lo以外,没有其他网卡。容器创建时,可以通过 --network=none 指定容器使用none网络。
 
root@docker-lab:~# docker run -it --network=none busybox
/ # ifconfig -a
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ #
 
一个封闭的网络有什么用呢,封闭即隔离,一些对安全性要求较高并且不需要联网的应用可以使用none网络,比如专门用来生成随机密码的容器。
 
host网络
 
连接到host网络的容器共享docker host的网络栈,容器的网络配置与docker host完全一样。可以通过 --network=host 指定容器使用host网络
 
root@docker-lab:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:02:7e:68 brd ff:ff:ff:ff:ff:ff
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:01:02:27:95 brd ff:ff:ff:ff:ff:ff
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
    link/ether 02:42:0e:6c:b4:04 brd ff:ff:ff:ff:ff:ff
root@docker-lab:~# docker run -it --network=host busybox
/ # ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 52:54:00:02:7e:68 brd ff:ff:ff:ff:ff:ff
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 52:54:01:02:27:95 brd ff:ff:ff:ff:ff:ff
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
    link/ether 02:42:0e:6c:b4:04 brd ff:ff:ff:ff:ff:ff
/ #
/ # hostname
docker-lab
 
 
可以看到host网络的容器,使用的网络以及hostname都和docker host一样
 
直接使用host网络最大的好处就是性能,如果容器对网络传输效率要求比较高,则可以选择host网络。
 
缺点是灵活性差,容器和docker host公用一套端口,需要解决端口冲突的问题。
 
host网络的另一个用途是让容器可以直接配置docker host网络,比如某些跨docker host的网络解决方案,其本身也是以容器方式运行,这些方案需要对网络进行配置,比如管理iptables,后面的章节会做详细介绍
 

031、none和host网络的适用场景(2019-02-18 周一)的更多相关文章

  1. 第 5 章 网络 - 031 - none和host网络的适用场景

    none和host网络的适用场景 Docker 安装时会自动在 host 上创建三个网络,用 docker network ls 命令查看: root@ubuntu:~# docker network ...

  2. none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)

    本章开始讨论 Docker 网络. 我们会首先学习 Docker 提供的几种原生网络,以及如何创建自定义网络.然后探讨容器之间如何通信,以及容器与外界如何交互. Docker 网络从覆盖范围可分为单个 ...

  3. none 和 host 网络的适用场景

    我们会首先学习 Docker 提供的几种原生网络,以及如何创建自定义网络.然后探讨容器之间如何通信,以及容器与外界如何交互. Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 h ...

  4. Docker网络——单host网络

    前言 前面总结了Docker基础以及Docker存储相关知识,今天来总结一下Docker单主机网络的相关知识.毋庸置疑,网络绝对是任何系统的核心,他在Docker中也占有重要的作用.同样本文基于Clo ...

  5. docker从零开始网络(四 ) host网络

    使用主机网络 如果host对容器使用网络驱动程序,则该容器的网络堆栈不会与Docker主机隔离.例如,如果您运行绑定到端口80 host的容器并使用网络,则容器的应用程序将在主机IP地址的端口80上可 ...

  6. Docker-None & Host 网络

    本节介绍None&Host网络. 1.前言 点击此处回到docker系列文章目录 前面我们介绍了bridge network,本小节继续介绍none和host.这两个比较简单,也不太常用.安装 ...

  7. clumsy模拟客户端网络差的场景的使用

    1.为什么需要模拟客户端网络差的情况? a. 研发环境的网络配置一般较高,网络响应快,不容易出现网络故障,但是客户使用的网络环境千差万别,不排除使用过程中遇到网络故障的情况. b.程序有些时候是多线程 ...

  8. 2019ICPC南昌网络赛C Hello 2019

    题意:给出一个字符串,每次询问一个区间[l,r],求使得这个区间含有9102但不含有8102最少要删掉几个字符 首先我们考虑将串反转,这样就变成了含有2019但不含有2018的问题了 我们构建一个状态 ...

  9. 科来网络通讯协议图2019版(OSI七层模型)

    来源:http://www.colasoft.com.cn/download/protocols_map.php 自己把它转成了图片,好做查看:https://www.lanzous.com/ib5h ...

随机推荐

  1. 【NOI2002】

    A 银河英雄传说 带权并查集 B 贪吃的九头龙 树形dp f[x][j][0] = min(f[x][j][0], min(f[vv][t][0] + tmp[j - t][0] + ww * (m ...

  2. Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

    Harbor源码地址:https://github.com/vmware/harborHarbort特性:基于角色控制用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限.基于镜像的复 ...

  3. Hdoj 2289.Cup 题解

    Problem Description The WHU ACM Team has a big cup, with which every member drinks water. Now, we kn ...

  4. Java List 遍历

    //方法1 Iterator it1 = list.iterator(); while(it1.hasNext()){ System.out.println(it1.next()); } //方法2 ...

  5. 【BZOJ3730】震波(动态点分治)[复习]

    题面 BZOJ 题解 动态点分治什么的完全不记得了.这回重新写一写. 首先我们把点分树给建出来. 操作只有两种,修改和询问距离某个点的距离不超过\(k\)的点的和. 两点之间的距离可以树链剖分之类的算 ...

  6. 20165223 《JAVA程序设计》第三周学习总结

    教材学习内容总结 第四章是整个JAVA语言的基础和重点,要重点学习和把握. 第四章要点 基础 类 构造方法与对象的创建 类与程序的基本结构 重点 参数传值 对象组合 JAVA独有语法 实例成员与类成员 ...

  7. Developing JSF applications with Spring Boot

    Developing JSF applications with Spring Boot Spring Boot can leverage any type of applications, not ...

  8. dispatchEvent(AWTEvent) 分派事件

    点一个按钮,显示的分派一个指定的事件给系统. 下面是一个例子,当点击close按钮时,分派一个new WindowEvent(this,WindowEvent.WINDOW_CLOSING)事件给系统 ...

  9. django 前端 js让一段文本中包含的网址可以被访问

    这个功能还是挺刚需的,下面说说实现过程,用到了正则表达式. 1.原本的html部分代码: <h4 id="softadd">链接: https://pan.baidu. ...

  10. Maven初窥门径

    Maven项目对象模型,可以使用一小段描述来管理项目的构建,报告和文档的软件项目管理工具. 安装 下载地址:http://maven.apache.org/download.cgi 下载解压,我将它放 ...