启动领事在docker不公开http端口
我按照cosul docker hub文档中的说明在桉树云中启动服务器。 然而,除了使用本地主机的Http端口没有被暴露出来
export CONSUL_LOCAL_CONFIG=/root/consul.json
从1
docker run -d --net=host -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -bind=127.0.0.1 -bootstrap-expect=1
把绑定地址作为127.0.0.1是不会启动服务器; 给IP地址,服务器正在启动,但是bot可以访问。 我也尝试了-P和-P 8500:8500。 仍然无法从另一台机器连接。
请注意,这台机器有一个私人IP以及公共IP。
所以我猜测这就是为什么-net主机没有启动的绑定地址仍然不清楚。 我find两个类似的线程可以解释这一点
在docker run命令中提到–net = host时,Docker容器不公开端口
https://github.com/docker/docker/issues/13914
感谢Rishiloyola的评论
docker run -d -p 8400:8400 -p 8500:8500/tcp -p 8600:53/udp -e 'CONSUL_LOCAL_CONFIG={"acl_datacenter":"dc1","acl_default_policy":"deny","acl_down_policy":"extend-cache","acl_master_token":"the_one_ring","bootstrap_expect":1,"datacenter":"dc1","data_dir":"/usr/local/bin/consul.d/data","server":true}' consul agent -server -bind=127.0.0.1 -client=0.0.0.0
客户端从另一台机器
curl 10.XXX:8500/v1/catalog/services {"consul":[]}
编辑
如果您需要运行没有ACL的testing
docker run -d -p 8400:8400 -p 8500:8500 / tcp -p 8600:53 / udp -e'CONSUL_LOCAL_CONFIG = {“bootstrap_expect”:1,“data_dir”:“/ usr / local / bin / consul.d / data“,”server“:true}'consul agent -server -bind = 127.0.0.1 -client = 0.0.0.0 -ui
和
去testing
curl -X PUT -d '{"Datacenter": "dc1", "Node": "bing", "Address": "www.bing.com", "Service": {"Service": "search", "Port": 80}}' myip:8500/v1/catalog/register
为什么你不尝试docker撰写
这是一个简单的docker.yml文件给领事
version: '2' services: consul: container_name: consul hostname: consul image: progrium/consul volumes: - /data - /config - ./consul/consul_ui:/ui ports: - "8300:8300" - "8400:8400" - "8500:8500" - "8600:8600" environment: - DOCKER_IP=$DOCKER_IP command: -server -bootstrap -data-dir /data -ui-dir /ui