docker环境下consule集群搭建

  1. 安装docker

    # 安装最新版本
    yum install -y docker
    # 启动docker
    systemctl start docker
    # 设置阿里云镜像加速地址
    		[注册阿里云账号](https://account.aliyun.com/login/login.htm?accounttraceid=f9b25fda-e61d-4a95-b837-f9e5198e6726)
    		# 没有daemon.json文件可以自己新建一个
    		vi /etc/docker/daemon.json
    		# daemon文件内容
    		{
    			"registry-mirrors": ["你自己的阿里云加速地址"]
    		}
    
  2. 制作consul镜像

    cd /opt/  
    # 获取consul安装包
    	wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip
    	unzip consul_0.7.2_linux_amd64.zip #解压压缩包,解压后获得文件 consul
    	# 如果需要安装zip服务,  yum install zip unzip
    	rm -rf  consul_0.7.2_linux_amd64.zip # 删除安装包
    	vi Dockerfile # 通过Dockerfile创建镜像
    	# dockerfile 文件内容
    		FROM centos:latest   # 指定基础镜像
    		MAINTAINER  yadishaonian  # 作者信息
    		COPY consul /usr/local/bin  # 将解压的consul文件复制到容器的bin目录下
    		EXPOSE 8300  
    		EXPOSE 8301 8301/udp 8302 8302/udp
    		EXPOSE 8500 8600 8600/udp  # 对外暴露consul服务端口
    	# dockerfile 创建镜像
    		docker build -t consul/dong .   # consul/dong 为镜像的REPOSITORY
    		docker build -t consul/ya .
    		docker build -t consul/di .
    	#启动镜像
    		docker run -it -d --name consuldong -p 8500:8500 consul/dong /bin/bash
    		docker run -it -d --name consulya -p 8501:8500 consul/ya /bin/bash
    		docker run -it -d --name consuldi -p 8502:8500 consul/di /bin/bash
    
  3. consul 集群
    上面已经在docker中创建三台consul服务器.
    ①.启动第一台:

    		1. docker exec -it consuldong /bin/bash  # 进入第一台consul服务器
    		2. cd /opt
    		3. mkdir consul
    		4. cd consul
    		5. mkdir data
    		6. mkdir consul.d   # 创建consul运行需要的目录,不创建启动报错
    		7. cd /usr/local/bin/  # 切换到bin目录下
    		8. nohup consul agent -server  -bootstrap-expect=1  -data-dir=/opt/consul/data  -datacenter=dc1 -rejoin -config-dir /opt/consul/consul.d -client 0.0.0.0 -ui &   # consul 以后台进程启动,并且作为集群中的master,提供UI界面
    		9. consul members  #查看当前consul运行状态
    			![记录address:*172.17.0.4*](https://img-blog.csdnimg.cn/20181031172514933.png)
    		10. exit # 退出当前容器
    

    ②.启动第二台(第二与第三台作为slave节点,操作相同)

    		1. docker exec -it consuldong /bin/bash  # 进入第一台consul服务器
    		2. cd /opt
    		3. mkdir consul
    		4. cd consul
    		5. mkdir data
    		6. mkdir consul.d   # 创建consul运行需要的目录,不创建启动报错
    		7. cd /usr/local/bin/  # 切换到bin目录下
    		8. nohup consul agent -server -data-dir=/opt/consul/data  -datacenter=dc1 -rejoin -client 0.0.0.0 & # consul slave节点启动方式
    		9. consul join 172.17.0.4 # 加入集群中
    		10. exit # 退出
    
  4. 开通对外访问的防火墙策略
    consul对外访问端口默认为8500.

    firewall-cmd --zone=public --add-port=8500/tcp --permanent  # 打开8500端口
    firewall-cmd --zone=public --add-port=8501/tcp --permanent  # 打开8501端口
    firewall-cmd --zone=public --add-port=8502/tcp --permanent  # 打开8502端口
    
    firewall-cmd --reload  # 重启防火墙
    
  5. 可以访问了~
    docker环境下consule集群搭建_第1张图片

你可能感兴趣的:(docker环境下consule集群搭建)