consul部署 docker篇

入门必看

https://livewyer.io/blog/2015/02/05/service-discovery-docker-containers-using-consul-and-registrator/

### 在 Docker 环境中配置和使用 Consul 1.3 的方法 #### 1. 使用 Docker 部署 Consul Consul 官方提供了 Docker 镜像,可以方便地在 Docker 环境中运行 Consul。以下是部署 Consul 1.3 的基本配置示例[^9]: ```bash docker run -d \ --name=consul \ -p 8500:8500 \ -e CONSUL_BIND_INTERFACE=eth0 \ -e 'CONSUL_LOCAL_CONFIG={"ui":true}' \ consul:1.3 agent -server -bootstrap-expect=1 -client=0.0.0.0 ``` 上述命令启动了一个单节点的 Consul 服务器,并启用了 Web UI。`-bootstrap-expect=1` 表示这是一个单节点集群。 #### 2. 配置文件的使用 为了更好地管理 Consul 的配置,可以使用 JSON 格式的配置文件。以下是一个典型的 Consul 配置文件示例[^10]: ```json { "datacenter": "dc1", "data_dir": "/consul/data", "server": true, "bootstrap_expect": 1, "client_addr": "0.0.0.0", "bind_addr": "0.0.0.0", "ui": true, "log_level": "INFO", "enable_debug": true, "acl": { "enabled": true, "default_policy": "deny", "down_policy": "extend-cache" } } ``` 将此配置文件保存为 `config.json`,并通过 `-config-file` 参数加载到容器中: ```bash docker run -d \ --name=consul \ -p 8500:8500 \ -v $(pwd)/config.json:/consul/config/config.json \ consul:1.3 agent -config-file=/consul/config/config.json ``` #### 3. ACL 系统的配置 Consul 1.3 的 ACL 系统支持更细粒度的权限控制。可以通过以下方式启用 ACL 并创建令牌[^11]: - 启用 ACL:在配置文件中设置 `"acl.enabled": true`。 - 创建管理令牌:通过 CLI 或 API 创建一个初始管理令牌。 ```bash # 创建管理令牌 docker exec -it consul consul acl token create -description="Initial management token" -policy-name=global-management ``` #### 4. 使用 intentions 控制服务间通信 Consul 1.3 支持 intentions 功能,用于定义服务间通信的策略。例如,允许服务 A 访问服务 B: ```bash docker exec -it consul consul intention create web db ``` 上述命令创建了一个 intention,允许 `web` 服务访问 `db` 服务。 #### 5. 监控和日志 为了监控 Consul 的运行状态,可以查看其日志输出。在 Docker 中,可以使用以下命令查看日志: ```bash docker logs consul ``` 此外,可以通过 Consul 的 HTTP API 获取集群状态信息: ```python import requests response = requests.get("http://localhost:8500/v1/status/leader") print(response.json()) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值