Docker网络基础:快速指南

原文连接:http://blogxinxiucan.sh1.newtouch.com/2017/07/30/Docker网络基础:快速指南/

了解有关扩展网络功能的默认Docker网络设置和选项。

网络管理员不再拥有配置物理路由器,交换机和其他LAN / WAN组件的舒适区域。我们现在生活在一个虚拟化世界中,管理员必须挖掘VMware,Microsoft,Red Hat等虚拟化平台中的网络组件。

今天,企业IT 对容器越来越感兴趣,这些容器需要强大的网络技能才能正确配置容器架构。在本文中,我将重点介绍Docker的网络基础,轻松实现最受欢迎的容器平台。我将探讨默认的Docker网络设置,并解释Docker的用户定义配置选项如何提供扩展的网络功能。

默认Docker网络

最初安装Docker时,平台会自动配置三个名为none,host和bridge的不同网络。无法和主机网络无法删除; 它们是Docker中网络堆栈的一部分,但由于没有要配置的外部接口,对网络管理员无效。管理员可以配置桥接网络,也称为docker0网络。该网络自动创建IP子网和网关。属于该网络的所有容器都是同一子网的一部分,因此通过IP寻址可以在该网络中的容器之间进行通信。

然而,默认网桥的缺点是不支持使用DNS对容器进行自动服务发现。因此,如果希望属于默认网络的容器能够相互通信,则必须使用--link选项来静态地允许通信发生。另外,通信需要容器之间的端口转发。

许多管理员发现这些限制严重限制了Docker的网络可用性和可扩展性。这就是为什么创建用户定义的网络更好?它们可以更容易地管理需要彼此通信的容器。

用户定义网络的类型

除了在Docker中自动创建的默认网络之外,管理员还可以配置多个用户定义的网络,并将容器添加到一个或多个这样的网络。重要的是要注意,当容器属于同一个网络时,容器可以与他人通信,但不允许网络之间的通信。可能存在容器需要在多个网络中与其他人通信的情况。要解决这个问题,您只需将该容器添加到多个网络。然后,容器可以与其所关联的所有网络中的容器进行通信。

有三种主要类型的用户定义网络用于不同的通信目的:

桥接网络 - 与默认网桥一样,用户定义的网桥是一个独立的IP子网和网关。但与默认网桥不同,用户定义的网桥内的所有容器都可以直接相互通信,无需端口转发。此外,该网络完全支持使用DNS进行自动发现。如果您希望其他网络中的其他设备与用户定义的桥接网络中的资源进行通信,则只需发布所需的TCP / UDP端口,Docker会将网络地址和端口公开到外部网络。

覆盖网络 - 如果您打算在分布式网络中运行Docker,并且需要不同主机上的容器才能够直接相互通信,则覆盖网络是正确的选择。为此,您的Docker服务器必须启用群组模式并加入相同的群集。Swarm模式是Docker的一种允许管理Docker引擎集群的方法,称为“群集”。一旦完成,您可以使用VXLAN封装方案在群集中创建一个第2层覆盖网络。当容器被添加到覆盖网络时,它们可以直接与所有其他容器通信,就像它们驻留在同一个节点上一样。允许从外部网络到覆盖网络的通信与用户定义的网络网络类似。

Macvlan网络 - 此用户定义的网络类型尝试通过在使用网桥和覆盖网络时消除驻留在容器和主机之间的桥接来简化和简化容器通信。这里的主要优点是它自动将外部容器资源暴露给外部网络,而无需处理端口转发。Macvlan网络通过使用第2层MAC地址而不是第3层IP寻址来实现这一点。

有三种不同的方式来设置Macvlan网络。首先是Macvlan桥模式。在此模式下,每个容器都分配有自己唯一的MAC地址。然后,Docker管理MAC地址到端口映射。在同一Macvlan桥网络内的容器之间的通信在第2层进行切换。Macvlan网桥之外的通信在第3层进行路由。

Macvlan 802.1q中继桥模式允许使用IEEE 802.1q标准中继规范标记不同的第2层VLAN,以分离容器。Docker主机可以配置为外部路由器和交换机的802.1q中继。然后,它通过VLAN分段容器,它们代表单独的网络子网。

如果您在使用IPv4和IPv6寻址的网络中运行Docker容器,则可以利用双栈Macvlan桥接模式。默认情况下,Docker仅在IPv4模式下运行。使用双栈Macvlan网桥,您可以同时使用两个版本的IP协议路由容器。


