DevOps/docker

[docker] Docker Swarm을 활용한 NFS Volume 생성과 서비스 배포

Sophie소피 2024. 2. 1. 12:29

Introduction

Docker Swarm을 활용하여 NFS(Network File System) Volume을 생성하고 서비스를 배포하는 방법에 대해 알아보겠습니다. 이를 통해 여러 Docker 노드 간에 데이터를 공유하고 분산된 서비스를 운영할 수 있습니다.

NFS란?

NFS(Network File System)은 리눅스와 유닉스 계열 운영체제에서 사용되는 분산 파일 시스템입니다.

파일 및 디렉토리를 네트워크를 통해 다른 컴퓨터에 공유할 수 있게 해주는 프로토콜입니다.

Docker Swarm 이란?

Docker Swarm은 Docker 컨테이너 오케스트레이션 도구 중 하나로,

여러 Docker 호스트를 하나의 가상화된 호스트로 관리하는 기능을 제공합니다.

Swarm을 통해 여러 노드에 걸쳐 컨테이너를 분산 배치하고 관리할 수 있습니다.

명령어 설명

docker swarm init 현재 노드를 Swarm 매니저로 초기화합니다.
docker swarm join Swarm에 노드를 가입시켜 클러스터를 형성하고 워커 노드를 추가할 수 있습니다.
docker service create 서비스는 여러 노드에서 컨테이너 인스턴스를 실행하고 관리하여 분산된 서비스를 생성합니다.
docker node 노드를 추가하거나 제거하고, 노드 상태를 확인하는 등의 관리 작업을 수행할 수 있습니다.

Docker Swarm을 사용하면 컨테이너 오케스트레이션을 간편하게 수행할 수 있어,

분산 시스템을 구성하고 운영하는 데 효과적입니다.

1. Docker Swarm 초기화

먼저 Docker Swarm을 초기화합니다. 현재 노드를 Swarm 매니저로 설정하기 위해 다음 명령어를 실행합니다.

docker swarm init

Swarm이 초기화되면 다음과 같은 출력이 나타납니다.

Swarm이 초기화되면 다음과 같은 출력이 나타납니다.

"To add a worker to this swarm" 부분에 표시된 명령어를 나중에 사용할 것이므로 복사해두세요.

 

2. NFS 서버 설정

NFS 서버를 설정합니다. 아래 명령어를 사용하여 NFS Volume을 생성합니다.

이때, **<token>**은 docker swarm init 명령어를 통해 생성된 토큰이며,

**<manager-ip>**와 **<manager-port>**는 매니저 노드의 IP 주소와 포트입니다.

 

3. 서비스 생성 및 배포

이제 NFS Volume을 사용하는 Docker 서비스를 생성하고 배포합니다.

다음 명령어를 사용하여 서비스를 생성합니다.

docker service create -d \\
  --name nfs-service \\
  --mount 'type=volume,source=nfsvolume,target=/app,volume-driver=local' \\
  nginx:latest

 

이제 서비스가 생성되고 동작합니다. Swarm에서는 이 서비스를 여러 노드에 분산하여 운영할 수 있습니다.

 

 

4. 확인

서비스 및 Volume이 정상적으로 생성되었는지 확인합니다.

docker service ls

이제 Docker Swarm을 통해 NFS Volume을 생성하고 서비스를 배포하는 과정이 완료되었습니다.

 

'DevOps > docker' 카테고리의 다른 글

[Docker] docker 기본 명령어  (0) 2023.01.06