Запуск Консула в докере не выставляет 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
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