본문 바로가기

Docker

[Docker] 도커 네트워크 컨테이너 간 통신하기

 

관련있는 이전글

https://k-sky.tistory.com/313

 

[Docker] 여러개의 컨테이너 연결하기 - Docker network

1. Docker network란?- 도커 컨테이너는 분리된 파일 시스템과 네트워크를 갖고있어서 설정하지 않으면 파일 시스템과 네트워크 통신이 불가능함- network를 통해서 도커 컨테이너끼리 통신할 수 있게

k-sky.tistory.com

 

 

1. 도커 네트워크 정보 확인하기

 

docker network inspect {네트워크명}

 

 

 

2. 컨테이너 A에서 ping을 보내서 컨테이너 B와 네트워크 연결이 되어있는 지 확인해보기

 

docker exec -it -u 0 {컨테이너명 또는 ID} /bin/bash
apt update
apt install iputils-ping
ping {네트워크 IP}
ping {컨테이너명}
ping {network-alias}


# 실행 예시
docker exec -it -u 0 2dc4c06f14d4 /bin/bash
apt update
apt install iputils-ping
ping 172.18.0.6
ping finmanager_backend
ping finmanager-backend

 

 

3. 코드에 적용하기 - url 설정

컨테이너 A에서 컨테이너 B로 Webclient 요청을 보내고 응답 받은 것을 처리하는 로직에서 url 설정

(http를 안넣거나 포트를 안넣거나 별칭에 언더바를 사용해서 통신이 안되는 에러를 겪다가 최종 정리한거! 아이피로 통신하면 금방 해결했겠지만 아이피는 변경이될 수 있으므로 네트워크명이나 네트워크에서 사용할 별칭을 사용해서 설정해주는 것이 좋다.)

# 컨테이너 이름으로 통신하기
financial.manager.url=http://finmanager_backend:58088/chat/financial

# 네트워크 별칭(alais)로 통신하기
financial.manager.url=http://finmanager-backend:58088/chat/financial

# 네트워크 IP로 통신하기
financial.manager.url=http://172.18.0.6:58088/chat/financial