iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Docker容器如何部署consul
  • 821
分享到

Docker容器如何部署consul

2023-06-29 02:06:08 821人浏览 独家记忆
摘要

小编给大家分享一下Docker容器如何部署consul,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Consul简介Consul 是一个支持多数据中心分布式高可用

小编给大家分享一下Docker容器如何部署consul,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Consul简介

Consul 是一个支持多数据中心分布式高可用的 服务发现 和 配置共享 的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。 Consul 支持 健康检查,并允许 HttpgrpcDNS 协议调用 api 存储键值对.
命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品.
一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

Consul 使用场景

  • Docker 实例的注册与配置共享

  • Coreos 实例的注册与配置共享

  • SaaS 应用的配置共享、服务发现和健康检查。

  • vitess 集群

  • 与 confd 服务集成,动态生成 Nginx 和 haproxy 配置文件

-consul部署- 

Docker容器如何部署consul

服务器:192.168.37.100 Docker-ce、Consul、Consul-template
服务器:192.168.37.107 Docker-ce、reGIStrator
template模板(更新配置文件)
registrator(自动发现+注册到consul-server端)
后端每更新出一个容器,会向registrator进行注册,控制consul完成更新操作,consul会触发consultemplate模板进行热更新(reload)
核心机制: consul :自动发现、自动更新,为容器提供服务(添加、删除、生命周期)—------consul服务器

创建consul目录

[root@localhost ~]# hostnamectl set-hostname consul[root@localhost ~]# su[root@consul ~]# mkdir /root/consul

将consul压缩包压缩并放到/use/bin下

[root@consul ~]# cd consul/[root@consul ~/consul]# lsconsul_0.9.2_linux_amd64.zip[root@consul ~/consul]# unzip consul_0.9.2_linux_amd64.zipArcHive:  consul_0.9.2_linux_amd64.zip  inflating: consul[root@consul ~/consul]# lsconsul  consul_0.9.2_linux_amd64.zip[root@consul ~/consul]# mv consul /usr/bin/

配置consul的模式 

onsul agent \
-server \                 server模式
-bootstrap              前端框架
-ui \                可被访问的WEB界面
-data-dir=/var/lib/consul-data \
-bind=192.168.37.100 \
-client=0.0.0.0 \                       registrator(应用服务器-docker-Tomcat/apache)
-node=consul-server01 &> /var/ log / consul.log & 

[root@consul ~/consul]# consul agent \> -server \> -bootstrap \> -ui \> -data-dir=/var/lib/consul-data \> -bind=192.168.37.100 \> -client=0.0.0.0 \> -node=consul-server01 &> /var/log/consul.log &[1] 24144[root@consul ~/consul]# consul membersNode             Address              Status  Type    Build  Protocol  DCconsul-server01  192.168.37.100:8301  alive   server  0.9.2  2         dc1

此时我们看群集信息

[root@consul ~/consul]# consul membersNode             Address              Status  Type    Build  Protocol  DCconsul-server01  192.168.37.100:8301  alive   server  0.9.2  2         dc1

查看详细信息,过滤出leader

[root@consul ~/consul]# consul info | grep leader        leader = true        leader_addr = 192.168.37.100:8300

查看consul界面。使用8500端口,8300是通信端口

Docker容器如何部署consul

容器服务自动加入consul集群

安装Gliderlabs/Registrator Gliderlabs/Registrator

可检查容器运行状态自动注册,还可注册docker容器的服务信息到服务配置中心(consul 8300 -----》8500展示)。目前支持Consul、Etcd和skyDNS2。

在192.168.37.107执行以下操作

[root@server ~]# docker run -d \> --name=registrator \> --net=host \> -v /var/run/docker.sock:/tmp/docker.sock \> --restart=always \> gliderlabs/registrator:latest \> -ip=192.168.37.107 \> consul://192.168.37.100:8500 ###下面的是加载Unable to find image 'gliderlabs/registrator:latest' locallylatest: Pulling from gliderlabs/registratorImage docker.io/gliderlabs/registrator:latest uses outdated schema1 manifest fORMat. Please upgrade to a sc        hema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/depr        ecated-schema-v1/c87f684ee1c2: Pull completea0559c0b3676: Pull completea28552c49839: Pull completeDigest: sha256:6e708681dd52e28f4f39d048ac75376c9a762c44b3D75b2824173f8364e52c10Status: Downloaded newer image for gliderlabs/registrator:latest2536df1b1fbb77dcbf5d2e09295f222496ecc63f00a49020ce6976decd52a439

