Apache zookeeper docker运行命令--发布值选项?

Apache zookeeper docker运行命令--发布值选项?,apache-zookeeper,Apache Zookeeper,我想用docker来运行zookeeper图像。指令命令是 docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper confluent/zookeeper 我不清楚-p选项,这三个-p选项在这个zookeeper示例中是什么意思?以及为什么我们在一个单p选项中有两个相同的端口值。我希望是2181:localhost,而不是2181:2181。标记指定您选择在容器中公开哪个容器(默认情况下它们都是关闭的)

我想用docker来运行zookeeper图像。指令命令是

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

我不清楚-p选项,这三个-p选项在这个zookeeper示例中是什么意思?以及为什么我们在一个单p选项中有两个相同的端口值。我希望是2181:localhost,而不是2181:2181。

标记指定您选择在容器中公开哪个容器(默认情况下它们都是关闭的)

使用:注释的目的是指示应将容器的哪个端口转发到localhost端口。
提到您的问题-映射端口如2181:localhost将毫无意义,因为localhost是自动推断的,但端口不是。Docker之所以让您选择,是因为端口2181可能在本地主机上被占用,因此它们让您可以自由选择要转发到的端口。

谢谢。所以这两个端口不一定是相同的。为什么一个zookeeper容器需要三个映射呢?我不能专门说zookeeper,但其他服务通常需要多个端口。例如,Elasticsearch—数据库访问需要9200,发现需要9300。