상세 컨텐츠

본문 제목

Docker 개념 정리

Docker/Docker

by Chan.94 2024. 8. 30. 08:22

본문

반응형

Docker란?

도커(Docker)는 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트이다. 도커는 일반적으로 도커 엔진(Docker Engine) 혹은 도커에 관련된 모든 프로젝트를 말한다.

 

도커 엔진(Docker Engine)은 컨테이너를 생성하고 관리하는 주체로서 이 자체로도 컨테이너를 제어할 수 있
고 다양한 기능을 제공하는 도커의 프로젝트다. 도커의 생태계에 있는 여러 프로젝트들은 도커 엔진을 좀
더 효율적으로 사용하기 위한 것에 불과하기 때문에 도커의 핵심은 도커 엔진이라고 할 수 있다.

 

Docker를 이해하는데 있어서는 그 배경에 있는 컨테이너 기술이 어떤 것인지를 알아야 한다.

 


Docker Contrainer Life Cycle

Docker Contrainer Life Cycle

 

컨테이너(Container)

  • 컨테이너는 애플리케이션이 실행될 수 있도록 코드와 모든 종속성을 패키징 하는 표준 소프트웨어 단위이다.
  • 컨테이너는 애플리케이션이 실행되는 데 필요한 모든 것을 포함하므로, 개발 환경, 테스트 환경, 운영 환경 등에서 일관되게 동작한다.

 

이미지(Image)

이미지는 실행 가능한 애플리케이션을 포함하는 읽기 전용 템플릿으로, Docker Hub와 같은 저장소에 저장할 수 있다.

 

도커에서 사용하는 이미지의 이름은 기본적으로 아래의 형태로 구성된다.

[저장소 이름]/[이미지 이름] :[태그]

 

  • 저장소 이름
    이미지가 저장된 장소, 저장소 이름이 명시되지 않은 이미지는 도커 허브의 공식 이미지를 뜻한다.

  • 이미지 이름
    해당 이미지가 어떤 역할을 하는지 나타내며 필수로 설정해야 함. 
    ex) ubuntu:latest -> 우분투 컨테이너를 생성하기 위한 이미지라는 것을 나타냄.

  • 태그
    이미지의 버전을 나타냄. 태그를 생략하면 도커 엔진은 latest로 인식함.

 

 

Docker 파일

Docker 이미지를 생성하기 위한 설정 파일로 일련의 명령어로 구성되어 있으며, Docker는 이 명령어를 읽고 이미지를 빌드한다.

 

Docker Hub

Docker 이미지의 중앙 저장소 역할을 하는 클라우드 기반 레지스트리로 사용자는 Docker Hub에서 다양한 공개 이미지를 검색하고 사용할 수 있으며, 자신만의 이미지를 저장하고 공유할 수 있다.


Virtual Machine vs Container

Virtual Machine vs Container

VM

  • 하이퍼바이저라는 소프트웨어를 이용하여 하나의 물리적 서버를 여러 개의 가상 서버로 분할한다. 
  • 각각의 가상 서버는 자체적인 운영체제와 애플리케이션을 가지고 있기 때문에, VM에서 실행되는 애플리케이션은 호스트 컴퓨터의 운영체제와 독립적이다. 
  • 더욱 견고하고 안전한 환경을 제공할 수 있는 장점이 있지만, 운영체제와 애플리케이션을 가상화하기 때문에 더 많은 하드웨어 자원을 소모하고 성능 저하의 가능성이 있는 단점이 있다.

Container

  • 애플리케이션을 실행하기 위해 필요한 파일과 라이브러리, 의존성 등을 패키지화하여 컨테이너라는 단위로 관리한다.
  • 컨테이너는 호스트 운영체제와 커널을 공유하고, 다른 컨테이너와 격리된 공간에서 동작한다.
  • 컨테이너는 가볍고 빠르게 실행되며, 더욱 효율적인 자원 활용이 가능하다.
  • 컨테이너 간의 상호작용이나 컨테이너의 삭제와 같은 작업도 간편하게 수행할 수 있다.

Docker Architecture

Docker Architecture

 

 

Docker_Client

도커를 설치하면 그것이 Client며 build, pull, run 등의 도커 명령어를 수행한다.

 

Docker_Host

도커가 띄워져 있는 서버를 의미하고 DOCKER_HOST에서 컨테이너와 이미지를 관리한다.

 

Docker daemon

도커 엔진

 

Registry

외부(remote) 이미지 저장소로 다른 사람들이 공유한 이미지를 내부(local) 도커 호스트에 pull 할 수 있다. 이렇게 가져온 이미지를 run 하면 컨테이너가 된다.

  • public 저장소 : Docker Hub
  • private 저장소 : AWS ECR 혹은 Docker Registry를 직접 띄워서 비공개로 사용하는 방법 등이 존재

다음 포스팅에서 Window 환경에서 Docker를 설치해보겠다.

 

 

Docker 설치 (Window 환경) 및 명령어 정리

IntroWindow 환경에서 Docker 설치에 대해 정리하겠다. Docker 개념에 대한 내용은 아래 포스팅을 참고하기 바란다. Docker 개념 정리Docker란?도커(Docker)는 어플리케이션을 프로세스 격리기술을 사용하

fvor001.tistory.com

 

반응형

'Docker > Docker' 카테고리의 다른 글

Docker 설치 (Window 환경) 및 명령어 정리  (5) 2024.08.31

관련글 더보기

댓글 영역

>