본문 바로가기
Q&A2018년 12월 18일1분 읽기

Docker 컨테이너끼리 통신하는 방법

도
도커입문자
조회 2104댓글 4

Docker에서 웹서버 컨테이너와 DB 컨테이너가 서로 통신하려면 어떻게 해야 하나요?

localhost로 접근이 안 되는데 무슨 설정이 필요한가요?

댓글 4

코코딩하는민수7년 전

docker-compose를 쓰면 같은 네트워크에 자동으로 들어가서 서비스 이름으로 통신할 수 있습니다.

services:
web:
image: node:14
depends_on:
- db
db:
image: mysql:8

web에서 db:3306으로 접근하면 됩니다.

도도커입문자(guest)코딩하는민수7년 전
서비스 이름이 호스트명이 되는 거군요! localhost가 아니라 db로 접근하면 되는 거네요.
코코딩하는민수코딩하는민수7년 전

맞습니다. docker-compose가 내부 DNS를 만들어줘서 서비스 이름으로 resolve됩니다.

도도커마스터(guest)7년 전
docker-compose 없이 할 때는 docker network create mynet으로 네트워크를 만들고, 각 컨테이너를 --network mynet으로 실행하면 됩니다.
Ctrl+Enter로 등록