Какой эквивалент docker-compose для запуска docker --publish-all? - PullRequest
0 голосов
/ 26 октября 2018

Docker предоставляет опцию --publish-all для docker run.

--publish-all , -P :        Publish all exposed ports to random ports

Что будет эквивалентно при использовании docker-compose? Я просмотрел докер, который создал документы cli и yml, и ничего подобного не нашел.

Для контекста, я собираюсь сделать это с Elasticsearch, как рекомендовано в их документации для развертывания в производство. См. # 4 здесь .

Образ предоставляет порты TCP 9200 и 9300. Для кластеров это рекомендуется рандомизировать опубликованные порты с --publish-all, если вы не закрепляете один контейнер на хост.

1 Ответ

0 голосов
/ 26 октября 2018

Нет такой опции, как эта.

Но это можно сделать с помощью конфигурации docker-compose.yaml.

Вы можете указать портов в следующем формате:

ports:
 - "9200"
 - "9300"

Затем на docker-compose up -d он опубликует эти порты на случайные порты хоста (из локального теста):

~ ➜ docker-compose ps
       Name                     Command               State                        Ports
--------------------------------------------------------------------------------------------------------------
elasticsearch_test   /usr/local/bin/docker-entr ...   Up      0.0.0.0:32769->9200/tcp, 0.0.0.0:32768->9300/tcp

И вы можете запросить его так:

~ ➜ curl -XGET 127.0.0.1:32769
...