본문 바로가기

Cloud/Docker

Docker Container Network

 Docker Container는 bridge, overlay, macvlan network 등을 통해서 네트워크를 형성한다. 컨테이너 관점에서 볼 때 네트워크 인터페이스로는 IP, 게이트웨이, 라우팅 테이블, DNS등이 있다. 컨테이너 관점에서 네트워크를 살펴본다.

 컨테이너 생성 시 포트는 -p 혹은 --publish 옵션을 통해  오픈할 수 있다. 포트 오픈 시 호스트의 포트와 컨테이너의 포트를 매핑해주는 룰이 생기며 다양한 예시들을 가지고 있다.

Falg Value Description
-p 8080:80 호스트의 포트 8080과 컨테이너 포트 80을 매핑
-p 192.168.1.100:8080:80 호스트의 포트 8080과 192.168.1.110:80을 매핑
-p 8080:80/udp 호스트의 포트 8080과 컨테이너의 UDP 포트 80을 매핑
-p 8080:80/tcp -p 8080:80/udp

호스트의 TCP 포트 8080을 컨테이너의 TCP 포트 80과 매핑

호스트의 UDP 포트 8080을 컨테이너의 UDP 포트 80과 매핑

컨테이너는 /etc/hosts, /etc/resolv.conf의 Docker 데몬의 DNS 설정을 상속받는다. 이런 설정을 제어할 수 있다.

Value Description
--dns DNS 서버 주소, 여러 DNS 등록시 --dns 플래그를 사용
--dns-search 여러 DNS 검색을 위해서 사용
--dns-opt DNS 옵션 및 해당 값을 나타내는 키-값 쌍
--hostname 컨테이너가 자체적으로 사용하는 호스트 이름, 지정하지 않으면 컨테이너 ID가 기본값