도커 (소프트웨어): 두 판 사이의 차이
기술노트
(IT 용어 정리 - 도커 (소프트웨어) 추가) |
편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
== 개요 == | == 개요 == | ||
'''통합(Orchestration)'''은 여러 개의 컨테이너 또는 서비스를 자동으로 배포하고 관리하기 위한 기술입니다. | |||
단일 서버 또는 다수의 서버에 분산된 컨테이너를 효율적으로 운영할 수 있도록 돕습니다. | |||
통합은 단순히 컨테이너를 실행하는 것을 넘어서, '''확장성(Scalability)''', '''복구성(Resilience)''', '''로드밸런싱(Load Balancing)''' 같은 고급 기능을 포함합니다. | |||
== 통합 == | |||
컨테이너 기반 애플리케이션이 복잡해짐에 따라, 단일 노드에서 수십 개 이상의 컨테이너를 수동으로 관리하는 것은 비효율적이 되었습니다. | |||
이에 따라 통합 솔루션은 다음과 같은 역할을 합니다. | |||
* 서비스 간 의존성 관리 | |||
* 장애 발생 시 자동 복구 | |||
* 트래픽에 따른 확장 및 축소 | |||
* 지속적 배포(CD, Continuous Deployment) 지원 | |||
* 모니터링 및 로깅 통합 | |||
통합 시스템은 구성 파일 기반으로 원하는 상태(Desired State)를 기술하면, 이를 자동으로 실행 환경에 반영합니다. | |||
== 역사 == | == 역사 == | ||
초기의 컨테이너 통합은 주로 스크립트를 사용해 수동으로 이루어졌습니다. | |||
2013년 Docker가 등장하면서 컨테이너 관리가 표준화되었고, 이에 따른 통합 기술의 발전이 시작되었습니다. | |||
* 2014년: '''Docker Compose''' 공개 — 다중 컨테이너 정의 및 실행을 단순화 | |||
* 2015년: '''Docker Swarm''' 출시 — Docker 엔진에 내장된 기본 오케스트레이션 기능 제공 | |||
* 이후 Kubernetes와 같은 복잡한 통합 솔루션이 등장했지만, Compose와 Swarm은 여전히 소규모 또는 단순한 프로젝트에서 널리 사용되고 있습니다. | |||
== 도구 == | == 도구 == | ||
대표적인 컨테이너 통합 도구로는 '''Docker Compose'''와 '''Docker Swarm'''이 있습니다. | |||
=== Docker Compose === | === Docker Compose === | ||
Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구입니다. | |||
주요 특징: | |||
* YAML 파일(`docker-compose.yml`)로 서비스, 네트워크, 볼륨 정의 | |||
* `docker-compose up` 명령어 하나로 모든 컨테이너를 일괄 생성 및 시작 | |||
* 개발, 테스트 환경에서 반복적인 컨테이너 세팅을 자동화 | |||
간단한 예시: | |||
<syntaxhighlight lang="yaml"> | |||
version: '3' | |||
services: | |||
web: | |||
image: nginx | |||
ports: | |||
- "80:80" | |||
db: | |||
image: mysql | |||
environment: | |||
MYSQL_ROOT_PASSWORD: example | |||
</syntaxhighlight> | |||
=== Docker Swarm === | === Docker Swarm === | ||
Docker Swarm은 Docker의 네이티브 클러스터링 솔루션입니다. 여러 대의 서버를 하나의 가상 서버처럼 취급하여 컨테이너를 자동 배포하고 관리할 수 있습니다. | |||
주요 특징: | |||
* '''Swarm 모드'''를 활성화(`docker swarm init`)하면 클러스터 생성 | |||
* 서비스 단위로 컨테이너를 관리하고, '''Desired State'''를 유지 | |||
* 자동 부하 분산(Load Balancing) 기능 내장 | |||
* Manager-Worker 구조로 고가용성(HA) 지원 | |||
기본 명령어 예시: | |||
<syntaxhighlight lang="bash"> | |||
# Swarm 초기화 | |||
docker swarm init | |||
# 서비스 생성 | |||
docker service create --name webserver -p 80:80 nginx | |||
# 현재 서비스 목록 보기 | |||
docker service ls | |||
</syntaxhighlight> | |||
[[분류:IT 용어]] | [[분류:IT 용어]] |
2025년 4월 28일 (월) 13:33 기준 최신판
개요
통합(Orchestration)은 여러 개의 컨테이너 또는 서비스를 자동으로 배포하고 관리하기 위한 기술입니다. 단일 서버 또는 다수의 서버에 분산된 컨테이너를 효율적으로 운영할 수 있도록 돕습니다.
통합은 단순히 컨테이너를 실행하는 것을 넘어서, 확장성(Scalability), 복구성(Resilience), 로드밸런싱(Load Balancing) 같은 고급 기능을 포함합니다.
통합
컨테이너 기반 애플리케이션이 복잡해짐에 따라, 단일 노드에서 수십 개 이상의 컨테이너를 수동으로 관리하는 것은 비효율적이 되었습니다.
이에 따라 통합 솔루션은 다음과 같은 역할을 합니다.
- 서비스 간 의존성 관리
- 장애 발생 시 자동 복구
- 트래픽에 따른 확장 및 축소
- 지속적 배포(CD, Continuous Deployment) 지원
- 모니터링 및 로깅 통합
통합 시스템은 구성 파일 기반으로 원하는 상태(Desired State)를 기술하면, 이를 자동으로 실행 환경에 반영합니다.
역사
초기의 컨테이너 통합은 주로 스크립트를 사용해 수동으로 이루어졌습니다. 2013년 Docker가 등장하면서 컨테이너 관리가 표준화되었고, 이에 따른 통합 기술의 발전이 시작되었습니다.
- 2014년: Docker Compose 공개 — 다중 컨테이너 정의 및 실행을 단순화
- 2015년: Docker Swarm 출시 — Docker 엔진에 내장된 기본 오케스트레이션 기능 제공
- 이후 Kubernetes와 같은 복잡한 통합 솔루션이 등장했지만, Compose와 Swarm은 여전히 소규모 또는 단순한 프로젝트에서 널리 사용되고 있습니다.
도구
대표적인 컨테이너 통합 도구로는 Docker Compose와 Docker Swarm이 있습니다.
Docker Compose
Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구입니다.
주요 특징:
- YAML 파일(`docker-compose.yml`)로 서비스, 네트워크, 볼륨 정의
- `docker-compose up` 명령어 하나로 모든 컨테이너를 일괄 생성 및 시작
- 개발, 테스트 환경에서 반복적인 컨테이너 세팅을 자동화
간단한 예시:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
Docker Swarm
Docker Swarm은 Docker의 네이티브 클러스터링 솔루션입니다. 여러 대의 서버를 하나의 가상 서버처럼 취급하여 컨테이너를 자동 배포하고 관리할 수 있습니다.
주요 특징:
- Swarm 모드를 활성화(`docker swarm init`)하면 클러스터 생성
- 서비스 단위로 컨테이너를 관리하고, Desired State를 유지
- 자동 부하 분산(Load Balancing) 기능 내장
- Manager-Worker 구조로 고가용성(HA) 지원
기본 명령어 예시:
# Swarm 초기화
docker swarm init
# 서비스 생성
docker service create --name webserver -p 80:80 nginx
# 현재 서비스 목록 보기
docker service ls