공든탑앱 열기

컨테이너와 오케스트레이션

리눅스마스터 2급 · 응용분야 · 약 9분

쉽게 말하면

프로그램과 그 프로그램이 돌아가는 데 필요한 것들을 상자 하나에 담아, 어느 서버에서든 똑같이 실행하게 하는 기술이에요(Docker). 가상 머신과 달리 운영체제의 심장(커널)은 같이 쓰고 방만 나눠서 훨씬 가볍고 빨라요.

시험용 정의

컨테이너는 애플리케이션과 실행에 필요한 라이브러리·설정을 하나로 묶어, 호스트 커널을 공유하면서 격리된 프로세스로 실행하는 가상화 기술이다. 리눅스 커널의 namespace(격리)와 cgroups(자원 제한)로 구현된다.

비유로 이해하기

VM이 각자 수도·전기까지 따로 갖춘 단독주택이라면, 컨테이너는 수도·전기(커널)를 공유하는 원룸이다. 방은 분리돼 있지만 훨씬 싸고 빨리 입주한다.

자세히

Docker 기본 개념

용어뜻
이미지컨테이너를 만드는 읽기 전용 틀 (예: nginx:1.27)
컨테이너이미지를 실행한 인스턴스
Dockerfile이미지를 만드는 설명서 (FROM, RUN, COPY, CMD…)
레지스트리이미지 저장소. Docker Hub가 대표

자주 쓰는 docker 명령

명령뜻
docker pull nginx이미지 내려받기
docker run -d -p 8080:80 nginx백그라운드 실행, 호스트 8080 → 컨테이너 80
docker ps (-a)실행 중(전체) 컨테이너 목록
docker images이미지 목록
docker stop/start/rm중지/시작/삭제
docker exec -it 이름 bash실행 중 컨테이너 안에서 셸
docker build -t 이름 .Dockerfile로 이미지 만들기

관련 기술

LXC리눅스 컨테이너의 원조 격 도구. 시스템 전체를 컨테이너로
Podman데몬 없이(rootless) 도는 Docker 호환 도구. RHEL 계열 기본
Kubernetes (k8s)여러 서버에 걸친 컨테이너 오케스트레이션. 배포·확장·복구 자동화. 최소 단위는 Pod
Docker SwarmDocker 자체의 오케스트레이션 기능
Ansible여러 서버의 설정·배포를 자동화하는 도구(에이전트 없이 SSH로 동작)

시험에 이렇게 나와요

확인 문제

Q1. 리눅스 서버에서 Docker 컨테이너 10개를 띄웠다. 커널은 몇 개가 돌고 있을까?

  1. 10개
  2. 1개 (호스트 커널을 모두 공유)
  3. 11개
  4. 0개
정답 보기

2번 1개 (호스트 커널을 모두 공유)

컨테이너는 VM과 달리 호스트의 커널 하나를 공유하고, 프로세스·파일시스템·네트워크만 격리한다. 그래서 가볍고 빨리 뜨지만, 리눅스 호스트에서 윈도우 커널이 필요한 프로그램은 그대로 돌릴 수 없다.

Q2. Docker 컨테이너를 여러 노드에 자동으로 배포하고 관리하는 오케스트레이션 플랫폼은?

  1. OpenStack Nova
  2. Hadoop
  3. Kubernetes
  4. Ansible
정답 보기

3번 Kubernetes

Kubernetes다. 여러 서버의 컨테이너를 배포·확장·복구한다. Ansible은 서버 설정 자동화, Hadoop은 대용량 데이터 처리 도구다.

Q3. 컨테이너 격리를 위해 사용하는 리눅스 커널 기능의 조합은?

  1. LVM과 RAID
  2. PAM과 sudo
  3. namespace와 cgroups
  4. SELinux와 iptables
정답 보기

3번 namespace와 cgroups

namespace로 보이는 범위를 나누고 cgroups로 CPU·메모리 사용량을 제한한다.

Q4. 여러 호스트의 컨테이너 배포·확장·관리를 자동화하는 오케스트레이션 도구는?

  1. Kubernetes
  2. Ansible
  3. Vagrant
  4. QEMU
정답 보기

1번 Kubernetes

Kubernetes다. Vagrant는 개발용 가상 머신 관리, QEMU는 에뮬레이터·가상화 도구다.

Q5. 실행 중인 Docker 컨테이너 목록을 보는 명령은?

  1. docker ls
  2. docker top
  3. docker images
  4. docker ps
정답 보기

4번 docker ps

docker ps (중지된 것까지는 -a).

헷갈리기 쉬운 O·X

컨테이너는 각자 독립된 게스트 커널을 가진다.

정답 보기

X 호스트 커널을 공유한다. 독립 커널은 VM.

Docker 이미지는 읽기 전용 틀이고, 이를 실행한 것이 컨테이너다.

정답 보기

O 클래스와 객체 관계와 비슷하다.

컨테이너는 일반적으로 가상 머신보다 시작이 느리고 무겁다.

정답 보기

X OS 부팅이 없어 훨씬 가볍고 빠르다.

함께 보면 좋은 개념