본문 바로가기
Tool/docker

docker / 정의 / 특징 / 장단점 / 구성요소

by 하하IT 2024. 2. 19.

- 정의

도커는 컨테이너 기반 가상화 기술을 사용하여 소프트웨어를 패키징하고 실행하는 플랫폼입니다. 이를 통해 애플리케이션과 그에 필요한 모든 구성 요소를 격리된 환경인 컨테이너로 만들어 배포할 수 있습니다.

 

-특징

컨테이너 기반 가상화 도커는 컨테이너 기반 가상화 기술을 사용하여 애플리케이션을 패키지화하고 실행합니다. 이를 통해 애플리케이션과 그에 필요한 모든 종속성을 격리된 환경인 컨테이너로 만들어 관리
경량화 및 빠른 실행 도커 컨테이너는 가상 머신보다 더 가볍고 빠르며 자원 효율적입니다. 이는 컨테이너가 호스트 운영 체제의 커널을 공유하기 때문에 가능
이식성 도커 컨테이너는 어디서든 실행할 수 있으며, 인프라 구성에 관계없이 동일하게 동작합니다. 이는 개발 환경, 테스트 환경, 프로덕션 환경 등에서 일관된 환경을 유지할 수 있음을 의미
확장성 도커는 필요에 따라 컨테이너를 쉽게 확장할 수 있습니다. 컨테이너는 개별적으로 관리되므로 필요한 만큼 더 많은 인스턴스를 생성하여 확장가능
버전 관리 및 롤백 도커는 이미지의 버전 관리를 지원하며, 변경 내용을 기록하고 롤백할 수 있습니다. 이를 통해 애플리케이션을 안전하게 업데이트하고 이전 상태로 복원가능
자동화 및 CI/CD 통합 도커는 자동화된 배포를 지원하며, CI/CD 파이프라인에 쉽게 통합될 수 있습니다. 이를 통해 더 빠르고 안정적인 배포를 가능
오픈소스 및 커뮤니티 지원 도커는 오픈소스 프로젝트로서 활발한 커뮤니티의 지원을 받고 있습니다. 이는 다양한 플러그인, 도구, 라이브러리 등을 통해 도커를 더욱 강력하게 확장가능
         

 

 

-장단점

장점
  1. 경량화: 가상 머신에 비해 더 가볍고 빠르며 자원 효율적입니다.
  2. 일관성: 모든 환경에서 동일한 환경을 보장하므로 개발, 테스트 및 프로덕션 환경 간의 일관성이 유지됩니다.
  3. 이식성: 어디서든 애플리케이션을 실행할 수 있으며, 인프라 구성에 관계없이 동일하게 동작합니다.
  4. 빠른 배포: 컨테이너화된 애플리케이션은 빠르게 배포되고 확장할 수 있습니다.
  5. 스케일링: 필요에 따라 수평 및 수직으로 스케일링이 가능합니다.
단점
  1. 보안 위험: 컨테이너가 호스트 운영 체제와 커널을 공유하기 때문에 보안 문제가 발생할 수 있습니다.
  2. 가상화 오버헤드: 가상화된 환경이 아니기 때문에 일부 상황에서는 성능 오버헤드가 발생할 수 있습니다.
  3. 지원되지 않는 운영 체제: 모든 운영 체제 및 언어에 대한 지원이 완벽하지 않을 수 있습니다.
     

 

- 구성요소

  1. 도커 엔진(Docker Engine): 도커의 핵심 엔진으로, 컨테이너 생성, 실행, 관리 등을 담당합니다.
  2. 도커 이미지(Docker Image): 컨테이너 실행에 필요한 파일, 라이브러리 및 설정 등을 포함한 읽기 전용 템플릿입니다.
  3. 도커 컨테이너(Docker Container): 격리된 환경에서 실행되는 애플리케이션 및 그에 필요한 모든 구성 요소를 포함합니다.
  4. 도커 레지스트리(Docker Registry): 도커 이미지를 저장하고 관리하는 중앙 저장소입니다. 대표적인 예로 Docker Hub가 있습니다.
  5. 도커 컴포즈(Docker Compose): 여러 컨테이너로 구성된 애플리케이션을 정의하고 실행하기 위한 도구입니다.