Docker container간 연결 오류

tkddls8848·2022년 2월 25일
0

NARA-API

목록 보기
7/17
Error: connect ECONNREFUSED 127.0.0.1:5000

프론트엔드 container와 백엔드 container 간의 연결의 오류로 인해 발생한 에러이다.
각 서버는 localhost를 바라보고 있으나, 도커에 올라간 각 컨테이너에서 localhost는 내 접속환경의 주소가 아니라 각 컨테이너에 배정된 주소를 뜻하기에 각 컨테이너가 localhost로 통신하는 것이 아니라 각 컨테이너 자신을 호출하게 되는 것이다. AWS에서 한 인스턴스 안에 두 서버가 동작하는 것이 아리나 두 인스턴스 각각에 각자 서버가 작동하고 있는 형태라고 생각하면 편하다.

해결을 위해 host.docker.internal을 환경변수로 지정하는 방법을 알아보았으나 해결되지 않아 다른 방법을 찾았다.

다소 무식한 방법으로 임시 해결했다.
직접 컨테이너간 연결 네트워크를 만들고 각 컨테이너의 ip를 직접 지정해줬다.

  • 네트워크 생성 명령
docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 broker
  • docker-compose.yml
version: "3"

networks: 
  broker-net: 
    external: 
      name: broker 
services:
  nara-back:
    networks: 
      broker-net: 
        ipv4_address: 172.18.0.2
    image: nara_back
    stdin_open: true
    ports:
      - "5000:5000"
  nara-front:
    networks: 
      broker-net: 
        ipv4_address: 172.18.0.3
    image: nara_front
    stdin_open: true
    ports:
      - "3000:3000"

https://log-laboratory.tistory.com/204

profile
매일 배워 나갑니다.

0개의 댓글