Menu

n8n Docker 설치 완벽 가이드: 5분 만에 자동화 서버 구축 🚀

n8n 로고와 Docker 로고가 결합된 배경 위에 'n8n Docker 설치' 텍스트가 떠 있는 이미지

매일 반복되는 업무에 지치셨나요? 😫 API 연동, 데이터 동기화, 알림 발송 등 단순하지만 시간 잡아먹는 작업들을 자동화하고 싶으신가요? 그렇다면 n8n이 여러분의 구원투수가 될 수 있습니다! n8n은 코딩 지식 없이도 강력한 워크플로우를 구축할 수 있는 오픈소스 자동화 도구입니다. 그리고 Docker를 사용하면 이 n8n을 단 몇 분 만에, 어떤 환경에서든 손쉽게 설치하고 운영할 수 있습니다. 이 글에서는 Docker를 활용한 n8n 설치법을 A부터 Z까지 상세히 알려드립니다. 커피 한 잔 준비하시고, 자동화의 세계로 함께 떠나볼까요? ☕

n8n과 Docker, 왜 환상의 짝꿍인가? 🤔

먼저 n8n이 무엇인지 간단히 짚고 넘어가죠. n8n은 "nodemation"의 약자로, 다양한 웹 서비스와 애플리케이션을 시각적인 인터페이스로 연결하여 복잡한 자동화 워크플로우를 만들 수 있게 해줍니다. Zapier나 Integromat과 유사하지만, 오픈소스이며 직접 호스팅할 수 있다는 큰 장점이 있습니다.

그렇다면 왜 Docker일까요? Docker는 애플리케이션을 컨테이너라는 격리된 환경에 패키징하여 실행하는 기술입니다. n8n을 Docker로 실행하면 다음과 같은 이점들이 있습니다:

  • 간편한 설치 및 업데이트: 복잡한 의존성 설정 없이 단 몇 줄의 명령어로 설치가 끝납니다. 업데이트도 마찬가지고요.
  • 환경 독립성: 내 노트북, 회사 서버, 클라우드 어디든 동일한 환경으로 n8n을 실행할 수 있습니다. "제 컴퓨터에서는 잘 됐는데..."라는 말은 이제 안녕! 👋
  • 데이터 및 설정 관리 용이: 볼륨(Volume)을 사용해 n8n 데이터를 영구적으로 보관하고, 환경 변수로 설정을 쉽게 변경할 수 있습니다.
  • 확장성: 필요에 따라 여러 n8n 인스턴스를 쉽게 띄우거나 리소스를 조절할 수 있습니다.

이 정도면 n8n과 Docker가 왜 최고의 조합인지 아시겠죠? 이제 본격적으로 설치를 시작해봅시다!

"자동화는 단순한 시간 절약을 넘어, 창의적인 작업에 집중할 수 있는 자유를 선사합니다." – 어느 개발자

사전 준비: Docker 설치 확인하기

n8n을 Docker로 실행하려면 당연히 Docker가 설치되어 있어야 합니다. 만약 Docker가 아직 설치되지 않았다면, Docker 공식 웹사이트에서 여러분의 운영체제에 맞는 Docker Desktop 또는 Docker Engine을 설치해주세요.

Docker가 이미 설치되어 있다면, 터미널(Windows에서는 PowerShell 또는 CMD)을 열고 다음 명령어로 설치 여부와 버전을 확인합니다:


docker --version
docker-compose --version  # 구버전 Docker Compose
# 또는
docker compose version   # 최신 Docker Compose (플러그인 방식)
                            

위 명령어를 실행했을 때 버전 정보가 잘 나온다면 준비 완료입니다! 만약 `docker-compose` 관련 명령어가 없다면, 최신 Docker Desktop에는 `docker compose` (하이픈 없음) 명령어로 통합되었으니 걱정 마세요.

터미널에서 Docker 및 Docker Compose 버전 확인 명령어 실행 결과
터미널에서 Docker 버전 확인 예시

Docker로 n8n 실행하기: 단계별 가이드

가장 간단한 방법부터 시작해서, 실제 운영 환경에 적합한 방법까지 차근차근 알아봅시다.

1. 기본 실행 (테스트용)

n8n을 빠르게 테스트해보고 싶다면 다음 명령어를 사용하세요. 이 방법은 n8n 컨테이너를 중지하면 데이터가 사라지므로, 실제 운영에는 적합하지 않습니다.


docker run -it --rm --name n8n -p 5678:5678 n8nio/n8n
                            
  • -it: 인터랙티브 모드로 실행하며, 로그를 터미널에서 바로 확인할 수 있습니다.
  • --rm: 컨테이너가 중지되면 자동으로 삭제합니다.
  • --name n8n: 컨테이너의 이름을 'n8n'으로 지정합니다.
  • -p 5678:5678: 호스트의 5678 포트와 컨테이너의 5678 포트를 연결합니다. (왼쪽: 호스트 포트, 오른쪽: 컨테이너 포트)
  • n8nio/n8n: n8n 공식 Docker 이미지입니다.

명령 실행 후 웹 브라우저에서 `http://localhost:5678`로 접속하면 n8n 화면을 볼 수 있습니다.

2. 영구 데이터 저장 (볼륨 사용)

n8n에서 생성한 워크플로우와 설정, 사용자 데이터 등을 컨테이너가 중지/삭제되어도 유지하려면 Docker 볼륨을 사용해야 합니다. 다음은 `n8n_data`라는 이름의 볼륨을 생성하고 연결하는 방법입니다.


docker volume create n8n_data

