码迷,mamicode.com
首页 > 其他好文 > 详细

容器互联,单机伪集群搭建

时间:2018-08-13 13:51:10      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:str   配置   exe   lin   local   usr   方式   复制   后台运行   

1.集群示意图

技术分享图片

2.从docker hub上获取响应的镜像

docker pull redis

docker pull django

docker pull haproxy

docker pull ubuntu

技术分享图片

 

 3.应用栈的启动顺序

启动redis-master容器节点

两个redis-salve容器节点连接到redis-master节点上

两 app节点启动时要连接到redis-master节点上

Hapoxy节点要连接到两个app节点上

综上所述启动顺序为:

redis-master----》redis-slave------》App -------》Haproxy

注意:为了外网能访问应用栈主机 ,并通过haproxy访问应用栈中app,在启动haproxy时需要-p 选项暴露一个端口给主机,即可以通过主机ip加暴露的端口从外网访问应用栈的app主机

 

4.启动相应节点的容器

分别启动redis容器

#启动redis-master节点

docker run -it --name redis-master redis /bin/bash

技术分享图片

172.17.0.2对应的是redis-master节点

#将redis-slave1 链接到redis-master

docker run -it --name redis-salve1 --link redis-master:master redis /bin/bash

技术分享图片

172.17.0.3对应的是redis-salve1节点

#将redis-slave2 链接到redis-master

docker run -it --name redis-salve2 --link redis-master:master redis /bin/bash

 技术分享图片

172.17.0.4对应的是redis-salve2节点

 

启动app节点

 docker run -it --name APP1 --link redis-master:db -v ~/Projects/Django/App1:/usr/src/app django /bin/bash
 docker run -it --name APP2 --link redis-master:db -v ~/Projects/Django/APP2:/usr/src/app django /bin/bash

技术分享图片

技术分享图片

172.17.0.5 对应APP1   172,17.0.6对应APP2 他都是与redis-master进行容器互联

#通过 -v选项 容器的/usr/src/app与挂载到宿主机的  ~/Projects/Django/App1 目录上,这样在宿主机的   ~/Projects/Django/App1 目录下操作等同于在容器、/usr/src/app 目录下操作。

 

启动haproxy容器

docker run -it --name HAProxy --link APP1: --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp haproxy /bin/bash

技术分享图片

分别于 app1 和 app2 进行容器互联,其中172,.17.0.7就是haproxy容器的ip

 

查看所有容器节点

技术分享图片

 

 5.应用栈容器的配置

Redis Master 主节点容器的配置

查看master节点映射在宿主机中文件目录

技术分享图片

对容器做映射操作

 docker inspect --format "{{ .Config.Volumes }}" 8cb6

 查看映射到宿主机的目录

技术分享图片

cd /var/lib/docker/volumes/1cbd4af8df10700281d44b3a3906bc0bf6c2f29ee44ee154170154f51ba41727/_data

在你的宿主机 安装redis

yum install -y redis

由于容器中没有编辑器 不能使用vi 等命令,所以需要将redis的配置文件复制过去放在挂载的宿主机目录下,并做如下更改

主要更改 redis的启动方式,将redis默认的前台启动方式改为后台运行的方式    

daemonized yes   #默认是no

技术分享图片

 

 在redis-master容器中操作

[root@jump _data]# docker exec -it 8cb6 /bin/bash

  root@8cb697b83074:/data# ls
redis.conf

将redis的配置文件放到 redis的启动目录下

cp  redis.conf /usr/local/bin

启动redis-master

redis-server redis.conf

 

容器互联,单机伪集群搭建

标签:str   配置   exe   lin   local   usr   方式   复制   后台运行   

原文地址:https://www.cnblogs.com/benjamin77/p/9467360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!