Docker 跨主机网络(十六)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 跨主机网络(十六)相关的知识,希望对你有一定的参考价值。

一、跨主机网络概述

前面已经学习了 Docker 的几种网络方案:none、host、bridge 和 joined 容器,它们解决了单个 Docker Host 内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案。

技术分享图片

docker 原生的 overlay 和 macvlan。
第三方方案:常用的包括 flannel、weave 和 calico。

二、准备 overlay 环境

为支持容器跨主机通信,Docker 提供了 overlay driver。Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 Network、Endpoint、IP 等。Consul、Etcd 和 ZooKeeper 都是 Docker 支持的 key-vlaue 软件,我们这里使用 Consul。

1、环境描述

我们会直接使用上一节 docker-machine 创建的实验环境。在 docker 主机 host1(192.168.1.201)和 host2(192.168.1.203)上实践各种跨主机网络方案,在 192.168.1.200 上部署支持的组件,比如 Consul。

2、创建 consul

在 192.168.1.200 这台设备上面执行如下命令。

docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap

容器启动后,可以通过 http://192.168.1.200:8500 访问 Consul。

技术分享图片

3、修改 docker 配置文件

接下来修改 host1 和 host2 的 docker daemon 的配置文件 /etc/systemd/system/docker.service.d/10-machine.conf。

技术分享图片

--cluster-store 指定 consul 的地址。
--cluster-advertise 告知 consul 自己的连接地址。

重启 docker daemon。

systemctl daemon-reload  
systemctl restart docker.service

host1 和 host2 将自动注册到 Consul 数据库中。

技术分享图片

4、准备就绪

准备就绪,实验环境如下图:

技术分享图片

三、创建 overlay 网络

1、在 host1 中创建

在 host1 中创建 overlay 网络 ov_net1。

[[email protected] ~ [host1]]# docker network create -d overlay ov_net1
49a8ea9add6a80d44cbd6becf22d66af40072cf9c3a346d66f94a6e72d8042e5

-d overlay 指定 driver 为 overlay。

以上是关于Docker 跨主机网络(十六)的主要内容,如果未能解决你的问题,请参考以下文章

Docker-----网络自定义网络容器通信跨主机容器通信

docker容器跨主机网络overlay

OpenvSwitch实现Docker容器跨宿主机互联

精讲docker跨主机通信

【swarm】Docker跨主机网络:overlay

跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)