컨테이너 네트워크
Container Network
컨테이너 네트워크 구조
: L2 통신 기반
: 컨테이너 생성 시 생성되는 veth 인터페이스 이용.
: docker0(172.17.X.Y)를 통해 외부와 통신한다.
네트워크 종류
- Default Bridge Network : Docker 제공, 개발환경 테스트에 적합.
- User-Defined Bridge Network : 같은 host 내 실행중인 컨테이너 간 연결. 실제 프로덕션 환경에 적합.
- Overlay Network : Docker Swarm용
컨테이너 간 네트워크 통신
: Container IP로 통신 > 컨테이너 ip로 통신. 단, 재시작 시 ip가 변경되면 접속 불가.
: Container Name으로 통신 > --link 옵션을 통해 컨테이너 이름으로 통신.(권장x)
: User-defined network > 사용자 지정 네트워크로, 원하는 ip 대역을 지정할 수 있다.
- docker create network [네트워크 이름]
- docker ls network
- docker rm network [네트워크 이름]
포트 포워딩
Port-forwarding
: 컨테이너로의 외부 연결 허용
: Iptables rule을 통해 포트를 노출 시킨다.
- -p hostPort:containerPort
- -p containerPort / -p
컨테이너 빌드/운영
Docker Compose
: 단일 서버에서 여러 컨테이너를 하나의 서비스로 정의해 묶음으로 관리할 수 있는 도구.
: compose.yaml 파일에 서비스할 컨테이너를 정의한다.
명령어 - yaml 문법 / command 명령
- version : 도커 컴포즈 파일의 버전.
- service : 컨테이너 실행 단위
- build : bulid할 Dockerfile의 경로
- ports [호스트]:[컨테이너] : 포트포워딩
- volume : 바인드 마운트, 볼륨 지정
- image : 실행할 이미지 지정.
- command : 컨테이너에서 실행될 명령
- link : 연계할 컨테이너
- expose : 연계 컨테이너에 공개할 포트
- environment : 환경변수 설정
- restart : 종료 시 적용할 restart 정책
- depends_on : 컨테이너 간 종속성 정의
'공부 > 클라우드' 카테고리의 다른 글
클라우드 시스템(6) - Container Management (0) | 2024.12.03 |
---|---|
클라우드 시스템(5) - Docker (0) | 2024.12.03 |
클라우드 시스템(4) - Virtualization (0) | 2024.10.23 |
클라우드 시스템(3) - High Throughput Computing (0) | 2024.09.13 |
클라우드 시스템(2) - History and Model (7) | 2024.09.12 |