2016-12-08 4 views
1

Я хочу использовать докер, чтобы запустить изображение zookeeper. Команда инструкциякоманда запуска docker - опция публичного значения?

docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper confluent/zookeeper 

Я не ясно, с опцией -p, то, что делает эти три «-p» варианты означают в этом Zookeeper примере? и почему у нас есть одно и то же значение порта в одном -p вариантах. Я бы ожидал, что 2181: localhost, а не 2181: 2181.

ответ

1

Флаг -p указывает, какой контейнер вы выставляете в контейнере (все они по умолчанию закрыты).

Цель использования: аннотация состоит в том, чтобы указать, какой порт контейнера должен быть перенаправлен на локальный порт. Ссылаясь на ваш вопрос - сопоставление порта как 2181: localhost ничего не значит, потому что localhost выведен автоматически, но порт нет. Причина, по которой Docker дает вам выбор, заключается в том, что порт 2181 может быть занят на вашем локальном хосте, поэтому они дают вам свободу выбора порта по вашему выбору для продвижения вперед.

+0

Спасибо. Таким образом, эти два порта не должны быть одинаковыми. И почему нам нужно три отображения для контейнера zookeeper? – nathan

+0

Я не могу сказать специально для zookeeper, но для других служб часто требуется более одного порта. Например, Elasticsearch - требует 9200 для доступа к базе данных и 9300 для целей обнаружения. –

Смежные вопросы