도커 엔진은 애플리케이션을 빌드하고 컨테이너화하기 위한 오픈 소스 컨테이너화 기술이다. 클라이언트는 도커 데몬을 통해 컨테이너 빌드, 실행 등의 무거운 작업을 수행한다.

 

도커 데몬

도커 데몬(dockerd)은 Docker API 요청을 수신하고 이미지, 컨테이너, 네트워크 및 볼륨과 같은 Docker 객체를 관리한다. 데몬은 다른 데몬과 통신하여 Docker 서비스를 관리할 수도 있다.

 

도커 클라이언트

도커 클라이언트(docker)는 대다수의 도커 사용자가 도커와 통신하는 주요 방법이다. docker run과 같은 명령어를 입력하면, 클라이언트는 해당 명령어를 도커 데몬으로 전송한다. Docker API를 사용하며, 도커 클라이언트는 여러 데몬과 통신할 수 있다.

 

도커 데스크탑

맥, 윈도우 또는 리눅스 환경을 위한 애플리케이션으로, 컨테이너화된 애플리케이션 및 마이크로서비스를 구축하고 공유할 수 있다. 도커 데스크탑에는 도커 데몬(dockerd), 도커 클라이언트(docker), 도커 컴포즈, 도커 content trust, 쿠버네티스 및 credential helper가 포함된다.

 

도커 레지스트리

도커 이미지를 저장하는 곳이다. 크게 공개 레지스트리와 사설 레지스트리가 있다.

  • 도커 허브는 누구나 사용할 수 있는 공개 레지스트리이며, 도커는 기본적으로 도커 허브에서 이미지를 찾도록 되어있다.

 

이미지

컨테이너를 생성 지침이 포함된 읽기 전용 템플릿이다. 이미지를 만들어 사용할 수도 있고, 레지스트리에 저장된 이미지를 받아와 사용할 수도 있다.

  • 이미지를 만들기 위해서는 Dockerfile을 작성해야 한다.
  • [저장소 이름]/[이미지 이름]:[태그]의 형태로 구성된다. 저장소 이름 생략 시 도커 허브로 지정된다.

 

컨테이너

이미지로부터 실행 가능한 인스턴스인 컨테이너를 생성할 수 있다. 또한, 이미지와 컨테이너는 1:N 관계이다.

 

컨테이너를 생성하면, 이미지의 목적에 맞는 파일이 들어있는 파일 시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립적인 공간이 생성된다. 설정에 따라 네트워크, 스토리지 또는 기타 기본 하위 시스템이 다른 컨테이너 또는 호스트 시스템에서 얼마나 격리되는지 제어할 수 있다.

 

컨테이너는 이미지를 읽기 전용으로 사용하고, 변경된 사항만 컨테이너에 저장한다. 즉, 컨테이너에 무엇을 하든 원래 이미지는 영향을 받지않는다.

 

참고 자료

'인프라 > 도커' 카테고리의 다른 글

docker /var/run/docker.sock 심볼릭 링크 문제  (0) 2023.06.11
Dockerfile  (0) 2023.06.11
볼륨  (0) 2023.06.11
도커  (0) 2023.06.11

+ Recent posts