컨테이너 가상화 기술을 기반으로 하는 오픈소스 플랫폼.
컨테이너 가상화 기술은 Docker 이전에 이미 개발되어 존재하던 기술이다!
- 최초의 컨테이너 기술: LXC(Linux Container)
- Docker = LXC + (여러 중요한 기술들) : 효율성, 유연성.
장점
Client-Server Architecture
: 클라이언트가 명령어를 서버에 전달하고 서버가 전달받은 명령어를 실행
사용자가 Docker 오브젝트를 관리하기 위해 사용하는 수단. CLI 제공.
- CLI 입력:
docker run
- dockerd 프로세스로 전달.
*명령어는 Docker API를 이용해 하나 이상의 dockerd와 상호작용함
Docker 오브젝트를 관리하는 주체
- dockerd라는 프로세스가 클라이언트로부터 전달받은 명령어 실행.
다양한 Docker 오브젝트 관리
- Docker 오브젝트: 이미지, 컨테이너, 볼륨
DockerHub
컨테이너를 생성하기 위해 필요한 템플릿.
Docker 공식 이미지 또는 다른 개발자들이 만들어 놓은 이미지에 필요한 것들을 추가하여 본인만의 커스텀 이미지를 만들 수 있다.
이미지의 실행 가능한 인스턴스.
이미지를 실행시켜 컨테이너라는 가상화 공간을 만든다.
Docker가 설치되었다면 어디서든지 저장소로부터 이미지를 가져와 컨테이너를 실행시킬 수 있다.
Logs
Resource Isolation and Grouping
독립적