如何解释码头集装箱的端口信息

问题描述 投票:0回答:2

我只是使用了一个示例docker compose yml文件创建了一些容器,最终我得到了这个:

PS C:\Users\jj> docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                  NAMES
70ef2ac09df0        couchdb:latest      "tini -- /docker-ent…"   9 seconds ago       Up 6 seconds        4369/tcp, 9100/tcp, 0.0.0.0:25984->5984/tcp, 0.0.0.0:25986->5986/tcp   jj_server-2_1
4ee92fc98788        couchdb:latest      "tini -- /docker-ent…"   9 seconds ago       Up 5 seconds        0.0.0.0:5984->5984/tcp, 4369/tcp, 9100/tcp, 0.0.0.0:5986->5986/tcp     jj_server-0_1
37c1a3a9be48        couchdb:latest      "tini -- /docker-ent…"   9 seconds ago       Up 5 seconds        4369/tcp, 9100/tcp, 0.0.0.0:15984->5984/tcp, 0.0.0.0:15986->5986/tcp   jj_server-1_1

试图了解端口信息。

 4369/tcp, 9100/tcp, 0.0.0.0:15984->5984/tcp, 0.0.0.0:15986->5986/tcp   jj2_server-1_1

这是我所使用的docker-compose.yml部分内容:

  server-0:
    environment:
      COUCHDB_PASSWORD: -pbkdf2-847043acc65626c8eb98da6d78682fbc493a1787,f7b1a3e4b624f4f0bbfe87e96841eda0,10
      COUCHDB_SECRET: 0123456789abcdef0123456789abcdef
      COUCHDB_USER: couchdb
      NODENAME: couchdb-0
    image: couchdb:latest
    networks:
      network:
        aliases:
          - couchdb-0
    ports:
      - "5984:5984"
      - "5986:5986"
    volumes:
      - "volume-0:/opt/couchdb/data"

完整的yml文件可在此处找到:https://github.com/apache/couchdb-docker/issues/74我唯一更改的是节点的名称。

对于这种特定的容器...这是否意味着将主机计算机的端口5984映射到容器的5984?对于server2,主机计算机的端口25984被映射到容器的5984吗?

有人可以解释其他一些端口吗? 4369似乎在某些情况下用于集群……例如RabbitMQ ..但我不确定在这里是否适用于沙发床。9100也是如此...不确定为什么会创建它。抱歉,我是docker noob。和一个ouchDB新手。

谢谢。

docker couchdb
2个回答
1
投票
对于这种特定的容器...这是否意味着主机机器的端口5984是否映射到容器的5984?在这种情况下server2,将主机计算机的端口25984映射到容器的5984?

是,它表示:

    主机的端口5984将被映射到容器jj_server-0_1的端口5984
  • 主机的端口25984将映射到容器jj_server-2_1的端口5984
  • 请注意,主机的所有端口
  • 内部以及不同的容器都必须唯一,而不同的容器可以暴露相同的端口。表示jj_server-0_1jj_server-2_1都可以暴露端口5984
有人可以解释其他一些端口吗? 4369似乎用于在某些情况下会聚类...例如RabbitMQ ..但我不确定是否沙发床就是这种情况。 9100也一样...不确定为什么被创建。抱歉,我是docker noob。和一个ouchDB新手。

您可以在EXPOSE 5984 4369 9100中找到这些其他端口,例如通过命令Dockerfile创建4369或9100。这只是指示该映像/容器将监听这些端口的便捷且可选的方式,您可以根据需要公开或链接它们到主机。


1
投票
是的,docker的此功能称为公开模式,其中某些端口公开给主机系统,因此您可以从Docker外部访问它们。就像在您的示例中一样,端口4369仅在内部使用,并且未暴露,而其他2在外部,可以从外部访问。

也可以看到,所有3个容器都将相同的内部端口暴露给某些主机端口,这意味着您可以通过端口5984、15984和25984从外部访问它们,同样适用于5986、15986、25986。

0.0.0.0:25984->5984/tcp, 0.0.0.0:25986->5986/tcp jj_server-2_1 0.0.0.0:5984->5984/tcp, 4369/tcp, 9100/tcp, 0.0.0.0:5986->5986/tcp jj_server-0_1 0.0.0.0:15984->5984/tcp, 0.0.0.0:15986->5986/tcp jj_server-1_1

我也不是couch db的用户,因此无法从经验中告诉您,但这是指向官方文档的链接,其中包含端口及其用法的说明CouchDB ports
© www.soinside.com 2019 - 2024. All rights reserved.