docker安装consul
先创建容器挂载目录:
mkdir D:/docker_consul/config mkdir D:/docker_consul/data
mkdir D:/docker_consul/log
在D:/docker_consul/config编写配置文件config.json的内容:
{ "bootstrap_expect": 1, "data_dir": "/consul/data", "log_level": "INFO", "node_name": "dev-192_168_0_48", "client_addr": "0.0.0.0", "ui": true, "server": true, "log_file": "/consul/log/", "log_rotate_bytes":100000000, "log_rotate_duration":"24h" }
执行docker启动consul命令:
docker run -d -p 8500:8500 --name=consul
-v D:/docker_consul/config:/consul/config
-v D:/docker_consul/data:/consul/data
-v D:/docker_consul/log/:/consul/log/
consul:1.9.5 agent
docker run -d -p 8500:8500 --name=consul -v D:/docker_consul/config:/consul/config -v D:/docker_consul/data:/consul/data -v D:/docker_consul/log/:/consul/log/ consul:1.9.5 agent
docker consul在启动的时候,会从/consul/config目录中,加载配置文件,自动读取config.json文件
挂载config目录后,是为了方便管理consul的配置文件,可以在宿主机(windows10)上修改配置文件
挂载data目录后,即使把容器删除了,后面重新创建容器的时候,会自动加载data里面的数据,保证历史数据真正意义上不丢失
挂载log/目录后,方便在宿主机上查看consul的运行日志
如果不使用挂载,快速启动consul,可以使用如下命令快速启动consul:
docker run -d -p 8500:8500 --restart=always
--name=consul consul:1.9.5 agent
-server
-bootstrap
-ui
-node=node1
-client='0.0.0.0'
或者
docker run -d --net=host --restart=always
--name=consul consul:1.9.5 agent
-server
-bootstrap
-ui
-node=node1
-client='0.0.0.0'
-bind='127.0.0.1'
(consul 不能check 127.0.0.1其他容器api)
命令说明:
--net=host 网桥方式:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口 -p 8500:8500 端口映射:前表示主机部分,:后表示容器部分。 -restart=always 重启方式:表示docker会自动重启该容器 --name=consul consul:latest 指定该容器名称,查看和进行操作都比较方便。 agent 启动 Agent 进程 -server 启动 Consul Server 模式 -bootstrap 表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。 -ui 启动 Web UI 管理器 可访问8500查看 -node 节点名称 集群中必须是唯一的,默认是该节点的主机名 -client 启动 Consul Cilent 模式 consul服务侦听地址 提供HTTP、DNS、RPC等服务 默认是127.0.0.1 对外提供服务改成0.0.0.0 -bind='127.0.0.1' 绑定服务器的ip地址;该地址用来在集群内部的通讯,集群内的所有节点到地址必须是可达的,默认是0.0.0.0 改成127.0.0.1
业务需求变更永无休止,技术前进就永无止境!