docker overlay跨主机网络

.环境

    docker版本
Docker version 18.02.-ce, build fc4de44 3台主机
192.168.55.51 host1
192.168.55.52 host2
192.168.55.53 host2 .部署Consul Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 Network、Endpoint、IP 等。Consul、Etcd 和 ZooKeeper 都是 Docker 支持的 key-vlaue 软件,我们这里使用 Consul。
在 docker 主机 host1 上部署支持的组件,比如 Consul
docker run -d -p : -h consul --name consul progrium/consul -server -bootstrap 容器启动后,可以通过 http://192.168.55.51:8500 访问 Consul。 .修改docker启动项并重启docker(3台上操作)
#修改docker daemon 的配置文件/etc/systemd/system/docker.service [root@host1 ~]# cat /etc/systemd/system/docker.service.d/-machine.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver devicemapper --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic --registry-mirror http://db411c61.m.daocloud.io --cluster-store=consul://192.168.55.51:8500 --cluster-advertise=192.168.55.51:2376
Environment= #配置说明
--cluster-store 指定 consul 的地址。
--cluster-advertise 告知 consul 自己的连接地址。(即docker的连接,2376为docker的端口) #重启docker
systemctl daemon-reload
systemctl restart docker .查看host1 和 host2、host3 将自动注册到 Consul 数据库中
访问http://192.168.55.51:8500
查看key/value==docker==nodes/ (可以看到3台主全部注册上来了) .在 host1 中创建 overlay 网络 ov_net1
docker network create -d overlay ov_net1
-d overlay 指定 driver 为 overaly。
docker network ls
查看当前网络:
[root@host1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
8925d1ce67ad bridge bridge local
0fb41307416f host host local
fc3f61663c71 none null local
cb5cce10b030 ov_net1 overlay global
注意到 ov_net1 的 SCOPE 为 global,而其他网络为 local。在 host2 上查看存在的网络:
host2 上也能看到 ov_net1。这是因为创建 ov_net1 时 host1 将 overlay 网络信息存入了 consul,host2 从 consul 读取到了新网络的数据。之后 ov_net 的任何变化都会同步到 host1 和 host2、host3。 docker network inspect ov_net1
查看 ov_net1 的详细信息:
[root@host1 ~]# docker network inspect ov_net1
[
{
"Name": "ov_net1",
"Id": "cb5cce10b0301720ded000830038183c9752448a77c4010f6d1e194923bf1ef7",
"Created": "2018-03-20T15:43:52.509618103+08:00",
"Scope": "global",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.0.0.0/24",
"Gateway": "10.0.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
] IPAM 是指 IP Address Management,docker 自动为 ov_net1 分配的 IP 空间为 10.0.0.0/。 .运行一个 busybox 容器并连接到 ov_net1
host1
docker run -tid --name bbox1 --network ov_net1 busybox #查看容器的网络配置:
docker exec bbox1 ip r
host2
docker run -tid --name bbox2 --network ov_net1 busybox #查看容器的网络配置:
docker exec bbox2 ip r #查看网络互通
host1上查看
docker exec bbox1 ping -c bbox2

跨主机网络-overlay(18)的更多相关文章

  1. centos7下安装docker(15.2跨主机网络-overlay)

    为支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于VxLAN的overlay网络.VxLAN可将二层数据封装到UDP进行传输,VxLAN提供与VLAN相同的以太网 ...

  2. Docker 跨主机网络 overlay(十六)

    目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创 ...

  3. Docker跨主机网络——overlay

    前言 在Docker网络--单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易.本文我为大家总结Docker跨主机通信相关知识.同样本文大部分内容以CloudM ...

  4. docker容器跨主机网络overlay

    前提:已部署好docker服务服务预计部署情况如下10.0.0.134 Consul服务10.0.0.135 host1  主机名mcw510.0.0.134 host2  主机名mcw6host1与 ...

  5. 跨主机网络overlay和macvlan模型

    overlay网络模型 无论是openstack还是docker都是先创建一个网络然后再创建虚机或者容器  并把创建的虚机或者容器运行在此网络中 Docker 提供了 overlay driver,使 ...

  6. Docker系列04—跨主机网络方案(overlay/weave)

    在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docke ...

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

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

  8. [Kubernetes]谈谈容器跨主机网络

    继上篇文章:[Kubernetes]浅谈容器网络,自己给自己挖的坑,这篇文章来谈谈容器跨主机网络. 要理解容器"跨主通信"的原理,就要来谈谈 Flannel 这个项目. Flann ...

  9. Docker 跨主机网络

    Docker提供两种原生的跨主机网络: Overlay  和  Macvlan libnetwork & CNM libnetwork 是 docker 容器网络库,最核心的内容是其定义的 C ...

随机推荐

  1. kNN(从文本文件中解析数据)

    # 准备数据:从文本文件中解析数据# 在kNN.py中创建名为file2matrix的函数,处理输入格式问题# 该函数的输入为文件名字符串,输出为训练样本矩阵和类标签向量# 将文本记录到转换Numpy ...

  2. excle里边的数据怎么导入oracle数据库

    方式一:(不正式) select出的列数与已经准备好的excle中的列数相同.select  xh,name from 表名 where xh = 'ghf' for update;  (查不到任何结 ...

  3. LOJ 3090 「BJOI2019」勘破神机——斯特林数+递推式求通项+扩域

    题目:https://loj.ac/problem/3090 题解:https://www.luogu.org/blog/rqy/solution-p5320 1.用斯特林数把下降幂化为普通的幂次求和 ...

  4. 22 October in 614

    Contest A. defile struct 自定义排序.按照题意抽象成模型模拟就可以了. 自定义排序核心代码: struct node { int x, id; } d[1000003]; bo ...

  5. MySQL按首字母查询

    DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ ))) CHARSET utf8 BEGIN ); ); )); SET V_R ...

  6. node js 操作redis promise

    连接 redis = require('redis') var client = redis.createClient('6379', '127.0.0.1'); client.on('connect ...

  7. label runat="server"

    <label id="lblWhiteIp_Text_Info" runat="server"></label> 后台对应的类型是 pr ...

  8. 关于C++中nothrow的某某某

    前言 在学习C++中new的种种用法时,在operator new的其中一个重载版本中看一个参数nothrow,想弄清楚到底是什么意思?nothrow顾名思义,就是不抛出的意思嘛!不抛出啥,在C++中 ...

  9. English-accomplish、complete、finish、achieve and fulfill

    accomplish to succeed in doing something, especially after trying very hard vt. 完成:实现:达到 complete us ...

  10. POJ1426-Find The Multiple-bfs

    Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal repr ...