DevOps/Docker

[Docker] 1. Docker overview

noahkim_ 2023. 10. 29. 23:17

Docker는 애플리케이션을 개발, 배포 및 실행하기 위한 오픈 플랫폼입니다.

애플리케이션을 인프라에서 분리하여 빠르게 소프트웨어를 제공할 수 있습니다.

코드를 작성하고 프로덕션에서 실행하는 사이의 지연 시간을 크게 줄일 수 있습니다.

 

1. The Docker platform

  • Docker는 컨테이너라는 약간 격리된 환경에서 애플리케이션을 패키지화하고 실행할 수 있게 합니다.
  • 컨테이너는 경량화되어 있으며, 애플리케이션을 실행하는 데 필요한 모든 것을 포함하므로 호스트에 의존할 필요가 없습니다.

 

2. What can I use Docker for?

Fast, consistent delivery of your applications

  • 개발자가 로컬 컨테이너를 사용하여 표준화된 환경에서 작업할 수 있게 해줍니다.
  • CI/CD 워크플로우에 이상적입니다.

 

Responsive deployment and scaling

  • 다양한 환경에서 실행될 수 있도록 고도로 이식 가능한 워크로드를 허용합니다.

 

Running more workloads on the same hardware

  • 가벼우며 빠르기 때문에 성능상 유리합니다.

 

3. Docker architecture

  • 클라이언트-서버 아키텍처를 사용합니다.
  • REST API를 사용하여 통신합니다.

 

The Docker daemon

  • Docker의 데몬 프로세스 입니다.
  • Docker API 요청을 수신하고 이미지, 컨테이너, 네트워크, 볼륨 등의 Docker 객체를 관리합니다.
  • 다른 데몬과도 통신하여 Docker 서비스를 관리할 수 있습니다.

 

The Docker client

  • 사용자가 Docker와 상호작용하는 방법입니다.
  • Dockerd(Docker Daemon)과 상호작용하여 수행합니다.

 

Docker registries

  • Docker 이미지를 저장하는 저장소입니다.
  • 누구나 사용할 수 있는 공개 저장소입니다.
  • 필요한 이미지를 pull하거나 push할 때 구성된 저장소와 통신합니다.

 

Docker objects

Images
  • 컨테이너를 생성하기 위한 읽기 전용 템플릿입니다.
  • 각 Dockerfile의 명령어는 이미지에서 계층을 생성합니다.

 

Containers
  • 이미지의 실행 가능한 인스턴스 입니다.
  • API 혹은 CLI를 통해 생성, 시작, 이동 또는 삭제가 가능합니다.
  • 기본적으로 다른 컨테이너나 호스트 기계와 격리됩니다.