温馨提示:本文翻译自stackoverflow.com,查看原文请点击:couchdb - how to interpret the port information for docker containers
docker couchdb

couchdb - 如何解释Docker容器的端口信息

发布于 2020-03-27 16:19:06

我只是使用了一个示例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新手。

谢谢。

查看更多

查看更多

提问者
dot
被浏览
133
Nguyen Lam Phuc 2020-01-31 17:19

对于这种特定的容器……这是否意味着将主机计算机的端口5984映射到容器的5984?在server2的情况下,主机的端口25984是否映射到容器的5984?

是的,这意味着:

  • 主机的端口5984将映射到容器jj_server-0_1的端口5984
  • 主机的端口25984将映射到容器jj_server-2_1的端口5984
  • 请注意,所有的端口主机以及不同的容器必须是唯一的,而不同的容器可以公开相同的端口。含义jj_server-0_1并且jj_server-2_1可以同时暴露端口5984

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

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