查看容器

[root@server ~]# docker ps -aCONTaiNER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS     NAMES2536df1b1fbb   gliderlabs/registrator:latest   "/bin/registrator -i…"   51 seconds ago   Up 50 seconds             registrator
测试服务发现功能是否正常

安装两个nginx和2个apache

docker run -itd -p:83:80 --name test-01 -h test01 nginxdocker run -itd -p:84:80 --name test-02 -h testo2 nginxdocker run -itd -p:88:80 --name test-03 -h test03 httpddocker run -itd -p:89:80 --name test-04 -h test04 httpd

Docker容器如何部署consul

此时去网页查看

Docker容器如何部署consul

 安装consul-template

Consul-Template 是一个守护进程,用于实时查询consul集群信息,并更新文件系统上任意数量的指定模板,生成配置文件。更新完成以后,可以选择运行shell命令执行更新操作,重新加载Nginx。Consul-Template可以查询consul中的服务目录、Key、 Key-values 等。

这种强大的抽象功能和查询语言模板可以使Consul-Template 特别适合动态的创建配置文件。例如:创建 Apache/Nginx (nginx upstream) Proxy Balancers、Haproxy Backends

准备template nginx模板文件

--------------------------------------------------在consul上操作----------------------------------------------------

[root@consul ~/consul]# vim nginx.ctmp1upstream http_backend {     {{range service "nginx"}}       server {{.Address}}:{{.Port}};        {{end}}}server {    listen 83;    server_name localhost 192.168.37.100;    access_log /var/log/nginx/xiao.cn-access.log;    index index.html index.PHP;     location / {        proxy_set_header HOST $host;        proxy_set_header x-Real-IP $remote_addr;        proxy_set_header client-IP $remote_addr ;        proxy_set_header x-Forwarded-For $proxy_add_x_forwarded_for;        proxy_pass http://http_backend;     }
 安装nginx
####安装所需软件包[root@server ~]# yum install GCc pcre-devel zlib-devel -y###解压nginx软件包[root@server ~]# tar zxf nginx-1.12.0.tar.gz###执行[root@server /opt/nginx-1.12.0]# ./configure --prefix=/usr/local/nginx##编译[root@server /opt/nginx-1.12.0]# make && make install

修改配置文件,让其识别.conf文件结尾的文件

Docker容器如何部署consul

 创建vhost目录

[root@server /usr/local/nginx/conf]# mkdir vhost

创建nginx日志目录

[root@server /usr/local/nginx/conf/vhost]# mkdir /var/log/nginx.log

启动nginx

[root@server /usr/local/sbin]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/[root@server /usr/local/sbin]# nginx

查看是否启动

[root@server /usr/local/sbin]# netstat -natp |grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      54739/nginx: master
配置并启动template
[root@consul ~/consul]# unzip consul-template_0.19.3_linux_amd64.zipArchive:  consul-template_0.19.3_linux_amd64.zip  inflating: consul-template[root@consul ~/consul]# lsconsul_0.9.2_linux_amd64.zip  consul-template  consul-template_0.19.3_linux_amd64.zip  nginx.ctmp1[root@consul ~/consul]# mv consul-template /usr/bin

 ##关联nginx虚拟目录中的子配置文件操作

[root@consul ~/consul]# consul-template -consul-addr 192.168.37.100:8500 \> -template "/root/consul/nginx.ctmp1:/usr/local/nginx/conf/vhost/xiao.conf:/usr/local/nginx/sbin/nginx -s reload" \> --log-level=info

查看生成配置文件 

Docker容器如何部署consul

是都可以访问。 

Docker容器如何部署consul

以上是“Docker容器如何部署consul”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Docker容器如何部署consul

