[Docker] 컨테이너간 통신 (with. network)

정석·2025년 5월 16일
1

문제 상황

개발 실무를 진행하다 같은 네트워크 환경 안에서 도커 컨테이너끼리 통신을 해야할 일이 생겼다. (Java 프로젝트 컨테이너 & mariaDB 컨테이너)

application.yml 내에서 DB 서버 즉, Java 프로젝트 서버와 같은 IP 를 기입하고 진행하였지만, 계속되는 DB Connection Error 보게 됐다.

해결책

같은 host 내의 컨테이너 끼리 통신 시 network 설정을 통해 동일한 네트워크에서 실행되도록 추가적인 프로세스가 필요.

0. 전용 network 생성

docker network create app-network

1. network 설정

  • 수정한 Docker-compose 파일 (Java Project)
version: '3.8'

services:
  app:
    build: .
    container_name: my-app
    ports:
      - "8080:8080"
      
****************** 추가한 부분 ******************
    networks:
      - app-network

networks:
  app-network:
    driver: bridge
****************** 추가한 부분 ******************

해당 내용을 추가하면, 도커파일을 통해 빌드될 때 네트워크 설정이 진행됨.

  • 수정한 Docker 실행 명령어 (mariaDB)
docker run -d \
  --name mariadb-v3 \
  --network app-network \
  -e MARIADB_ROOT_PASSWORD=password \
  -e MARIADB_DATABASE=sha-planing \
  -p 3306:3306 \
  mariadb:10.11

2. network 설정 확인

: docker network inspect 네트워크이름

만약, 연결되지 않았다면 ?

3. 수동으로 network 설정

: docker network connect app-network mariadb-v3

0개의 댓글