Docker 및 컨테이너 기술, 오케스트레이션 가이드
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

[SB 3기] 코드잇 스프린트 위클리페이퍼 11주차

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • *개발자 및 DevOps 엔지니어** (중간~고급 레벨, 컨테이너 기술과 오케스트레이션 개념 이해 필요)

핵심 요약

  • 컨테이너(Container)chroot, cgroups, namespaces 등의 Linux 기술을 기반으로, 단일 OS 커널 공유하여 가상화된 실행 환경 제공
  • Docker는 컨테이너 기술을 구현한 도구로, DockerfileDocker Hub를 통해 이미지 기반 배포 및 관리 가능
  • 컨테이너 오케스트레이션자동 확장, 자가 복구, 선언적 인프라 문제를 해결하여 대규모 인프라 운영 효율성 향상

섹션별 세부 요약

1. 컨테이너 기술의 정의 및 특징

  • 컨테이너는 애플리케이션과 실행 환경을 패키징하여 격리된 공간에서 실행 가능
  • 장점

- 가상머신 대비 리소스 사용량 감소빠른 실행 속도

- 환경 일관성 보장 (모든 환경에서 동일하게 동작)

- CI/CD 연동을 통한 배포 자동화 가능

  • 기본 기술

- Linux의 chroot, cgroups, namespaces 활용

2. Docker의 역할과 특징

  • Docker는 컨테이너 기술을 사용자 친화적으로 구현한 도구
  • 주요 기능

- Dockerfile을 통해 이미지 정의 및 재사용 가능

- Docker Hub를 통한 중앙 저장소 제공

- docker run, docker build직관적인 CLI 명령어 지원

  • 대체 도구 예시

- Podman, LXC, rkt, containerd, CRI-O

3. 컨테이너 오케스트레이션의 개념 및 필요성

  • 컨테이너 오케스트레이션은 여러 컨테이너의 배포, 관리, 확장, 네트워킹 등을 자동화하는 기술
  • Docker 단독 사용의 한계

- 수동 조절 필요 (트래픽 증가 시 컨테이너 수 조정)

- 장애 복구 기능 부재

- 상태 직접 관리 필요 (YAML 등 선언적 설정 파일 사용 불가)

  • 대표 도구

- Kubernetes, Docker Swarm, Amazon ECS (Kubernetes가 가장 널리 사용됨)

결론

  • Docker는 컨테이너 기술의 구현 도구로, Kubernetes와 같은 오케스트레이션 도구와 결합하여 자동 확장, 자가 복구, 선언적 인프라 문제를 해결
  • 실무 팁

- 대규모 인프라 운영 시 Kubernetes 사용 권장

- DockerfileDocker Hub를 통해 이미지 관리 자동화

- YAML 기반 선언적 설정 파일 사용으로 인프라 일관성 확보