Docker Swarm 소개
Docker Swarm의 개념과 작동 방식, 그리고 간단한 배포를 위한 컨테이너 오케스트레이션에서의 역할을 이해합니다.
Docker Swarm 소개은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
많은 컨테이너 관리하기
컨테이너화된 애플리케이션 수십 개가 실행 중이라고 가정해 보겠습니다. 이 애플리케이션들이 서로 협력해야 한다면 어떻게 해야 할까요? 시스템 하나에 장애가 발생하면 어떻게 해야 할까요?
여러 시스템에서 많은 컨테이너를 수동으로 관리하는 일은 매우 어려워집니다. 컨테이너를 오케스트레이션할 시스템이 필요합니다!

Docker Swarm 소개
Docker Swarm은 Docker에 기본으로 포함된 컨테이너 오케스트레이션 도구입니다. Docker 엔진 클러스터를 하나의 통합된 가상 Docker 호스트처럼 관리할 수 있습니다.
컨테이너 오케스트라의 지휘자처럼 컨테이너들이 조화롭게 함께 작동하도록 관리한다고 생각하면 됩니다.
Docker Swarm을 사용하는 이유
Swarm은 여러 시스템에서 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하여 간소화합니다. 주요 이점은 다음과 같습니다.
- 고가용성: 노드에 장애가 발생하면 정상 노드에서 컨테이너를 다시 시작할 수 있습니다.
- 확장: 수요에 따라 서비스를 쉽게 확장하거나 축소할 수 있습니다.
- 부하 분산: 서비스 복제본 간에 네트워크 요청을 분산합니다.
Swarm 노드: 관리자와 작업자
Docker Swarm 클러스터는 여러 유형의 노드로 구성됩니다.
- 관리자 노드: 두뇌 역할을 합니다. 오케스트레이션 작업을 처리하고 애플리케이션의 원하는 상태를 유지하며 작업을 할당합니다.
- 작업자 노드: 근육 역할을 합니다. 관리자 노드가 할당한 실제 컨테이너화된 서비스(작업)를 받아 실행합니다.
서비스: 애플리케이션의 원하는 상태
Docker Swarm에서는 애플리케이션을 서비스로 정의합니다. 서비스는 애플리케이션의 원하는 상태를 설명합니다.
예를 들어 "Nginx 컨테이너의 복제본 3개를 실행하고 포트 80을 공개하며 이 볼륨을 탑재한다"고 지정하는 서비스를 정의할 수 있습니다.
작업: 실행 중인 컨테이너
서비스를 만들면 Swarm 관리자가 이를 개별 작업으로 나눕니다. 각 작업은 서비스의 단일 실행 컨테이너 인스턴스를 나타냅니다.
서비스에서 복제본 3개를 요청하면 관리자는 작업 3개를 만들고 이를 작업자 노드에 분배합니다.
Swarm 클러스터 초기화하기
새 Swarm을 시작하려면 Docker 엔진에서 초기화합니다. 이 명령을 실행하면 해당 엔진이 새 Swarm의 첫 번째 관리자 노드가 됩니다.
또한 다른 노드가 참여할 수 있도록 토큰을 제공합니다.
docker swarm initSwarm 클러스터에 참여하기
Swarm을 초기화한 후에는 더 많은 시스템을 추가할 수 있습니다. 이러한 시스템은 일반적으로 작업을 실행할 준비가 된 작업자 노드로 참여합니다.
docker swarm init이 제공한 토큰과 관리자 IP를 사용하여 `docker swarm join` 명령을 실행합니다.
docker swarm join --token SWMTKN-1-...
192.168.1.100:2377Swarm 노드 확인하기
어떤 관리자 노드에서든 Swarm 노드의 상태를 확인할 수 있습니다. 이 명령은 클러스터에 속한 모든 노드와 해당 역할 및 상태를 표시합니다.
Swarm의 상태를 모니터링하는 좋은 방법입니다.
docker node lsSwarm 개념 확인
다음 중 Docker Swarm에서 Manager Node의 주요 역할을 가장 잘 설명하는 것은 무엇입니까?
Swarm 소개 복습
이 레슨에서는 Docker의 기본 오케스트레이션 도구인 Docker Swarm을 소개했습니다. 컨테이너 클러스터를 관리하는 목적과 다음 핵심 구성 요소를 배웠습니다.
- Manager Node: 오케스트레이션을 수행하고 상태를 유지합니다.
- Worker Node: 작업(컨테이너)을 실행합니다.
- 서비스: 애플리케이션의 원하는 상태를 정의합니다.
- 작업: 실행 중인 개별 컨테이너 인스턴스입니다.
또한 Swarm을 초기화하고 노드를 추가하는 방법도 살펴보았습니다.
자주 묻는 질문
“Docker Swarm 소개” 강의는 무료인가요?
네 — “Docker Swarm 소개” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“Docker Swarm 소개”에서 뭘 배우나요?
Docker Swarm의 개념과 작동 방식, 그리고 간단한 배포를 위한 컨테이너 오케스트레이션에서의 역할을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Docker Swarm 소개” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Docker Swarm 소개
- Swarm 클러스터 설정
- Swarm에 서비스 배포
- Swarm에서 확장과 롤링 업데이트