使用Docker-Compose搭建consul集群环境!!!

本文档详述了如何使用Docker Compose搭建Consul集群环境,包括Docker Compose的基础知识、Consul的特性、服务的自动发现与更新。通过在两台服务器上部署Docker服务和Consul,实现了服务的动态注册和配置文件的热更新。此外,还介绍了如何使用Consul-Template和Registrator进行服务的监控和配置更新,以及在集群中添加和删除服务节点的操作流程。
摘要由CSDN通过智能技术生成

一.Compose consul的概述

1.什么是Compose

Docker Compose的前身是fig,他是一个定义及运行多个Docker容器的工具,使用Docker Compose不需要使用shell脚本来启动容器;Docker Compose非常适合组合多个容器进行开发的场景

2.Docker Compose容器编排

YAML是一种标记语言很直观的数据序列化格式
文件格式及编写注意事项:

不支持制表符tab键缩进,需要使用空格缩进
通常开头缩进2个空格
字符后缩进1个空格,如冒号、逗号、横杆
用#号注释
如果包含特殊字符用单引号弓|起来
布尔值必须用引号括起来

3.Docker Compose配置常用字段字段 描述

在这里插入图片描述

4.Docker Compose常用命令

在这里插入图片描述

二.Consul的概述

1.什么是consul

Consul是HashiCorp公司推出的开源工具, 用于实现分布式系统的服务发现与配置

2.Consul的特性

支持健康检查,允许存储键值对
基于Golong语言,可移植性强
支持ACL访问控制
同时可与Docker等轻量级容器可无缝配合

3.Consul容器服务更新与发现

在这里插入图片描述
consul服务端:

(1)consul template:通过变量定义模板;定义的内容就是upstream地址池,通过变量的形式,并在接收到指令的时候动态更新web_01中ng的配置文件

(2)consul server:管理consul template

(3)consul agent:获取服务发现的机制;UI界面也可以看到新更新的服务

compose:

consul registrator:监听;部署在server端上

过程:
设置registrator监控,监听服务端口,有新的端口监控会注册到agent,交给server端,把后端真实的容器和ip写入template模板内,模板更新到nginx.conf内,再重载配置文件,从而对外识别新加的服务后端的节点:docker服务器

三.Compose的部署

1.服务器准备

192.168.206.177
安装服务docker concul agent/server/template nginx手工编译安装

192.168.206.188
安装服务docker nginx httpd

2.两台服务器安装docker,并设置镜像加速

3.上传Compose

[root@docker1 ~]# ls
1.sh  anaconda-ks.cfg  initial-setup-ks.cfg  test.sh  视频  下载
2.sh  docker-compose   mm.sh                 公共     图片  音乐
3.sh  first.sh         qiuhe.sh              模板     文档  桌面
[root@docker1 ~]# cp docker-compose /usr/local/bin

[root@docker1 ~]# chmod +x /usr/local/bin/docker-compose

4.创建目录,编写nginx的dockerfile

[root@docker1 ~]# mkdir /root/compose_nginx
[root@docker1 ~]# cd compose_nginx/
[root@docker1 compose_nginx]# mkdir nginx wwwroot
[root@docker1 compose_nginx]# cd nginx/
[root@docker1 nginx]# touch Dockerfile

[root@docker1 nginx]# ls						#上传软件包
Dockerfile  nginx-1.12.2.tar.gz
[root@docker1 nginx]# vim Dockerfile 			#编写dockerfile

FROM centos:7
ADD nginx-1.12.2.tar.gz /mnt 
WORKDIR /mnt/nginx-1.12.2
RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \
 yum clean all && \
 sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \
 ./configure --prefix=/usr/local/nginx &> /dev/null && \
 make &> /dev/null && make install &> /dev/null &&\
 rm -rf /mnt/nginx-1.12.2
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]


5.编写站点网页

[root@docker1 nginx]# cd ..
[root@docker1 compose_nginx]# ls
nginx  wwwroot
[root@docker1 compose_nginx]# cd wwwroot/
[root@docker1 wwwroot]# vim index.html

this is NG web!!!


6.编写docker-compose.yml文件

[root@docker1 wwwroot]# vim /root/compose_nginx/docker-compose.yml

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1216:80
      - 1217:443
    networks:
      - cluster
    volumes:
      - ./wwwroot:/usr/local/nginx/html
networks:
  cluster:


[root@docker1 wwwroot]# cd ..
[root@docker1 compose_nginx]# docker-compose -f docker-compose.yml up -d			#基于yml文件运行启动

[root@docker1 compose_nginx]# docker-compose ps										#使用Compose容器编排
        Name                      Command             State              Ports           
-----------------------------------------------------------------------------------------
compose_nginx_nginx_1   /usr/local/nginx/sbin/ngin    Up      0.0.0.0:1217->443/tcp,:::12
                        ...                                   17->443/tcp, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值