본문 바로가기
Computer Science/Knowledge

Docker

by Wikinist 2023. 7. 20.

Docker는 컨테이너 기반 가상화 기술을 제공하는 오픈 소스 플랫폼입니다. 컨테이너는 애플리케이션과 해당 종속성(라이브러리, 설정 파일 등)을 격리된 환경으로 패키징하여 실행하는 방식을 의미합니다. 이를 통해 애플리케이션을 각각의 독립적인 환경에서 실행하고 배포할 수 있습니다.

Docker의 주요 특징과 동작 방식에 대해 설명드리겠습니다.

컨테이너 기반 가상화

Docker는 컨테이너라는 단위로 애플리케이션과 해당 종속성들을 격리된 환경에 담습니다.
각 컨테이너는 호스트 시스템의 커널을 공유하며, 컨테이너 간에는 프로세스 격리를 통해 독립적으로 실행됩니다.
이를 통해 가볍고 빠르며, 여러 개의 컨테이너를 운영 체제에서 효율적으로 관리할 수 있습니다.

이미지 기반 배포

Docker는 컨테이너를 생성하는 기본 단위인 "이미지"를 사용하여 애플리케이션을 패키징하고 배포합니다.
이미지는 애플리케이션과 해당 종속성을 설치하고 설정한 뒤, 컨테이너를 생성하는데 필요한 명령어들을 포함합니다.
동일한 이미지를 여러 대의 서버에서 쉽게 배포하여 환경의 일관성과 편리한 배포를 가능하게 합니다.

이식성과 확장성

Docker는 컨테이너 기반으로 실행되기 때문에 환경에 종속되지 않고 이식성이 높습니다.
개발과 테스트 환경에서 또는 클라우드 환경과 로컬 개발 환경에서도 동일한 방식으로 실행할 수 있습니다.
또한, 필요에 따라 애플리케이션의 인스턴스 수를 유연하게 늘리거나 줄일 수 있어 확장성이 뛰어납니다.

레이어 저장 방식

Docker 이미지는 레이어(layer) 저장 방식을 사용하여 생성되고 관리됩니다.
각 레이어는 변경 사항이 있을 때만 새로 생성되고 이전 레이어를 기반으로 하여 관리되므로 효율적인 이미지 관리가 가능합니다.
Docker를 사용하면 개발, 테스트, 배포, 운영 등의 단계에서 일관된 환경을 유지할 수 있으며, 서버 환경에 대한 의존성을 줄이고 효율적인 배포와 관리를 할 수 있습니다. 현재는 개발자와 운영자들 사이에서 널리 사용되고 있으며, 컨테이너 기술의 대표적인 도구 중 하나로 평가받고 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.