컨테이너화 기술을 사용하여 애플리케이션과 그 종속성을 컨테이너에 패키징하는 오픈소스 가상화 플랫폼
다양한 환경에서 애플리케이션이 일관되게 실행되도록 보장
주요 개념

- Image:
- 컨테이너를 생성하는 데 사용되는 읽기 전용 템플릿
- 운영 체제, 애플리케이션 코드, 런타임, 라이브러리, 환경 변수를 포함
- Dockerfile에 작성된 명령어 기반으로 구축
- Container:
- 이미지가 실제로 메모리에 로드되어 실행되는 상태
- 각 컨테이너는 서로 및 호스트 시스템으로부터 격리(독립된 파일 시스템, 네트워킹, 및 독립된 프로세스 공간)
- Docker Demon:
- 도커 플랫폼의 백그라운드에서 실행되는 프로세스
- Docker Api 요청수신
- 이미지,컨테이너, 네트워크, 볼륨와 같은 도커 객체 및 도커 서비스 관리
- Docker Client:
- 도커 호스트와 상호작용하는 커맨드 라인 인터페이스(CLI)
- docker 명령어를 사용하여 도커 데몬에 요청을 보내고, 컨테이너와 이미지를 관리
- Docker Registry:
- 도커 이미지를 저장하고 공유하는 서비스
- Docker Hub가 가장 유명
장점
- 일관성: 모든 환경에서 애플리케이션이 동일하게 실행되도록 보장
- 효율성: 기존의 가상 머신보다 시스템 자원을 더 효율적으로 사용(메모리와 CPU 자원을 훨씬 적게 요구)
- 확장성: 도커는 컨테이너를 추가하여 애플리케이션을 수평적으로 확장하기 쉬움(Kubernetes 등 사용)
- 이동성: 컨테이너는 도커를 지원하는 모든 시스템에서 실행할 수 있어 개발, 테스트 및 프로덕션 환경 간 이동 쉬움
- 격리성: 각 컨테이너는 자체 격리된 환경에서 실행되어 애플리케이션 간의 충돌을 방지, 보안 강화
'개발' 카테고리의 다른 글
CI/CD (0) | 2024.06.13 |
---|---|
쿠버네티스(Kubernetes, k8s) (0) | 2024.06.13 |
소스 코드 관리 전략(모노레포 vs 멀티레포) (0) | 2024.05.11 |
아키텍처(모놀리식 vs. MSA) (0) | 2024.05.11 |
프로그래밍 패러다임 (0) | 2024.05.11 |