首页 > 解决方案 > 如何解释 docker 容器的端口信息

问题描述

我刚刚使用了一个示例 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 的情况下,HOST 机器的端口 25984 映射到容器的 5984?

有人可以解释其他一些端口吗?在某些情况下,4369 似乎被用于集群……比如 RabbitMQ ……但我不确定 couchDB 是否是这种情况。9100 也是如此……不知道为什么会创建它。对不起,我是码头菜鸟。和一个 couchDB 菜鸟。

谢谢。

标签: dockercouchdb

解决方案


在这个特定容器的情况下......这是否意味着主机机器的端口 5984 映射到容器的 5984?而在 server2 的情况下,HOST 机器的端口 25984 映射到容器的 5984?

是的,这意味着:

  • 主机的 5984 端口将映射到容器jj_server-0_1的 5984 端口
  • 主机的 25984 端口将映射到容器jj_server-2_1的 5984 端口
  • 请注意,主机的所有端口以及不同的容器都需要是唯一的,而不同的容器可以暴露相同的端口。含义jj_server-0_1jj_server-2_1都可以暴露5984端口

有人可以解释其他一些端口吗?在某些情况下,4369 似乎被用于集群……比如 RabbitMQ ……但我不确定 couchDB 是否是这种情况。9100 也是如此……不知道为什么会创建它。对不起,我是码头菜鸟。和一个 couchDB 菜鸟。

EXPOSE 5984 4369 9100您可以在他们的Dockerfile中找到其他一些端口,例如 4369 或 9100 作为命令的结果。这只是一种方便且可选的方式来指示此映像/容器将侦听这些端口,如果需要,您可以将它们公开或链接到您的主机。


推荐阅读