启动领事在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 

(来自https://jlordiales.me/2015/01/23/docker-consul/

为什么你不尝试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