Docker Component
- Docker Engine : 핵심 기능
- Docker Registry : 이미지 공개 및 공유
- Docker Compose : 여러 개의 컨테이너 구성 정보를 코드로 정의, 명령을 실행함으로써 애플리케이션의 실행환경을 구성하는 컨테이너들을 관리하기 위한 툴
- Docker Machine : 클라우드 환경에 Docker의 실행환경을 명령으로 자동 생성하기 위한 툴
- Docker Swarm : Docker 호스트를 클러스터링 하기 위한 툴
Docker 기술
- Namespace
- 접속한 게스트 별로 독립적인 공간을 제공하고 서로가 충돌하지 않도록 리소스를 격리시킴
- Mnt(파일 시스템 마운트): 호스트 파일 시스템에 구애받지 않고 독립적으로 파일 시스템을 마운트 하거나 원마운트 가능
- Pid(프로세스): 독립적인 프로세스 공간 할당
- Net(네트워크): namespace 간에 network 충돌 방지
- Ipc(System IPC): 프로세서 간의 독립적인 통신 통로 할당
- Uts(hostname): 독립적인 hostname 할당
- User(UID): 독립적인 사용자 할당
- Cgroup(Control Groups)
- 제어 가능 리소스: 메모리, CPU, I/O, 네트워크, Device 노드(/dev/)
- 자원에 대한 제어를 가능하게 해주는 리눅스 커널의 기능
- 시스템의 자원 할당, 우선순위 지정, 거부, 관리, 모니터링 등의 제어 기능을 수행 → 자원의 효율성 향상
- 단순 제공, 실제 자원 분배를 위해선 각 자원마다 해당하는 서브시스템이 필요
- Union File System(UFS)
- 도커가 관리하는 각 Layer에서 각 컨테이너가 이용할 수 있는 독립된 파일 시스템 블록
- 리눅스 커널이 제공하는 것이 아니어서 Linux 종류별로 다른 형태를 제공
- Container Format
- Docker Engine을 구성하는 핵심 기술 스택인 namespace, cgroup, UFS는 컨테이너를 이용하기 위한 Container Wrapper를 갖고 있으며 이를 맞추기 위한 Container Format을 관리하게 됨(default: libcontainer)
네트워크 구성(virtual bridge/ virtual NIC)
https://docs.docker.com/get-started/overview/
'Container' 카테고리의 다른 글
[Docker] Docker Swarm (0) | 2021.09.11 |
---|---|
[Docker] Docker Machine (0) | 2021.09.11 |
[Docker] Docker Compose (0) | 2021.09.11 |
[Docker] Docker Engine (0) | 2021.09.11 |
[Docker] 개념 (0) | 2021.09.11 |