[Docker] 도커 컨테이너 네트워크
by Choi HyeSun
도커 컨테이너 네트워크
-
Docker 컨테이너끼리 통신할 때는 Docker 네트워크를 통해 수행
-
Docker는 기본 네트워크 값으로 bridge, hosts, none 세 개의 네트워크를 만듦
Docker 네트워크 목록 표시
-
Docker network ls [옵션]
-
주요 옵션
-
-f, –filter=[] : 출력을 필터링
-
--no-trunc : 상세 정보를 출력
-
-q, –quiet : 네트워크 ID만 표시
-
네트워크 목록 표시 (예제)
-
따로 추가한게 없으므로 기본 네트워크 세 개가 추가됨
-
표시할 네트워크의 상세 정보 확인 : –no-trunc 옵션
-
네트워크 ID만 확인할 경우 : -q 또는 –quiet 옵션
-
필터링을 하고 싶을 때 : -f 또는 –filter 옵션
- 필터링시 key=value 형태로 지정
필터링값 | 설명 |
---|---|
driver | 드라이버 지정 |
id | 네트워크 ID |
label | 네트워크에 설정된 라벨(label=<Key> 또는 <Key>=<value>로 지정 |
name | 네트워크명 |
scope | 네트워크의 스코프(swarm/global/local |
type | 네트워크의 타입(사용자 정의 및 네트워크 custom/정의 완료 네트워크 builtin) |
네트워크 목록 표시의 필터링 (예제)
- 브리지 네트워크의 네트워크 ID만을 목록으로 표시
컨테이너 시작 및 네트워크 확인 - 기본값 (예제)
-
네트워크를 명시적으로 지정하지 않고 Docker 컨테이너를 시작하면 기본값인 ‘bridge” 네트워크로 Docker 컨테이너를 시작
-
네트워크 미지정으로 컨테이너 시작
-
네트워크 확인
- NetworkID : 브릿지 네트워크 914f387eab6b로 컨테이너가 시작하는 것을 볼 수 있음
네트워크 작성
-
docker network create [옵션] 네트워크
-
주요 옵션
- --driver, -d : 네트워크 브리지 또는 오버레이(overlay) & 커스텀 네트워크 , 기본값은 bridge
오버레이 네트워크 : 여러 개의 호스트에 걸쳐있는 네트워크
-
--ip-range : 컨테이너에 할당하는 IP 주소의 범위 지정
-
--subnet : 서브넷을 CIDR 형식으로 지정
-
--ipv6 : ipv6 네트워크를 유효화할지 말지(true/false)
-
-label : 네트워크에 설정하는 라벨
브리지 네트워크 작성 (예제)
- web-network라는 이름의 브리지 네트워크를 작성
- 작성한 네트워크 확인
-
사용자가 생성한 네트워크는 기본 브리지 네트워크와 이름 해결 구조가 다름
-
사용자 정의 네트워크를 사용하는 편이 보다 유연하고 쉽게 네트워크 구성 관리를 할 수 있음
-
기본 브리지 네트워크 사용 : link 기능과 같이 /etc/hosts 파일에 의존적
-
사용자 정의 네트워크 : 내장된 DNS 서버에 의해 이름 해결
-
네트워크 연결
-
docker network connect [옵션] 네트워크 컨테이너
- Docker 컨테이너를 Docker 네트워크에 연결
-
docker network disconnect [옵션] 네트워크 컨테이너
- 네트워크에서 연결을 해제할 때
-
지정할 수 있는 주요 옵션
-
--ip : IPv4 주소
-
--ip6 : IPv6 주소
-
--alias : 별칭명
-
--link : 다른 컨테이너에 의한 링크
-
네트워크에 대한 연결 (예제)
-
네트워크에 대한 연결
-
sample 컨테이너를 web-network 네트워크에 연결
-
연결하고나면 동일 네트워크상 다른 컨테이너와 통신 가능
-
연결은 IP 주소 뿐만 아니라 컨테이너명 혹은 컨테이너 ID도 그대로 사용할 수 있음
-
- 컨테이너 네트워크 확인
네트워크를 지정한 컨테이너 시작 (예제)
- 컨테이너 시작 시 네트워크 연결하기
네트워크에 대한 연결 해제 (예제)
- 네트워크 연결 해제
네트워크 상세 정보 확인
- docker network inspect [옵션] 네트워크
네트워크 상세 정보 표시 (예제)
-
web-network 이름의 네트워크 상세 정보 표시
-
서브넷 : 172.19.0.0/16
-
게이트웨이 : 172.19.0.1
-
1개의 컨테이너 가동중 - sample2(172.19.0.3)
-
네트워크 삭제
- docker network rm [옵션] 네트워크
네트워크 삭제 (예제)
- 선작업) docker network disconnect 명령을 이용하여 연결 중인 모든 컨테이너와 연결을 해제
- 네트워크 삭제
Subscribe via RSS