320x100
320x100

도커의 네트워크

: 컨테이너를 생성하면 veth로 시작하는 네트워크 인터페이스가 동시에 생성된다

: 각 컨테이너에는 eth0라는 네트워크 인터페이스가 존재하고 이는 P2P 방식으로 veth와 연결됨

: 각 veth들은 docker0라는 브릿지에 연결되며 docker0는 호스트OS의 eth0와 연결됨 

: 컨테이너-veth-docker0-호스트OS 으로 연결

 

 

 

도커 네트워크 관련 명령어

docker network [옵션] [커맨드] 

: 도커와 관련된 네트워크 오브젝트 목록을 확인하거나 컨테이너와 브릿지의 연결 설정 등 수행

 

 

브릿지 생성 및 컨테이너 연결

docker network create --driver mookji_bridge

: 사용자 정의 브릿지 생성

 

docker run -it --name mohaemookji --net mookji_brigdge centos

: centos 이미지를 mohaemookji 라는 이름의 컨테이너로 실행하고 mookji_bridge와 연결

 

docker network disconnect mookji_bridge mohaemookji

: 브릿지를 컨테이너에서 연결 해제 

 

 

 

호스트 네트워크 컨테이너 생성

docker run -it --name mohaemookji --net host centos

: 호스트OS의 네트워크 인터페이스를 적용

: 별도의 포트포워딩이 필요 없음

 

 

※ none 네트워크

: 외부와 단절된 컨테이너

 

※ 컨테이너 네트워크

: 다른 컨테이너의 네트워크 네임스페이스 환경을 공유하는 컨테이너

: 공유되는 속성은 내부 IP와 MAC주소

docker run -it -d -- name container_1 centos
docker run -it -d --name container_2 --net container:network_container_1 centos

: container2가 container1의 네트워크 환경을 공유

 

 

 

브리지 네트워크와 net alias

: 컨테이너에 아이피 대신 별명을 붙혀 관리

 

docker run -it -d --name container1 --net mookji_bridge \ 

--net alias mohae centos

docker run -it -d --name container2 --net mookji_bridge \

--net alias mohae centos

: 각 컨테이너에는 순차적으로 IP 부여됨

: 이후 mohae로 ping을 보내면 두 컨테이너에 순차적으로 패킷이 보내짐

: 도커에 내장된 DNS가 IP변환을 하기 때문

 

 

 

MacVLAN 네트워크

: 호스트의 네트워크 인터페이스를 가상화 하여 물리 네트워크 환경을 컨테이너에 동일하게 제공

: 실제 네트워크 장비의 IP를 할당 받음

: MacVLAN을 사용하는 컨테이너들과 동일한 IP 대역을 사용하는 서버 및 컨테이너들은 서로 통신 가능

 

 

 

 

 

 

Refference

 

6장. 도커 네트워크 구조

이 포스팅은 위키북스의 시작하세요! 도커/쿠버네티스 를 보고 공부한 내용을 바탕으로 하고 있습니다. (문제가 된다면 비공개 처리하겠습니다😂😂)앞서 언급한 바와 같이 도커는 172.17.0.X를

velog.io

 

300x250
728x90