docker run -d --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n
                            
  • docker volume create n8n_data: 'n8n_data'라는 이름의 Docker 볼륨을 생성합니다.
  • -d: 백그라운드(detached) 모드로 실행합니다.
  • -v n8n_data:/home/node/.n8n: `n8n_data` 볼륨을 컨테이너 내부의 `/home/node/.n8n` 경로(n8n 데이터 저장 위치)에 마운트합니다.

이제 컨테이너를 중지했다가 다시 시작해도 데이터가 보존됩니다. 👍

3. 환경 변수 설정

n8n은 다양한 환경 변수를 통해 설정을 변경할 수 있습니다. 예를 들어, 시간대를 한국 시간으로 맞추고 싶다면 `GENERIC_TIMEZONE` 환경 변수를 사용합니다.


docker run -d --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e GENERIC_TIMEZONE="Asia/Seoul" \
  n8nio/n8n
                            
  • -e GENERIC_TIMEZONE="Asia/Seoul": 시간대를 서울로 설정합니다.

다른 유용한 환경 변수들은 n8n 공식 문서에서 확인할 수 있습니다. 예를 들어, 웹훅 테스트 URL을 위한 `WEBHOOK_TUNNEL_URL`, 실행 모드 변경을 위한 `EXECUTIONS_MODE` 등이 있습니다.

Docker Compose로 n8n 전문가처럼 관리하기 ✨

여러 개의 Docker 옵션을 매번 명령어로 입력하는 것은 번거롭고 실수하기 쉽습니다. 이럴 때 `docker-compose.yml` 파일을 사용하면 n8n 실행 설정을 체계적으로 관리하고, 단 한 번의 명령으로 실행/중지할 수 있습니다. 이게 바로 전문가들이 애용하는 방식이죠!

프로젝트 폴더를 하나 만들고, 그 안에 `docker-compose.yml` 파일을 다음 내용으로 작성하세요:


version: '3.7'

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n_service # 컨테이너 이름 지정
    restart: unless-stopped # 예기치 않게 종료되면 자동으로 재시작 (시스템 재부팅 시에도)
    ports:
      - "5678:5678" # 호스트 포트:컨테이너 포트
    environment:
      - GENERIC_TIMEZONE=Asia/Seoul
      # - N8N_BASIC_AUTH_ACTIVE=true # 기본 인증 사용 여부 (선택)
      # - N8N_BASIC_AUTH_USER=myuser # 기본 인증 사용자명 (선택)
      # - N8N_BASIC_AUTH_PASSWORD=mypassword # 기본 인증 비밀번호 (선택)
      # - WEBHOOK_TUNNEL_URL=https://your-custom-domain.com/ # 웹훅 터널 URL (선택, HTTPS 필요)
    volumes:
      - n8n_data_compose:/home/node/.n8n # n8n_data_compose 볼륨을 컨테이너 내부에 마운트
    # user: "node" # 필요시 사용자 지정 (보안 강화)

volumes:
  n8n_data_compose: {} # n8n_data_compose 라는 이름의 볼륨을 정의
                            

위 파일에서 주석 처리된 부분(#으로 시작하는 줄)은 필요에 따라 주석을 해제하고 값을 설정하여 사용할 수 있습니다. 예를 들어, 간단한 접속 인증을 추가하고 싶다면 `N8N_BASIC_AUTH_ACTIVE`, `N8N_BASIC_AUTH_USER`, `N8N_BASIC_AUTH_PASSWORD`를 활성화하세요.

`docker-compose.yml` 파일이 있는 폴더에서 다음 명령어를 실행합니다:


# 실행 (백그라운드)
docker-compose up -d
# 또는 최신 Docker
# docker compose up -d

# 로그 확인
# docker-compose logs -f
# docker compose logs -f

# 중지
# docker-compose down
# docker compose down
                            

docker-compose up -d 명령 하나면 끝! 정말 간편하죠? 😉

핵심 포인트: Docker Compose가 정답!

간단한 테스트가 아니라면, Docker Compose를 사용한 n8n 설치 및 운영을 강력히 추천합니다. 설정 관리가 용이하고, 재시작 정책, 볼륨 관리 등을 깔끔하게 처리할 수 있어 안정적인 서비스 운영에 필수적입니다.

n8n 접속 및 초기 설정

Docker 컨테이너가 성공적으로 실행되었다면, 웹 브라우저를 열고 주소창에 `http://localhost:5678` (또는 `docker-compose.yml`에서 포트를 변경했다면 해당 포트)을 입력하세요. n8n 초기 설정 화면이 나타날 겁니다.

웹 브라우저에 나타난 n8n 초기 설정 화면
짜잔! n8n이 여러분을 기다리고 있습니다.

화면 안내에 따라 소유자(owner) 계정을 설정하고, 몇 가지 기본 설정을 마치면 n8n 대시보드로 진입하게 됩니다. 이제 여러분만의 자동화 워크플로우를 만들 준비가 모두 끝났습니다! 🥳

마무리: 자동화 여정의 시작

축하합니다! Docker를 이용해 n8n 자동화 서버를 성공적으로 구축하셨습니다. 이제부터는 n8n의 다양한 노드들을 탐색하고 연결하면서, 상상했던 모든 자동화 아이디어를 현실로 만들어보세요. 처음에는 간단한 알림 자동화부터 시작해서, 점차 복잡한 데이터 처리, API 연동 워크플로우까지 도전해볼 수 있습니다.

n8n 커뮤니티(https://community.n8n.io/)나 공식 문서도 훌륭한 학습 자료가 될 것입니다. 궁금한 점이 있다면 언제든 댓글로 문의해주세요. 여러분의 자동화 여정을 응원합니다! 🚀

공유하기:
Home Search New Post