本文链接: https://www.lsjlt.com/news/322003.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker容器如何部署consul
    小编给大家分享一下Docker容器如何部署consul,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Consul简介Consul 是一个支持多数据中心分布式高可用...
    99+
    2023-06-29
  • Docker容器Consul部署概述
    目录一、Consul概述二、Consul的特性三、Consul的使用场景四、搭建consul集群(1)server部署(2)client部署(3)配置template模板自动更新(4...
    99+
    2022-11-13
    Docker容器Consul部署 Docker Consu
  • Docker容器部署consul的详细步骤
    目录Consul简介Consul 使用场景-consul部署- 容器服务自动加入consul集群安装Gliderlabs/Registrator Gliderlabs/Re...
    99+
    2024-04-02
  • Docker如何部署多容器通信
    这篇文章主要介绍了Docker如何部署多容器通信的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker如何部署多容器通信文章都会有所收获,下面我们一起来看看吧。原因是这样的...
    99+
    2024-04-02
  • Docker容器部署Matomo
    ⭐️主要步骤:数据卷挂载 -->  创建MySQL容器 -->  创建一个带有环境变量设置的Matomo容器 docker volume create matomo_data docker run -d --name mysql ...
    99+
    2023-10-03
    docker mysql 容器
  • 如何在docker容器中部署应用
    本篇内容介绍了“如何在docker容器中部署应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个简单的Hello World应用。1 Ma...
    99+
    2023-06-02
  • Docker如何部署Mysql,.Net6,Sqlserver等容器
    这篇文章主要介绍了Docker如何部署Mysql,.Net6,Sqlserver等容器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Centos8安装Docker1.更新一下...
    99+
    2023-06-22
  • .Net Core部署Docker容器
    阅读本文需要一定的docker基础知识。 前置工作 首先新建一个core项目,需要注意的是在这个界面最好勾选一下docker支持: 项目创建完成以后,你会在目录中发现Dockerf...
    99+
    2024-04-02
  • Django-Docker容器化部署:
    上一章我们成功搭建了容器化的 Django 项目,用到的数据库为默认的 Sqlite。Sqlite 虽然简单易用,但是线上部署时通常会选择更高效、更可靠的数据库,比如 MySQL。 本章将在上一章的基础上,修改并构建 Docker + D...
    99+
    2023-01-31
    容器 Django Docker
  • 如何在docker容器中部署Web项目
    小编给大家分享一下如何在docker容器中部署Web项目,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!系统选用Centos或者Ubuntu都可以。 大致...
    99+
    2023-06-04
  • Docker如何简化多容器应用部署
    Docker可以简化多容器应用部署的过程,主要有以下几点优势: 易于管理:Docker可以将应用及其依赖项打包成一个镜像,使得部...
    99+
    2024-04-02
  • 在Docker容器中部署MSSQL
    部署MSSQL需要2G内存 1.下载镜像 docker pull microsoft/mssql-server-linux 使用该命令就可以把数据库的docker镜像下载下来。 2....
    99+
    2024-04-02
  • docker容器化怎么部署
    要将应用程序容器化并部署到Docker中,可以按照以下步骤进行操作: 编写Dockerfile:创建一个Dockerfile文件...
    99+
    2023-10-27
    docker
  • 如何在kubernetes上部署consul集群
    这篇文章主要介绍“如何在kubernetes上部署consul集群”,在日常操作中,相信很多人在如何在kubernetes上部署consul集群问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在kubern...
    99+
    2023-06-04
  • Docker 部署 MongoDB容器的方法
    目录Docker是什么 部署1. 拉取镜像2. 查看镜像3. 运行容器4. 创建用户5. 连接 DB6. UIDocker是什么 “ Docker 是一个开源的应用容器引擎,让开发...
    99+
    2024-04-02
  • Docker部署Mysql,.Net6,Sqlserver等容器
    目录Centos8安装Docker1.更新一下yum2.安装containerd.io3.安装Docker4.启动Docker5.设置容器开机自启Mysql8.0部署1.拉取镜像2....
    99+
    2024-04-02
  • docker容器部署到云服务器
    部署到云服务器的方式有很多,其中最简单的方式是使用Docker镜像。这种方式通常是直接将Docker镜像部署到云服务器上的容器中,因此只需要将云服务器与Docker镜像文件连接即可进行部署。下面是一些常见的Docker容器部署方式: 镜...
    99+
    2023-10-26
    容器 服务器 docker
  • docker如何部署confluence
    这篇文章给大家分享的是有关docker如何部署confluence的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Confluence 是收费的,但是可以破解使用(提倡购买,支持正版)本文使用的镜像是基于他人(镜像...
    99+
    2023-06-15
  • Docker如何部署Scrapy
    这篇文章将为大家详细讲解有关Docker如何部署Scrapy,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。假设我们要在10台Ubuntu 部署爬虫如何搞之?用传统的方法会吐血的,除非你记录下来每个步骤,然...
    99+
    2023-06-07
  • Docker如何部署Mysql8
    本篇内容主要讲解“Docker如何部署Mysql8”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker如何部署Mysql8”吧!一、前置需求linux系统本人用的Centos7安装dock...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作