Как мне получить два докеризованных приложения для общения по заданному порту? - PullRequest
2 голосов
/ 20 февраля 2020

Я пытаюсь заставить два докеризованных приложения общаться друг с другом на заданном порту в соответствии с моим файлом docker -compose.yml.

Они могут общаться друг с другом через порт app1: 61001 и app2: 61002, но мой друг говорит мне, что они должны иметь возможность общаться через порт 80. пример .. app2: 80, и что порты 61001 и 61002 должны быть только доступными портами, доступными из роя.

Сами приложения настроены на server.port = 80

Любая идея, как я могу заставить его работать, как подсказывает мой друг?

Вот файл docker comppose, который я используя:

docker составить

version: "3.5" 

services: 
  app1: 
    image: docker.artifactory.gr.gr.com/app1:latest 
    ports: 
      - "61001:80" 
    deploy: 
      replicas: 2
    networks:
      - custom-network

  app2:
    image: docker.artifactory.gr.gr.com/app2:latest
    ports:
      - "61002:80"
    deploy:
      replicas: 2
    networks:
      - custom-network

networks:
  custom-network:

My

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

сначала посмотрите, предоставляет ли ваша служба порт 80 с помощью команды docker-compose ps.
Если в этом случае, просто удалите следующий код обеих служб

    ports:
      - "61002:80"

, если нет, удалите

    ports:
      - "61002:80"

и добавьте

    expose: 80

и в своем скрипте приложения, чтобы вызвать одну службу, просто позвоните appN: 80

Я надеюсь, что понял ваш запрос и помог вам

0 голосов
/ 20 февраля 2020

App1 и App2 являются частью той же сети, которую вы назвали custom-network. Это означает, что внутренний порт, используемый контейнерами (тот, что справа, 80), виден из обоих приложений! Если вам нужно вызвать сервис из APP 1 в APP 2, вам просто нужно присвоить контейнеру имя

hostname: app2 // do the same for the other container
container_name: app2

Затем из app1 вы можете вызвать приложение, просто используя «app1: 80 / yourpath». Открытые порты видны вне сети.

Кроме того: Вы можете проверить подключение, подключившись к приложению app1 с помощью итеративной оболочки: https://gist.github.com/mitchwongho/11266726, а затем выполнив

ping app1

вы увидите, что app1 имеет внутренний IP-адрес и он доступен.

...