이 글은 Udemy의 "【한글자막】 Docker & Kubernetes : 실전 가이드" 강의의 학습 노트입니다.
https://www.udemy.com/course/docker-kubernetes-2022/
도커에서 기본적인 통신에 대해서 설명한다.
도커에서 네트워크를 통해 통신하는 경우는 여러 개가 있다.
3번의 경우가 가장 많이 쓰이고 중요하다.
컨테이너 내부에서 단순히 외부의 HTTP 연결은 특별한 설정 없이 작동한다.
ex) 호스트머신에 DB 서버가 있고, 컨테이너에서 해당 DB를 접속하는 경우
host.docker.internal
로 접속하면 도커에서 자동으로 연결시켜준다.
docker container inspect <container ID>
를 통해 컨테이너의 정보를 조회하여 내부 ip 주소를 확인할 수 있다.
하지만 매번 변할 수 있고, 매번 확인하기 번거롭기 때문에 이렇게 잘 사용하지 않는다.
docker network create <network name>
해당 명령어를 통해 도커 네트워크를 하나 생성한다. (자동 생성 안됨)
이후에 컨테이너를 실행 시
--network <network name>
옵션을 통해 네트워크를 지정한다.
그 후 소스코드에서 단순히 컨테이너 이름을 통해 접속을 하면 된다. 그러면 자동으로 도커에서 해당 주소를 변환하여 연결해준다.
네트워크 생성 시 --driver
옵션을 통해 driver를 설정할 수 있다.
기본적으로는 bridge이다. 같은 네트워크에서 서로 컨테이너 이름을 찾을 수 있는 옵션이다.
일반적으로는 bridge를 많이 사용한다.