도커의 네트워크
: 컨테이너를 생성하면 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
'Container > Docker' 카테고리의 다른 글
[도커] 컨테이너와 자원 (0) | 2021.08.24 |
---|---|
도커 컨테이너 로깅 (0) | 2021.08.24 |
도커 애플리케이션 실행 (컨테이너로 애플리케이션 실행) (0) | 2021.08.23 |
도커 컨테이너 포트포워딩 (0) | 2021.08.23 |
도커 이미지 및 컨테이너 기초 [docker 기초] (0) | 2021.08.22 |