docker를 실행하던 중 Host os 에서 firewalld 설정을 변환시켜 docker chain 이 꼬이는 일이 발생했다. 이로 인해 docker container의 network가 이상이 생겼다. 해결은 했는데, docker의 network가 어떻게 이루어지는 지 궁금해졌다.
오늘 호스팅은 docker network에 관해 알아보고 다음에는 docker and iptables에 대해 알아보자
개요
Docker 컨테이너 및 서비스가 강력한 이유는 이들을 함께 연결할 수 있다는 것이다. Docker를 사용하여 플랫폼에 구애받지 않고 관리할 수 있다. 몇 가지 기본 Docker 네트워킹 개념을 익히고 이러한 기능을 최대한 활용할 수 있도록 기반 지식을 쌓아보자.
이 포스팅에서는 Docker 네트워크의 작동 방식에 대해 OS별로 자세히 설명하지는 않는다. 자세한 사항은 Docker and ㅑIptables를 포스팅할 때 적겠다 이번 포스팅은 docker network에 대한 명령어에 대한 용어들을 살펴보자.
Network drivers
기본적으로 여러 드라이브가 존재하며 아래와 같은 기능을 제공한다.
- bridge: 기본 네트워크 드라이버이다. 드라이버를 지정하지 않으면 이 유형의 네트워크를 만들 수 있다. 브리지 네트워크는 일반적으로 응용프로그램이 통신해야 하는 독립형 컨테이너에서 실행될 때 사용된다.
- host: 독립 실행형 컨테이너의 경우 컨테이너와 Docker 호스트 간의 네트워크 분리를 제거하고 호스트의 네트워킹을 직접사 용한다.
- overlay: overlay 네트워크는 여러 도커 데몬을 연결하고 스웜 서비스가 서로 통신할 수 있도록 한다. 오버레이 네트워크를 사용하여 스웜 서비스와 독립 실행혀 컨테이너 간 또는 서로 다른 Docker 데몬에 있는 두 독립 실행형 컨테이너 간의 통신을 용이하게 할 수 있다. 이 전략을 사용하면 컨테이너 간의 OS 수준 라우팅을 수행할 필요가 없다.
- ipvlan: IPv4 및 IPv6 주소 지정에 대한 완벽한 제어 기능을 사용자에게 제공한다. VLAN 드라이버는 운영자에게 계층 2 VLAN 태깅과 심지어 IPv3 라우팅에 대한 완벽한 제어를 제공함으로써 언더레이 네트워크 통합에 관심이 있는 사용자를 위해 구축된다.
- macvlan: Macvlan 네트워크를 사용하면 컨테이너에 MAC 주소를 할당하여 네트워크의 실제 장치로 표시할 수 있다. Docker 데몬은 MAC 주소로 컨테이너에 트래픽을 라우팅합니다. Macvlan 드라이버를 사용하는 것은 때때로 Docker 호스트의 네트워크 스택을 통해 라우팅되는 것이 아니라 실제 네트워크에 직접 연결될 것으로 예상되는 레거시 응용 프로그램을 처리 할 때 가장 좋은 선택이다.
- none: 이 컨테이너에 대해 모든 네트워킹을 사용하지 않도록 설정한다. 일반적으로 사용자 지정 네트워크 드라이버와 함께 사용된다. 스웜 서비스에 사용할 수 없다.
- Network plugins: 도커와 함께 타사 네트워크 플러그인을 설치하고 사용할 수 있다. 이러한 플러그인은 도커 허브 또는 타사 공급업체에서 구입할 수 있다.
자세한 설명은 다음 포스팅에서 하자.
참고
'기타 팁들' 카테고리의 다른 글
Websocket (0) | 2023.05.05 |
---|---|
Celery shared_task (0) | 2023.05.03 |
Script 실행 시 경로 포함하기 (0) | 2023.04.28 |
Ssh 접속 관련 실수 (0) | 2022.12.09 |
Django Installed Package Script (0) | 2022.12.09 |