: 컨테이너 기반 오픈소스 가상화 플랫폼
: 데스크톱, 클라우드 등 어디서나 실행할 수 있도록 애플리케이션 코드를 해당 라이브러리 및 종속 항목과 함께 패키징한 소프트웨어 실행 유닛
DockerFile
: 컨테이너 이미지의 빌드 방법에 관한 지시사항이 포함된 텍스트 파일. 즉, DockerFile을 통해 이미지 생성을 자동화 한다.Docker Image
: 소스코드 + 라이브러리, 이미지를 실행하게 되면 컨테이너의 한 인스턴스가 된다. 즉, 컨테이너를 생성하는데 사용되는 파일이다. 이미지는 여러개의 읽기 전용 layer로 구성되며 파일이 추가되면 그 위에 새로운 layer가 생성된다. 이는 github처럼 push, pull이 가능하며 바뀐 레이어에 대해서만 주고받아 빠르게 변경이 가능하다.Docker Container
: Docker Image의 현재 실행 중인 라이브 인스턴스이다.Docker Hub
: Github와 유사하게 Docker를 위한 공용 이미지 저장소이다. 인증된 이미지가 존재하며 사용자가 직접 이미지를 올릴 수 있다.Docker Registry
: 오픈소스 이미지 저장 / 배포 시스템이다. Docker Hub의 경우 이미지가 공개되기 때문에 Registry를 통해 private하게 관리할 수 있다. 대부분의 클라우드 서비스는 각자의 Docker Registry를 제공한다.Docker Compose
: 여러개의 컨테이너를 하나의 호스트에서 실행시키는데 도움을 준다.Container Orchestration
: 대규모 애플리케이션을 배포할 수 있도록 컨테이너의 네트워킹 및 관리를 자동화하는 프로세스Docker만 존재하는 경우 문제점.
도커만 사용 시 모든 서버에서 직접
docker stop, run
을 실행해야 함로드 밸런싱의 어려움
장애 발생 시 컨테이너 로그를 보고 직접 대응
클러스터를 통한 관리
> 클러스터: 어플리케이션 컨테이너를 실행하기 위한 노드 머신, 하나 이상의 컴퓨터가 존재하는 추상화된 단위. 클러스터 단위로 유지 관리하므로써 환경에 관계없이 컨테이너 관리 가능
>
Kubernetes
: Container Orchestration 기술 중 하나. Google 내부용 개발에서 시작. 서버리스 컴퓨팅을 가능하게 함.같은 호스트에서 돌아가고 있는 컨테이너라 해서 localhost가 같지 않다.
Containers vs. Virtual Machines (VMs): What’s the Difference? - IBM Blog