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에는 이미지 빌드에 필요한 명령어가 포함되어 있으며, 이를 통해 이미지의 레이어를 정의하고 설정할 수 있다.
'Data Engineering > Docker' 카테고리의 다른 글
[Linux/Docker] Sinatra를 사용해보고 Ubuntu 서버에 배포해보자 (0) | 2024.08.24 |
---|---|
[Linux/Docker] Flask로 app을 만들고 Docker compose로 컨테이너화해보자 (0) | 2024.08.24 |
[Linux/Docker] Docker Compose 설치하고 WORDPRESS와 MYSQL 컨테이너를 만들어보자 (5) | 2024.08.24 |
[Linux/Docker] Docker를 설치하고 컨테이너를 실행해보자 (0) | 2024.08.23 |
[Linux/Docker] Docker compose에 대해 알아보자 (0) | 2024.08.23 |