阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker网络基础—Docker跨主机容器访问通信

504次阅读
没有评论

共计 3262 个字符,预计需要花费 9 分钟才能阅读完成。

在同一宿主机下的 Docker 的容器之间是默认互相联通的。通过 docker inspect id 或 name 可以查看到 ip 地址。在不通的容器中来执行 ping 是可以 ping 通的。

但我们通过观察发现,每一个启动容器的 ip 地址不是固定的,所以如果我们通过 ip 地址来实现互连明显是不靠谱的。但我们发现这些 ip 又处于同一网段中而且默认是 127.0.0.X,这就是 Docker 容器默认跨主机之间的链接方法的第一种:网桥实现

在 docker 宿主机上运行 ifconfig 命令可以看的存在一个 docker0 的网桥。Docker 容器通过 docker0 网桥实现同一主机间中,容器的 ip 地址分配和访问,所以,如果希望 Docker 跨主机访问,最简单的方式就是将不同主机的 docker0 设置为同一网段。

整体网络拓扑结构就是这样:

Docker 网络基础 ---Docker 跨主机容器访问通信

但是通过这种桥接,所有网卡都要在一个网段下,所以要对每个 Docker 守护进程对 ip 的分配做出限制:

下面,我们就来实现这个结构:

两台 Ubuntu 的 ip:

Host1:10.211.55.3 网卡:eth0

Host2:10.211.55.5 网卡 eth1

网关:10.211.55.1

对容器 ip 的划分:

Host1: 10.211.55.64/26

地址范围:10.211.55.65~10.211.55.126

Host2: 10.211.55.128/26

地址范围:10.211.55.129~10.211.55.190

需要的操作:

以下,以 Host1 为例,Host2 上操作相似,只是网卡名字不一样,我在这里,没有我们不使用默认的 docker0 网桥,而是自己新建一个网桥:

apt-get install bridge-utils 
  1. 分别在 Docker 主机上建立虚拟网桥:

    Host1: $ sudo brctl addbr br0

  2. 为网桥分配一个同网段 ip

    Host1: $ sudo ifconfig br0 10.211.55.10 netmask 255.255.255.0

    Host2: $ sudo ifconfig br0 10.211.55.20 netmask 255.255.255.0

  3. 桥接本地网卡:

    Host1: $ sudo brctl addif br0 eth0

这里,我们就准备好了网桥设置

下面我们来修改 Docker 的配置, 使用我们新建的网桥代替 docker0:

  1. 修改 /etc/default/docker 文件

    $sudo vim /etc/default/docker

  2. 添加守护进程的启动选项:

    Host1: DOCKER_OPTS=”-b=br0 –fixed-cidr=‘10.211.55.64/26‘“

    Host2: DOCKER_OPTS=”-b=br1 –fixed-cidr=‘10.211.55.128/26‘“

    这里,-b 用来指定容器连接的网桥名字

    –fixed-cidr 用来限定为容器分配的 IP 地址范围

  3. 保存文件并重启 Docker 服务

    $ sudo service docker restart

    下面,就可以来验证:

1. 分别在两个 Host 上启动一个容器

$ docker run -it ubuntu /bin/bash

2. 在容器中运行 ping 命令查看连接情况 发现是互通的。

Docker 跨主机容器链接方法二:Open vSwitch
简称 OVS 是一个虚拟交换软件. 目的是让大规模网络自动化可以通过编程扩展。

先看一下实现这种方式的连接所具备的条件:
1. 双网卡,Host-Only & NAT
2. 安装 Open vSwitch: apt-get install openvswitch-switch

操作步骤:

  • 1. 在虚拟机中建立 ovs 网桥
  • 2. 添加 gre 连接
  • 3. 配置 docker 容器虚拟网桥
  • 4. 为虚拟网桥添加 ovs 接口
  • 5. 添加不同 Docker 容器网段路由

具体执行的一些命令如下:
针对 10.211.55.3 设置

sudo ovs-vsctl show  #ovs 状态
sudo ovs-vsctl add-br obr0  # 增加 ovs 网桥名为 obr0
sudo ovs-vsctl add-port obr0 gre0  # 增加 gre 接口名为 obr0
sudo ovs-vsctl set interface gre0 type=gre
options:remote_ip=10.211.55.5 
 # 设置接口指定链接类型为 gre 并指定远程链接的 ip
sudo ovs-vsctl show  
   # 接下来设计本机 docker 网桥
sudo brctl addbr br0  
sudo ifconfig br0 10.211.55.1 netmask 255.255.255.0  
sudo brctl addif br0 obr0# 为本机网桥设置 ovs 网桥链接  
sudo brctl show  
   # 最后设置为 docker 网桥 br0
   # 这样本机就可以链接 10.211.55.5

对于 10.211.55.5 要联通 10.221.55.3 只需要对其设置路由表即可:

route  
sudo ip route add 10.211.55.0/24 via 10.211.55.5 dev eth0  

Docker 跨主机容器链接方法三:weave

建立一个虚拟的网络, 用于将运行在不同主机的 Docker 容器连接起来.
要实现这种方式所需要的条件如下:
双网卡,Host-Only & NAT
host1:10.0.2.6
host2:10.0.2.8
host1 上应用容器 1:192.168.0.2/24
host2 上应用容器 1:192.168.0.3/24
两台机器上均安装 Docker 以及 weave, 并均启动好 weave 路由容器
在两台机器上均启动一个应用容器. 可以直接使用 weave run 命令, 也可以先使用 docker run 启动好容器, 然后使用 weave attach 命令给容器绑定 IP 地址

安装好 weava 之后,便执行绑定:
在 10.0.2.6 之中:

weava launch 10.0.2.8
# 配置 docker 处于 192.168.0.2/24 的网段中
c2=$(weava run 192.168.0.2/24 -ti ubuntu /bin/bash)
docker attach $c2

按如上的方法做了后所以主机内的容器通常是全部可以链接成功的,但一般情况下这样很不安全:

我们会使用在 /etc/default/docker 中配置 -icc=false (拒绝容器的所有链接)以及–iptables=true (启动宿主机防火墙规则)而对于需要互连的则使用–link 来制定。–link 容器名称: 自己定义的别名

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136354.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3262字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19356
评论数
4
阅读量
8277804
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...