公众号:it全能程序猿


Docker网络基础:快速指南的更多相关文章

  1. Docker 网络基础介绍

    [编者按]本文作者为 Mesosphere 开发大使 Michael Hausenblas,主要介绍配置 Docker 单主机网络的基本知识.文章系国内 ITOM 管理平台 OneAPM 编译呈现. ...

  2. Docker网络基础

    大量的互联网应用服务包括多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合. Docker目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务. 端口映射实现访问容器: 在启动 ...

  3. docker网络基础配置

    常用两种方式: 1)映射容器端口到宿主机 2)容器互联机制 --------------------------------------------- 端口映射实现访问容器的用法: docker ru ...

  4. Linux虚拟网络:Docker网络知识之基础篇

    我们在工作中应用了docker容器化技术,服务的部署.维护和扩展都方便了很多.然而,近期在私有化部署过程中,由于不同服务器环境的复杂多变,常常遇到网络方面的问题,现象为容器服务运行正常,但宿主机.容器 ...

  5. Docker系列一之基础快速入门企业实战

    1.1什么是LXC LXC为Linux Container的简写.Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚 ...

  6. 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南

    [SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...

  7. Docker基础内容之网络基础

    网络命名空间基本原理 单机版多容器实例网络交互原理 在宿主机上面打开两张网卡eth0与eth1,打通两张网卡的链路 在test1上面启动一个veth网卡,创建一个namespace:并桥接到eth0上 ...

  8. 快速掌握Docker必备基础知识

    快速掌握Docker必备基础知识 Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种 ...

  9. Docker容器基础入门认知-网络篇

    这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...

随机推荐

  1. Python 继承实现的原理(继承顺序)

    继承顺序 Python3 : 新式类的查找顺序:广度优先 新式类的继承: class A(object): Python2 3 都是了 MRO算法--生成一个列表保存继承顺序表 不找到底部 Pytho ...

  2. 关于List的remove方法我遇到的坑

    结果是下标越界异常,原因是remove方法的参数不是value,而是index 唉~~~  年少轻狂啊

  3. 《队长说得队》第八次团队作业Alpha冲刺

    项目 内容 这个作业属于哪个课程 >>2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 >>实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 ...

  4. 十分钟看懂,未来Web前端开发最新趋势

    首先,展望未来趋势我们就要弄懂过去的一年,也就是18年,web前端开发的重要新闻.重要事件和JavaScript的各种流行框架.模式发展趋势. 我们来快速回顾一下. NPM热门前端框架下载 先来看最热 ...

  5. 服务器上搭建flowvisor平台

    之前全是在virtualbox上的Ubuntu虚拟机上测试的ovs以及pox, 现在我们开始在服务器上开始了 两台服务器上的ovs均是1.4.6版本 遇到一个问题:之前装的ovs down了 然后什么 ...

  6. php常见验证

    /** * 文件上传 * @param $file 要上传的文件 * @param $size 大小设置 * @param $ext 文件类型 * @return bool 是否上传成功 */func ...

  7. 利用SignalR实现实时聊天

    2018/10/10:博主第一次写原创博文而且还是关于C#的(博主是从前端转过来的),菜鸟一枚,如果有什么写的不对,理解错误,还望各位轻喷.,从SignalR开始! 首先先介绍一下关于SignalR的 ...

  8. 【转】vxworks的default boot line说明

    boot程序的主要功能是引导vxworks 内核,所以boot程序需要知道vxworks的内核存放在何处,通过什么手段去获取.在vxworks缺省的boot程序里有一条内建的default boot ...

  9. CF-1140 E - Palindrome-less Arrays

    题意:给定一个没有填完的序列,数值为-1表示你可以用 1~k 中的数字去覆盖它,求将该序列填充后,不存在长度为奇数的回文串的方案数 分析: 使之不存在长度为奇数的回文串,只需要满足不存在长度为3的回文 ...

  10. 02Qt信号与槽(1)

    信号与槽 1.概述 ​ 信号和槽机制是 Qt 的核心机制,信号和槽是一种高级接口,应用于对象之间的通信,它是 Qt 的核心特性,也是 Qt 区别于其他工具包的重要地方.信号和槽是 Qt 自行定义的一种 ...