Docker网络基础:快速指南
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网络基础:快速指南的更多相关文章
- Docker 网络基础介绍
[编者按]本文作者为 Mesosphere 开发大使 Michael Hausenblas,主要介绍配置 Docker 单主机网络的基本知识.文章系国内 ITOM 管理平台 OneAPM 编译呈现. ...
- Docker网络基础
大量的互联网应用服务包括多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合. Docker目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务. 端口映射实现访问容器: 在启动 ...
- docker网络基础配置
常用两种方式: 1)映射容器端口到宿主机 2)容器互联机制 --------------------------------------------- 端口映射实现访问容器的用法: docker ru ...
- Linux虚拟网络:Docker网络知识之基础篇
我们在工作中应用了docker容器化技术,服务的部署.维护和扩展都方便了很多.然而,近期在私有化部署过程中,由于不同服务器环境的复杂多变,常常遇到网络方面的问题,现象为容器服务运行正常,但宿主机.容器 ...
- Docker系列一之基础快速入门企业实战
1.1什么是LXC LXC为Linux Container的简写.Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚 ...
- 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
[SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...
- Docker基础内容之网络基础
网络命名空间基本原理 单机版多容器实例网络交互原理 在宿主机上面打开两张网卡eth0与eth1,打通两张网卡的链路 在test1上面启动一个veth网卡,创建一个namespace:并桥接到eth0上 ...
- 快速掌握Docker必备基础知识
快速掌握Docker必备基础知识 Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种 ...
- Docker容器基础入门认知-网络篇
这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...
随机推荐
- 分享一些关于Lucene的心得
Lucene的概述 Lucene是一个全文搜索框架,而不是应用产品.因此它并不像http://www.baidu.com/ 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实 ...
- Python-OpenCV中的cv2.inpaint()函数
概念 修复是图像插值.数字修复算法在图像插值,照片恢复,缩放和超分辨率等方面具有广泛的应用. 大多数人会在家里放一些旧的退化照片,上面有一些黑点,一些笔画等.你有没有想过恢复它?我们不能简单地在绘画工 ...
- python_103_属性方法例子
class Flight(object): def __init__(self,name): self.flight_name = name def checking_status(self): pr ...
- 安装搭配VUE使用的UI框架ElementUI
可以搭配vue的UI框架有几个,我用的是element-ui,现在呢,我要在复习一遍 1.vue init webpack-simple element-ui2.cd element-ui3.npm ...
- Java开发小游戏 用键盘控制精灵在游戏中上下左右跑动 窗体小游戏可打包下载,解压后双击start运行
package com.swift; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.Gam ...
- DNA Pairing-freecodecamp算法题目
DNA Pairing 1.要求 DNA 链缺少配对的碱基.依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回. Base pairs(碱基对)是一对 AT 和 CG,为给定的字母匹配缺 ...
- Java-JFrame可视化开发
Java-JFrame可视化开发的一般步骤 JFrame可以做出类似于QQ登录功能的窗体,通过JFrame可以利用Java代码实现窗体功能,一般用于CS项目的C(客户端)的开发: 利用JFrame可以 ...
- 【linux】【指令集】查看是否打开selinux
> getenforce selinux相关原理资料参考 <鸟哥的linux私房菜> http://cn.linux.vbird.org/linux_server/0210netw ...
- Html5_标签
HTML 1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(W ...
- Java并发编程的艺术 记录(三)
Java内存模型 并发编程的两个关键问题: 1.线程之间如何通讯. 2.线程间如何同步. 两种方式:共享内存和消息传递. Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通 ...