Gaegul's devlog

[Docker] Docker 란 무엇일까? 본문

Linux & Docker

[Docker] Docker 란 무엇일까?

부지런깨꾹이 2023. 4. 6. 21:52
728x90
반응형
docker는 요즘 개발자라면 다룰 수 있어야 하는 도구이다. 
docker 를 실습해보기 전 기초적인 개념부터 알아보자!
docker 는 무엇일까!

Docker 란?

  • 컨테이너 기반 가상화 도구
    - 리눅스 컨테이너 기술인 LXC(Linux Container) 기반
  • 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술.
  • 다양한 운영체제에서 사용할 수 있으며, 컨테이너화 된 애플리케이션을 손쉽게 빌드, 배포, 관리할 수 있는 다양한 기능 제공.
  • 위 기능들을 통해 애플리케이션을 빠르게 개발하고, 효율적으로 배포, 관리할 수 있음.

 

Container 란?

  • 컨테이너는 가상화 기술 중 하나.
  • 호스트 운영체제 위에 여러 개의 격리된 환경을 생성
  • 각각의 컨테이너 안에서 애플리케이션을 실행.

 

Virtualization (가상화) 기술 이란?

하나의 물리적인 컴퓨터 자원 (CPU, 메모리, 저장장치 등)을 가상적으로 분할하여 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술이다. 이를 통해 물리적인 컴퓨터 자원을 더욱 효율적으로 사용할 수 있으며, 서버나 애플리케이션 등을 운영하는데 있어 유연성과 안정성을 제공한다.                                                                                                                              

도커는 VM (Virtual Machine) 의 역할을 한다. Hypervisor 대신 Container Engine이 OS 위에 올라간다고 생각하면 된다.

Hypervisor 는 OS에 자원을 할당하고 조율할 수 있다. 또한, OS들의 요청을 번역하여 하드웨어에 전달한다. 

VM 과 Docker 차이

 

Container 기반 특징

  1. 리눅스 커널의 기능을 사용하여 만들어진다. 
    - chroot : 파일 시스템을 격리
    - namespace : 프로세스 격리
    - cgroup : 하드웨어 지원 격리

  2. 프로세스 단위의 격리 환경

 

Docker 의 내부 구조

 

  • 도커 데몬 (Docker Daemon = dockered)
    1) 도커 엔진의 핵심 구성 요소
    2) 도커 호스트 에서 컨테이너를 관리하고 실행하는 역할.
    3) 컨테이너를 생성, 시작, 중지, 삭제하는 작업을 수행.
    4) 컨테이너 이미지를 관리
    5) 외부에서 이미지를 다운로드하고 빌드하는 작업을 수행.

  • 도커 클라이언트 (Docker Client)
    1) docker 와 상호작용
    2) docker 명령어를 사용하면 docker 데몬으로 보내어 실행.

  • 도커 오브젝트 (Docker Object)
    - 도커 이미지
       1) 도커 컨테이너를 만들기 위한 읽기 전용 템플릿. Program 으로 생각하면 쉽다!
    - 도커 컨테이너
       1) 한 도커 이미지의 실행 가능한 인스턴스. 하나의 Process 라고 생각하면 쉽다!
       2) 애플리케이션을 실행하기 위한 모든 파일과 설정 정보를 포함하는 패키지

  • 도커 레지스트리 (Docker Registry)
    1) 도커 이미지를 관리하고 저장하는 곳.
    2) Docker hub : 디폴트 레지스트리, 누구나 접근 가능한 공개형 저장소. App Store 라고 생각하면 쉽다!

 

 

도커에 대해서 더 자세하게 알고 싶은 분들은 docker 독스를 이용해 보면 좋을 것 같네요!

https://docs.docker.com/

 

Docker Docs: How to build, share, and run applications

 

docs.docker.com

 

Reference

원티드 - 프리온보딩 벡엔드 (docker 강의) 에서 공부한 내용을 정리하였습니다 :)

 

728x90
반응형

'Linux & Docker' 카테고리의 다른 글

[Docker] Docker 기본 명령어 (docker CLI)  (0) 2023.04.11
[Linux] screen / tmux  (1) 2021.08.06
Comments