Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
[Docker] Intro
devops
docker

[Docker] Intro

Jay Kim
Jay Kim 01 Feb 2024
[Docker] 가상화 기술의 역사와 컨테이너의 등장 [Docker] 도커 간단하게 시작해보기

Table of Contents

  • 도커
  • 도커의 장점
  • 도커의 구성요소
    • 도커 클라이언트
    • 도커 데몬
    • 도커 레지스트리
  • 이미지와 컨테이너
    • 이미지
    • 컨테이너

도커

  • 컨테이너 기술은 인프라 환경에 상관없이 모든 애플리케이션을 독립적으로 배포, 실행 가능하도록 해준다
  • 컨테이너 기술은 운영체제를 제외한 애플리케이션 실행에 필요한 모든 파일(라이브러리, 바이너리, 구성 파일 등)을 패키지로 묶어 배포하는 것이다
  • 도커 이전에도 이러한 컨테이너 기술은 존재했었지만 기술적으로 높은 진입 장벽 때문에 대중화되지 못하고 있었다
  • 도커의 등장으로 컨테이너 기술에 대한 접근성이 훨씬 좋아지게 되면서 컨테이너 기술이 대중화 되었다

도커의 장점

  • 도커는 애플리케이션을 컨테이너화 하도록 도와주고, 컨테이너를 실행시킬 런타임을 제공해준다
  • 도커 컨테이너는 별도의 게스트 OS 없이, 호스트 머신 커널의 namespace와 cgroups를 이용해 독립적인 OS와 같은 환경을 제공하기 때문에 훨씬 빠르고 가볍다

도커의 구성요소

  • 도커의 아키텍처는 클라이언트-서버 아키텍처이다

도커 클라이언트

  • 도커 클라이언트(docker)는 REST API를 사용해 도커 데몬(dockerd)에게 도커 관련 명령어를 전달할 수 있다
  • 사용자가 docker run과 같은 명령을 사용하면 도커 클라이언트는 해당 명령을 도커 데몬에게 전송하고 도커 데몬은 명령을 수행하게 된다

도커 데몬

  • 도커 데몬(dockerd)은 도커 클라이언트로부터 요청을 받으면 이미지, 컨테이너, 네트워크, 볼륨과 같은 도커 오브젝트를 생성하고 관리한다

도커 레지스트리

  • 도커 레지스트리는 도커 이미지 오브젝트를 저장, 관리하는 곳이다
  • public한 곳(docker hub)도 있고, private(AWS의 ECR)한 곳도 있다

이미지와 컨테이너

이미지

  • 도커 이미지는 도커 컨테이너를 생성하기 위한 읽기 전용 템플릿이다
  • 도커는 애플리케이션을 컨테이너화하기 위해 이미지로 만든다
  • 기본 이미지 위에 원하는 커스터마이징을 통해 새로운 이미지를 만들 수도 있고, 이렇게 만들어진 이미지는 도커 레지스트리에 공유할 수 있다
  • 이미지를 만들 때에는 Dockerfile에 필요한 명령어를 정의하여 만들 수 있다
  • Dockerfile에 정의된 각각의 명령어들은 이미지의 레이어를 생성하며, 이러한 레이어들이 모여 이미지를 구성한다

컨테이너

  • 컨테이너는 도커 이미지를 기반으로 실행되는 프로세스를 말한다
  • 컨테이너는 Docker API 사용하여 생성, 시작, 중지, 이동 또는 삭제 할 수 있는 이미지의 실행 가능한 인스턴스를 나타낸다
  • 컨테이너가 제거될 때는 영구 저장소에 저장되지 않은 변경 사항은 모두 해당 컨테이너와 같이 사라진다
[Docker] 가상화 기술의 역사와 컨테이너의 등장 [Docker] 도커 간단하게 시작해보기

You may also like

See all docker
10 Feb 2024 [Docker]: 진화하는 컨테이너 표준
devops
docker

[Docker]: 진화하는 컨테이너 표준

09 Feb 2024 [Docker] 네트워크 이해하기
devops
docker

[Docker] 네트워크 이해하기

도커에서 외부와의 통신, 컨테이너 간 통신 방법에 대해 배운다

08 Feb 2024 [Docker] 퍼시스턴시한 어플리케이션 만들기
devops
docker

[Docker] 퍼시스턴시한 어플리케이션 만들기

도커에서 데이터를 영구적으로 저장하는 방법에 대해 배운다

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.