Запуск Консула в докере не выставляет http порты

Я следовал инструкциям в документации по cosul docker hub, чтобы запустить сервер в облаке Eucalyptus. Однако, кроме использования локального хоста, порт 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-адрес, сервер запускается, но бот доступен. Я также пробовал -P и -p 8500:8500. Все еще не может подключиться с другой машины.

Обратите внимание, что эта машина имела как частный IP, так и публичный IP.

Поэтому я предполагаю, что причина, по которой -net-host не запускается по адресу привязки, до сих пор неясна. Я нашел две похожие темы, которые могут объяснить это

Контейнер Docker не предоставляет порты, если в команде docker run упоминается --net=host

https://github.com/docker/docker/issues/13914

2 ответа

Почему бы вам не попробовать docker-compose

это простой файл 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

Благодаря комментарию 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.X.X.X:8500/v1/catalog/services
{"consul":[]}

редактировать

Если вам нужно запустить без ACL для тестов

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}'агент консула -server -bind=127.0.0.1 -client=0.0.0.0 -ui

а также

Тестировать

 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/)

Другие вопросы по тегам