【原】docker部署单节点consul

摘要:
最重要的是配置-bootstrap-expect=1 docker run-name consult 1-d-p5902:8500-p8300:8300-p8301:8301-p8302:8302-p8600:860010.109.30.246:5901/daily_docker/control:1.4.5gent-server-bootst

docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1

docker run --name consul1 -d -p 5902:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 10.109.30.246:5901/daily_docker/consul:1.4.5 agent -server -bootstrap-expect=1 -ui -bind=0.0.0.0 -client=0.0.0.0

consul agent 命令的常用选项,如下:

    • -data-dir 
      • 作用:指定agent储存状态的数据目录
      • 这是所有agent都必须的
      • 对于server尤其重要,因为他们必须持久化集群的状态
    • -config-dir 
      • 作用:指定service的配置文件和检查定义所在的位置
      • 通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
    • -config-file 
      • 作用:指定一个要装载的配置文件
      • 该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
    • -dev 
      • 作用:创建一个开发环境下的server节点
      • 该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
      • 这种模式不能用于生产环境(因为第二条)
    • -bootstrap-expect 
      • 作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。
    • -node 
      • 作用:指定节点在集群中的名称
      • 该名称在集群中必须是唯一的(默认采用机器的host)
      • 推荐:直接采用机器的IP
    • -bind 
      • 作用:指明节点的IP地址
      • 有时候不指定绑定IP,会报Failed to get advertise address: Multiple private IPs found. Please configure one. 的异常
    • -server 
      • 作用:指定节点为server
      • 每个数据中心(DC)的server数推荐至少为1,至多为5
      • 所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性
      • server也是与其他DC交互的门面(gateway)
    • -client 
      • 作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC
      • 默认是127.0.0.1,只允许回环接口访问
      • 若不指定为-server,其实就是-client
    • -join 
      • 作用:将节点加入到集群
    • -datacenter(老版本叫-dc,-dc已经失效) 
      • 作用:指定机器加入到哪一个数据中心中

10.109.30.246:5901/daily_docker/consul:1.4.5是本地的docker镜像源,run时会从源仓库拉取镜像启动

注:5902的端口映射是因为防火墙问题,防火墙的策略只暴露5900-XXXX的端口。

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' consul1 //获取容器IP

免责声明:文章转载自《【原】docker部署单节点consul》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,List<T>删除汇总Android Studio 发展史下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Linux之旅一] .NET Core 2.2部署到Docker中

第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图: 在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Docker镜像;(补充:镜像运行在容器中) 第二步,编辑Dockerfile文件,本人初学不便讲解它的用法,本人按照以下方式进行编辑: FROM microso...

prometheus使用四(alertmanager&grafana告警及服务发现)

一.prometheus告警 prometheus有了监控和展示后,我们可以看到各种指标,但没有告警的话还是不方便。 (1)alertmanager告警   1.下载安装 下载地址:https://prometheus.io/download/ tar -xvf alertmanager-0.20.0.linux-amd64.tar.gz alertnat...

Ubuntu18.04安装Docker

由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: $ sudo apt-get remove docker docker-engine docker-ce docker.io 第一种方法从Ubuntu的仓库直接下载安装: 安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装。 $ sud...

linux下使用docker方式部署ftp服务器

linux环境下部署vsftpd比较繁琐,可以直接使用docker官方仓库中的pure-ftpd镜像来部署ftp服务器。下载镜像 docker pull stilliard/pure-ftpd:hardened 启动镜像 docker run --rm -d --name ftpd_server -p 2121:21 -p 30010-30019:30...

docker安装与卸载( liunx )

安装docker ubuntu apt-get update apt install -y docker.io 菜鸟教程:ubuntu安装docker centos yum update yum install -y docker.io 菜鸟教程:centos安装docker 教程中有常见的国内镜像源,建议也更换下。 卸载docker ubuntu...

Docker安装各种服务

一. centos7设置固定IP 查看当前正在使用的网络情况 [root@localhost ~]# nmcli dev status 显示情况 : DEVICE TYPE     STATE   CONNECTION ens33   ethernet 连接的   ens33      lo     loopback 未托管   --  ...