Как я могу заставить мои два док-контейнера взаимодействовать друг с другом? - PullRequest
0 голосов
/ 30 марта 2019

Как мне заставить два моих док-контейнера взаимодействовать друг с другом на Localhost?

Я разделил свой проект на бэкэнд и интерфейс.Сейчас я пытаюсь запустить обе части в отдельных контейнерах док-станции, однако получаю отказ в соединении.Я попытался запустить оба в сети Docker, но, похоже, это не сработало.

Оба моих файла Docker выглядят как


COPY ./build/libs/demo-0.0.1-SNAPSHOT.jar /usr/app/

WORKDIR /usr/app

RUN sh -c 'touch demo-0.0.1-SNAPSHOT.jar'

RUN apk add --update \
    curl \
    && rm -rf /var/cache/apk/*

ENTRYPOINT ["java","-jar","demo-0.0.1-SNAPSHOT.jar"]

, а внешний интерфейс выполняет вызовы на внутренний сервер

protected <T> ResponseEntity<T> getRequest(String path, Class<T> responseType) {
        return restTemplate.getForEntity("http://localhost:8090/" + path, responseType);
    }

но я получаю

java.net.ConnectException: Connection refused (Connection refused)

Я запускаю оба своих контейнера через:

docker run -p 8090:8090 -d repo/back-end
docker run -p 8080:8080 -d repo/front-end   

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Спасибо за ответы, я добавил docker-compose.yml во внешнем интерфейсе

version: '3'
services:
  frontend:
    build: .
    ports:
      - "8080:8080"
networks:
  default:
    external:
      name: myNetwork

и в бэкэнде

version: '3'
services:
  backend:
    build: .
    ports:
      - "8090:8090"
networks:
  default:
    external:
      name: myNetwork

, а затем изменил мою службу отдыха, чтобы звонить на

private static final String prefix = "http://backend:8090/";
0 голосов
/ 30 марта 2019

В докере вы можете создать собственную сеть:

docker network create myNetwork

И запускать контейнеры внутри этой сети с помощью флагов --net и --name:

docker run -d -p 8000:8000 --net myNetwork --name backend backend-image
docker run -d -p 8001:8001 --net myNetwork frontend-image

Тогда вы сможете получить доступ к бэкенду, используя http://backend:8000 url из вашего контейнера веб-интерфейса.

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