how to install n8n using docker

Docker를 사용한 n8n 설치 방법

1. Docker 명령어

n8n 데이터 볼륨 생성

docker volume create n8n_data
  • n8n_data라는 이름의 Docker 볼륨을 생성합니다.
  • 이 볼륨은 n8n의 데이터를 영구적으로 저장하기 위한 공간입니다.

n8n 컨테이너 실행

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

옵션 설명

  • -it: 인터랙티브 모드로 실행 (터미널 입력 및 출력 가능)
  • --rm: 컨테이너 종료 시 자동으로 삭제
  • --name n8n: 컨테이너 이름을 n8n으로 지정
  • -p 5678:5678: 호스트의 5678 포트를 컨테이너의 5678 포트로 연결
  • -v n8n_data:/home/node/.n8n: 앞서 생성한 볼륨을 컨테이너 내부의 n8n 데이터 디렉토리에 마운트
  • docker.n8n.io/n8nio/n8n: 사용할 n8n Docker 이미지

실행 후 접속

브라우저에서 `http://localhost:5678` 로 접속하면 n8n 웹 인터페이스를 사용할 수 있습니다.
볼륨을 사용했기 때문에, 컨테이너를 재시작해도 워크플로우와 설정이 보존됩니다.


2. Docker 볼륨 공유 방법

동시에 여러 컨테이너에서 사용

# 첫 번째 컨테이너
docker run -v n8n_data:/app/data image1

# 두 번째 컨테이너 (같은 볼륨 사용)
docker run -v n8n_data:/app/shared image2

순차적으로 다른 컨테이너에서 사용

# n8n 컨테이너 종료 후
docker run -v n8n_data:/backup ubuntu tar -czf /backup/backup.tar.gz /backup/data

3. 실제 활용 예시

데이터 백업

# n8n 데이터를 다른 컨테이너로 백업
docker run --rm -v n8n_data:/source -v $(pwd):/backup ubuntu cp -r /source /backup/n8n_backup

데이터 마이그레이션

# 볼륨의 데이터를 다른 애플리케이션에서 사용
docker run -v n8n_data:/data postgres:13

(같은 데이터 디렉토리를 공유)


4. 주의사항

  • 동시 접근: 여러 컨테이너가 동시에 쓰기 작업을 하면 데이터 충돌 가능
  • 파일 권한: 컨테이너마다 사용자 ID가 다를 수 있어 권한 문제 발생 가능
  • 데이터 일관성: 한 컨테이너에서 수정한 내용이 다른 컨테이너에 즉시 반영됨

이러한 특성 때문에 볼륨을 통한 컨테이너 간 데이터 공유, 백업, 마이그레이션이 매우 유용하게 활용됩니다.




오류조치 

# -e N8N_SECURE_COOKIE=false   옵션추가  
sudo docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -e N8N_SECURE_COOKIE=false docker.n8n.io/n8nio/n8n


#  volume mount하지 않고 ~/.n8n local folder에 n8n data 저장할 때
sudo docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n -e N8N_SECURE_COOKIE=false n8nio/n8n



How to Fix the Permission Issue 폴더 권한오류

you need to change the ownership of the local .n8n directory so that the container's node user can access it. Run the following commands on your host machine:

# Change Ownership to UID 1000:
sudo chown -R 1000:1000 ~/.n8n

# This gives ownership to the user ID that n8n uses internally.  Adjust Permissions:
sudo chmod -R 755 ~/.n8n


_

댓글