본문 바로가기
Docker

[Docker] 도커의 등장과 개요

by dong_seok 2024. 1. 14.
1. 컨테이너 기술의 발전
2. 도커 구성요소
3. 이미지와 컨테이너
4.  도커 이미지 구성과 저장소

1. 컨테이너 기술의 발전

1. Traditional Deplyment

  • 하드웨어(컴퓨터) 위에 운영체제가 설치되고 그 위에 애플리케이션을 배포하고 운영
  • 애플리케이션 구동에 필요한 라이브러리나 프레임워크를 운영체제에 설치하게 되고 그 후에 해당 애플리케이션 배포 및 실행이 가능
  • 문제점 : 각각의 app들이 공유하는 자원(라이브러리 등)으로 인해서 충돌을 일으키게됨

2. Virtualized Deployment

  • 가상머신을 이용한 가상화 형태
  • 가상머신을 통해 격리된 환경에서 각각의 app들이 구동됨
  • 운영체제 위에 가상머신들을 관리하는 Hypervisor 컴포넌트가 위치
  • 게스트 OS를 구동하기 위해서는 컴퓨팅 자원들을 애뮬레이팅(복제) 할 필요가 있음
  • 문제점 : 호스트 OS에 비해 성능이 떨어지고 가상머신으로 인한 자원의 오버헤드가 발생

 * 게스트 OS : 각각의 가상머신에 돌아가는 운영체제

 

3. Container Deployment

  • 가상화 기술 경량화, 성능 상승, 자원 오버헤드 줄이기 위한 방안으로 만들어진 가상화 기술
  • Docker는 Container engine 중 하나
  • 하나의 서버 위에서 컨테이너를 관리하기 위한 소프트웨어
  • 호스트 OS 입장에서 Contatiner는 Process로 취급
  • 다양한 격리 기술이 들어간 Process
  • 호스트 OS의 커널을 공용으로 사용 

4.Kubernetes Deployment

  • Container Orchestration system 중 하나
  • 여러 서버로 구성된 클러스터 환경에서 컨테이너들을 관리하는 소프트웨어

2. 도커 구성요소

  • 클라이언트는 Docker daemon 프로세스에 무엇을 할지 명령어로 알려준다. 
  • daemon은 registry 또는 repository로부터 이미지를 가져온다

*docker daemon : API 요청을 수신하고 이미지, 컨테이너, 네트워크 및 볼륨과 같은 Docker 객체를 관리

3. 이미지와 컨테이너

이미지와 컨테이너는 도커에서 사용하는 가장 기본적인 단위로 1 : N 관계를 지니고 있습니다.

이미지(Image)

  • 컨테이너를 생성할 때 필요한 요소로 컨테이너의 목적에 맞는 바이너리와 의존성이 설치
  • 여러 개의 계층으로 된 바이너리 파일로 존재

컨테이너 (Container)

  • 호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스
  • 이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장

-> 컨테이너에서 무엇을 하든 이미지는 영향을 받지 않습니다.

 

4. 도커 이미지 구성과 저장소

도커 이미지 구성

  • 저장소 이름, 이미지 이름, 이미지 태그로 구성
  • 저장소 이름과 이미지 태그는 생략 가능 
  • 이미지 태크를 생략하면 최신 리비전을 가리키는 lastest로 인식
  • 저장소 이름을 생략하면 기본 저장소인 도커 허브로 인식

도커 이미지 저장소

  • 도커 이미지를 관리하고 공유하기 위한 서버 어플리케이션

public

- docker hub

- QUAY

 

private

- AWS ECR(Elastic Container Registry)

- docker REGISTRY

 

참고자료

패스트캠퍼스 : Kubernetesdhk Docker로 한 번에 끝내는 컨테이너 기반 MSA(박병진)

https://velog.io/@thx4comin9/Docker-basic

https://dalsacoo-log.tistory.com/entry/container-and-docker

'Docker' 카테고리의 다른 글

[Docker] 컨테이너 라이프사이클  (0) 2024.01.14

댓글