Data Engineering/Docker

[Linux/Docker] Docker는 왜 사용할까?

seoraroong 2024. 8. 23. 00:00

Docker, 컨테이너화 기술의 모든 것

Docker는 컨테이너화 기술을 제공해 애플리케이션과 그 의존성을 효율적으로 관리하고 배포하는 데 도움을 주는 플랫폼이다.

 

Docker는 애플리케이션과 그 의존성을 패키징하고 배포하는 데 사용되는 오픈 소스 플랫폼이다. 

컨테이너를 사용해 소프트웨어를 격리하고 애플리케이션이 어느 환경에서나 일관되게 실행되도록 보장한다.

 

 

컨테이너 (Containor) 란?

컨테이너는 애플리케이션과 의존성 등을 함께 패키징해 독립적으로 실행할 수 있는 실행 환경을 제공한다.

컨테이너는 호스트 운영 체제의 커널을 공유하면서도, 애플리케이션이 필요로 하는 모든 요소를 포함하고 있어 일관된 실행 환경을 제공한다.

 

 

Docker의 장점

- 이식성

애플리케이션을 컨테이너에 패키징하면 어떤 환경에서도 동일하게 실행할 수 있다.

 

- 격리성

각 컨테이너는 독립적으로 실행되며 다른 컨테이너나 호스트 시스템과 격리된다.

 

- 효율성

컨테이너는 가벼운 실행 환경을 제공하고, 가상 머신에 비해 리소스를 적게 사용한다.

 

- 빠른 배포

컨테이너는 신속하게 시작하고 중지할 수 있어 빠른 배포와 스케일링이 가능하다.

 

 

Docker의 주요 구성 요소 

- Docker Engine

Docker Engine은 컨테이너를 실행하는 서버 측의 구성 요소이다.

Docker Daemon과 Docker CLI로 구분할 수 있다.

 

  • Docker Daemon: 컨테이너를 관리하고 실행하는 백그라운드 프로세스
  • Docker CLI: Docker Daemon과 상호작용하기 위한 커맨드 라인 인터페이스

 

- Docker Image

Docker Image는 컨테이너를 실행하기 위한 템플릿이다.

애플리케이션 코드, 라이브러리, 환경 변수 및 의존성을 포함하고 있다.

이미지는 불변 (immutable)이며 컨테이너가 실행될 때 기반이 된다.

 

- Docker Containor

컨테이너는 실행 중인 Docker 이미지의 인스턴스이다.

컨테이너는 이미지를 기반으로 실행되며 독립적인 실행 환경을 제공한다.

 

- Docker Hub

Docker Hub는 Docker Image를 공유하고 배포할 수 있는 클라우드 기반의 레지스트리이다.

Docker Hub를 이용해 공용 이미지나 사설 이미지를 저장하고 관리할 수 있다.

 

- Dockerfile

Dockerfile은 Docker Image를 자동으로 빌드하기 위한 스크립트이다.

Dockerfile에는 이미지 빌드에 필요한 명령어가 포함되어 있으며, 이를 통해 이미지의 레이어를 정의하고 설정할 수 있다.