카테고리 없음

Docker Tip 컨테이너 통신

ㅈ현 2022. 6. 20. 16:27

docker컨테이너를 사용하며 컨테이너간 상호 통신을 사용해야할 때가 있다.
docker network 설정이 아닌 link방법

docker run 명령으로 실행시

docker run --link <컨테이너 이름>
 

위와같이 –link옵션을 지정하게 되면 해당 컨테이너에서 link를 걸게 된 컨테이너와 통신을 할 수 있게 된다.

예를 들어 DB 컨테이너와 flask 컨테이너가 있다고 가정해본다.
flask 컨테이너는 DB 컨테이너의 내용을 띄워야 하는 상황이다.

이때 docker의 사설IP나 포트를 사용해도 되지만, 다음과 같은 방법으로 편하게 사용이 가능함.

docker run -p 3306:3306 --name maria mariadb
docker run -p 5000:5000 --link maria python
 

이제 python 컨테이너에서는 maria 컨테이너로 접속하기 위해서 IP주소를 넣거나 localhost등을 사용할 필요 없이 maria라는 컨테이너 이름을 hostname으로 사용하면 된다.

만약 n개의 컨테이너와 통신할때면 --link 옵션을 n번 사용해주면 된다

docker-compsoe 로 실행시

docker-compose로 실행하게 되면 같은 compose내 모든 컨테이너들은 link되어 있으므로 특별한 설정 없이 상대 컨테이너의 이름으로 통신을 할 수 있게 된다.