как интерпретировать информацию о порте для docker контейнеров - PullRequest
0 голосов
/ 31 января 2020

Я просто использовал пример 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 Единственное, что я изменил, было имя узлов.

В случае этого указанного c контейнера ... означает ли это, что порт 5984 компьютера HOST сопоставлен с 5984 контейнера? А в случае server2 порт 25984 машин HOST сопоставлен с 5984 контейнера?

Может кто-нибудь объяснить некоторые другие порты? 4369, кажется, используется для кластеризации в некоторых случаях ... как для RabbitMQ ... но я не уверен, что это так для couchDB. То же самое касается 9100 ... не уверен, почему это создается. Извините, я docker нуб. и дивана нуб.

спасибо.

Ответы [ 2 ]

1 голос
/ 31 января 2020

В случае этого указанного c контейнера ... означает ли это, что порт 5984 машины HOST сопоставлен с 5984 контейнера? А в случае server2 порт 25984 машин HOST сопоставлен с 5984 контейнера?

Да, это означает, что:

  • Порт 5984 хост-машины будет сопоставлен к порту jj_server-0_1 контейнера 5984
  • порт хост-машины 25984 будет привязан к порту jj_server-2_1 контейнера 5984
  • Обратите внимание, что все порты в пределах * Машина 1015 * HOST, а также разные контейнеры должны быть уникальными, в то время как разные контейнеры могут открывать один и тот же порт. Значение jj_server-0_1 и jj_server-2_1 может предоставить порт 5984

Может кто-нибудь объяснить некоторые другие порты? 4369, кажется, используется для кластеризации в некоторых случаях ... как для RabbitMQ ... но я не уверен, что это так для couchDB. То же самое касается 9100 ... не уверен, почему это создается. Извините, я docker нуб. и couchDB noob.

Некоторые другие порты, такие как 4369 или 9100, создаются в результате выполнения команды EXPOSE 5984 4369 9100, которую вы можете найти в их Dockerfile . Это просто удобный и необязательный способ указать, что этот образ / контейнер будет прослушивать эти порты, и при необходимости вы можете выставить или связать их с вашим хост-компьютером.

1 голос
/ 31 января 2020

Да, эта функция 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

Я также не являюсь пользователем КБ, поэтому не могу сказать вам по опыту, но вот ссылка на официальную документацию с объяснением портов и их использованием порты CouchDB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...