[Docker] 컨테이너 간 통신 방법

jongmin-oh·2023년 5월 19일

EC2에서 여러 컨테이너를 띄웠을 때, 서로간의 통신 방법

문제 발생:

  • 도커 컴포즈로 4개의 컨테이너를 한꺼번에 관리하다가 이번에 각각의 컨테이너로 관리하는게 좋겠다 싶어 바꾸기로 결정했다.
    : 배포할때는 컴포즈로 엮는게 좋지만, 잦은 수정이 필요할땐 하나씩 개별관리하는게 편했고, 어차피 각각의 컨테이너는 출시하게되면 각각의 서버에 하나씩 들어가게 되기 때문에 변경했다. 하지만, 각각의 컨테이너가 서로 Host 주소를 모르는 것이 아닌가
    docker-compose로 묶으면 컨테이너 이름이 호스트 이름이 되어 셋팅할때 편했다.

    그러나 지금은 직접 알아내야한다!!

해결:

각각의 컨테이너 포트에 대해 , 해당 포트가 어떤 호스트 이름을 가지고 있는지 알아내어
호스트 네임을 수정해주면 된다.

기본적인 것이지만, 이후에 반복해서 나타날 문제라고 생각해서 정리해보자.

해당 포트의 호스트 주소를 알아내는 방법

docker container inspect <container_name> --format '{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}{{range .NetworkSettings.Ports}}{{.}} {{end}}'

172.17.0.3 [{0.0.0.0 8200} {:: 8200}]

해당 컨테이너는 8200번 포트를 사용하고있고, 이 컨테이너의 도커 내 호스트 주소는

172.17.0.3 번이다, 그래서 컨테이너 이름으로 되어있던 주소를 변경하면 정상적으로 컨테이너끼리 통신할 수 있다.

profile
Technical Problem Solver (기술로 문제를 해결하는 사람)

0개의 댓글