docker整合consul实现跨主机容器间的通信

docker整合consul实现跨主机容器间的通信

一、Consul的准备

1 安装consul

linux安装:官网下载后者

//ubuntu 下载
sudo wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip

准备安装

docker整合consul实现跨主机容器间的通


标签(空格分隔): docker

一、Consul的准备

1 安装consul

linux安装:官网下载后者

//ubuntu 下载
sudo wget https://releases.hashicorp.co
m/consul/0.7.2/consul_0.7.2_linux_amd64
.zip

准备安装

//解压下载的安装包
unzip consul_0.7.2_linux_amd64.zip
sudo mv consul /usr/local/bin
//创建consul存储位置
sudo mkdir /opt/consul
taoliu     文件    发布     ````java
//解压下载的安装包
unzip consul_0.7.2_linux_amd64.zip
sudo mv consul /usr/local/bin
//创建consul存储位置
sudo mkdir /opt/consul

Consul的常用指令

//查看详细的route的配置
consule members
//将client加入集群
consule join 
//注册ip到集群
consul agent

2 配置consul(示例两个ip)

开启两个服务

目前有两个主机IP为 192.168.1.1和192.168.1.2

//再ip 192.168.1.1 上开启服务(servce) ,
//注释:&,让终端后台运行
sudo nohup consul agent -server -bootstrap -data-dir /opt/consul -bind=192.168.1.1 &
//再ip 192.168.1.2 上开启服务(client)
sudo nohup consul agent -data-dir /opt/consul -bind=192.168.1.2 &

启动成功结果展示

silent@silent-X200:~$ consul members
Node                  Address             Status  Type    Build  Protocol  DC
hicetech.thinkserver  192.168.1.1:8301    alive   server  0.7.2  2         dc1
silent-X200           192.168.1.2:8301    alive   client  0.7.2  2         dc1

二、docker 配置

运行环境linux:Ubuntu、centOS7

1 docker的参数

参数 解释
--api-enable-cors=false 开放远程API调用的CORS头信息。这个接口开关对想进行二次开发的上层应用提供了支持。
-b, --bridge="" 挂载已经存在的网桥设备到 Docker 容器里。注意,使用 none 可以停用容器里的网络。
D, --debug=false 开启Debug模式。例如:docker -d -D
-d, --daemon=false 开启Daemon模式
H, --host=[] 在后台模式下指定socket绑定,可以绑定一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。例如: docker -H tcp://0.0.0.0:2375 ps 或者export DOCKER_HOST="tcp://0.0.0.0:2375"$ docker ps
--icc=true 启用内联容器的通信
--ip="0.0.0.0" 容器绑定IP时使用的默认IP地址
--storage-opt=[] 配置存储驱动的参数
--mtu=0 设置容器网络的MTU值,如果没有这个参数,选用默认 route MTU,如果没有默认route,就设置成常量值 1500。
-p, --pidfile="/var/run/docker.pid" 后台进程PID文件路径。
-r, --restart=true 重启之前运行中的容器
-s, --storage-driver="" 强制容器运行时使用指定的存储驱动,例如,指定使用devicemapper, 可以这样:docker -d -s devicemapper

2 docker的启动命令

注意配置docker的配置文件

//在Red Hat 和centOS
$ sudo service docker stop  
Redirecting to /bin/systemctl stop  docker.service  
$ sudo service docker start  
Redirecting to /bin/systemctl start  docker.service 

//在Ubuntu
$ sudo stop docker  
docker stop/waiting  
$ sudo start docker  
docker start/running, process 18192 

带参数启动docker

//在Ubuntu中启动  
//--cluster-advertis :本地的网卡名称   enp1s0
//--cluster-store :本地主机的IP
docker daemon  --cluster-store=consul://192.168.1.2:8500 --cluster-advertise=enp1s0:2357 &

//在CentOS中启动 
dockerd  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  --cluster-store=consul://localhost:8500 --cluster-advertise=eno1:2357

3 在ip为192.168.1.1的服务器的docker中创建网卡

//--ip-range=192.168.2.0/24 和--subnet=192.168.2.0/24 指分配的网段0~24
//--gateway 网关
//overlay 配置的网卡类型
docker network create -d overlay --ip-range=192.168.2.0/24 --gateway=192.168.2.1 --subnet=192.168.2.0/24 multihost

3.1成功结果显示

//主机ip 为192.168.1.1上面展示的网卡
//当再192.168.1.1 上配置完成后辉显示两个 docker_gwbridge 和multihost 两个网卡,使用的时候使用multihsot,docker_gwdocker 的作用和bridge相同,当他是专门来服务multihost的
[root@tao vaccine]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
2b77d6d370f0        bridge              bridge              local
4a934d1b9942        docker_gwbridge     bridge              local
e073e478a440        host                host                local
5b3c3262ded8        multihost           overlay             global
a2ee0a3fc0de        none                null                local
//主机ip 为192.168.1.2上面展示的网卡
//在ip 192.168.1.1会自动同步到ip为192.168.1.2上面的docker network ,此时说明两台服务器的docker是可以互通的,
root@silent-X200:/etc/docker# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
562e5565db92        bridge              bridge              local               
9fc873fe3a82        docker_gwbridge     bridge              local               
c94896f54401        host                host                local               
5b3c3262ded8        multihost           overlay             global              
d53ab98cc279        none                null                local

注释:当你创建完成multihost时

3.2本地网卡变化

//ip 192.168.1.1 此时除了到docker 默认的docker0,还多了一个docker_gwbridge的网卡,docker_gwbridge 他是容器间进行通信的桥梁
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:daff:fee5:15d4  prefixlen 64  scopeid 0x20<link>
        ether 02:42:da:e5:15:d4  txqueuelen 0  (Ethernet)
        RX packets 2561  bytes 214365 (209.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2333  bytes 3068911 (2.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker_gwbridge: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:b3ff:fe49:e42d  prefixlen 64  scopeid 0x20<link>
        ether 02:42:b3:49:e4:2d  txqueuelen 0  (Ethernet)
        RX packets 868802  bytes 123326175 (117.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 868802  bytes 123326175 (117.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
//ip 192.168.1.2 同时也多了一个 docker_gwbridge 
docker0   Link encap:以太网  硬件地址 02:42:b3:67:6e:94  
          inet 地址:172.17.0.1  广播:0.0.0.0  掩码:255.255.0.0
          inet6 地址: fe80::42:b3ff:fe67:6e94/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  跃点数:1
          接收数据包:5434 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:4542 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:662528 (662.5 KB)  发送字节:683433 (683.4 KB)

docker_gwbridge Link encap:以太网  硬件地址 02:42:51:0d:34:37  
          inet 地址:172.18.0.1  广播:0.0.0.0  掩码:255.255.0.0
          inet6 地址: fe80::42:51ff:fe0d:3437/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  跃点数:1
          接收数据包:38256 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:40898 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:7064590 (7.0 MB)  发送字节:8310066 (8.3 MB)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 228,156评论 6 531
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,401评论 3 415
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 176,069评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,873评论 1 309
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,635评论 6 408
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,128评论 1 323
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,203评论 3 441
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,365评论 0 288
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,881评论 1 334
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,733评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,935评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,475评论 5 358
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,172评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,582评论 0 26
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,821评论 1 282
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,595评论 3 390
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,908评论 2 372

推荐阅读更多精彩内容