Sign In

n8n Self-hosted Docker 명령어 모음

현재 상태 보는 법

sudo docker ps -a

Docker 종료

sudo docker stop n8n

n8n 서버 최신 버전 업데이트

# 업데이트 sudo docker pull docker.n8n.io/n8nio/n8n # 중지 sudo docker stop n8n # 삭제 (n8n을 삭제 후 다시 실행하기) - 데이터가 삭제되는 건 아닙니다. sudo docker rm n8n # 다시 Docker 실행 sudo docker run -it --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="Asia/Seoul" \ -e TZ="Asia/Seoul" \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n:latest

n8n 서버 특정 버전 업데이트

아직 stable이 아닌 베타 pre-release된 버전을 쓰고 싶다면 아래 처럼 하면 된다.
# 업데이트 sudo docker pull docker.n8n.io/n8nio/n8n:1.88.0 # 중지 sudo docker stop n8n # 삭제 (n8n을 삭제 후 다시 실행하기) - 데이터가 삭제되는 건 아님. 걱정ㄴㄴ sudo docker rm n8n # 다시 Docker 실행 sudo docker run -it --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="Asia/Seoul" \ -e TZ="Asia/Seoul" \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n:1.88.0

n8n Docker 실행 명령어

# Start the container docker run -it --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="Asia/Seoul" \ -e TZ="Asia/Seoul" \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n:latest
명령어 의미 (chatGPT)
이 명령어는 Docker를 사용해 n8nio/n8n:latest 이미지를 실행하는 방식인데, 각 옵션의 의미를 하나씩 쉽게 설명해줄게! 😊 1. docker run • 새 컨테이너를 실행하라는 명령어야. 2. -it • 인터랙티브 모드를 활성화. • -i: 컨테이너에 입력을 보낼 수 있게. • -t: 터미널을 연결해서 명령어를 실행할 수 있게. 3. --rm • 컨테이너 실행이 끝나면 자동으로 삭제하라는 뜻이야. • 디스크 공간 낭비 방지에 유용하지. • 컨테이너를 테스트로 실행할 때 주로 사용해. 4. --name n8n • 컨테이너의 이름을 n8n으로 지정해. • 기본적으로 Docker는 무작위 이름을 생성하는데, 여기서는 n8n이라는 이름으로 관리하기 쉽게 만들어. 5. -p 5678:5678 • 포트 매핑 설정. • 호스트 머신(네 컴퓨터)의 5678 포트를 컨테이너 안의 5678 포트와 연결해. • 즉, 네 컴퓨터에서 http://localhost:5678로 접속하면 컨테이너 안의 n8n 서비스에 접속할 수 있어. 6. -e GENERIC_TIMEZONE="Asia/Seoul" • 컨테이너의 환경 변수로 GENERIC_TIMEZONE="Asia/Seoul"을 설정. • n8n에서 사용할 표준 시간대를 한국 시간으로 설정하기 위한 옵션. 7. -e TZ="Asia/Seoul" • 컨테이너의 환경 변수로 TZ="Asia/Seoul"을 설정. • 컨테이너의 시스템 시간대를 한국 시간으로 맞추는 옵션. • 위의 GENERIC_TIMEZONE과 비슷하지만, Docker의 기본 시간대 설정과 관련 있어. 8. -v n8n_data:/home/node/.n8n • 볼륨 마운트 설정. • 컨테이너 안의 /home/node/.n8n 디렉터리를 호스트의 n8n_data 볼륨과 연결. • 이 설정 덕분에 데이터가 컨테이너를 삭제해도 유지돼. • 예: n8n의 워크플로우 설정 데이터가 여기 저장돼. 9. n8nio/n8n:latest • 실행할 Docker 이미지 이름. • Docker Hub에서 n8nio/n8n:latest 이미지를 가져와 실행해. 요약된 동작 1. n8nio/n8n:latest 이미지를 가져와 실행. 2. 컨테이너 이름은 n8n. 3. 호스트의 포트 5678을 컨테이너의 포트 5678과 연결. 4. 시간대를 한국 시간(Asia/Seoul)으로 설정. 5. 데이터 저장소를 n8n_data 볼륨으로 연결. 6. 컨테이너 실행 종료 후 자동으로 삭제. 이 명령어를 실행하면 브라우저에서 http://localhost:5678로 접속해 n8n을 바로 사용할 수 있어! 🚀
웹훅URL, SMTP 쓰는 경우 (선택사항)
sudo docker run -it --restart unless-stopped --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n \ -e WEBHOOK_URL="https://datapopcorn.win" \ -e N8N_SMTP_HOST="smtp.gmail.com" \ -e N8N_SMTP_PORT=465 \ -e N8N_SMTP_USER="datapopcorn@gmail.com" \ -e N8N_SMTP_PASS="****" \ -e N8N_SMTP_SENDER="datapopcorn@gmail.com" \ -e N8N_SMTP_SECURE="true" \ -e N8N_SMTP_SSL="true" \ -e GENERIC_TIMEZONE="Asia/Seoul" \ -d docker.n8n.io/n8nio/n8n

Docker 종료 알림 웹훅 (심화)

Docker의 비정상적 종료를 알림받기 위해 5분 단위로 Docker의 상태를 체크하는 웹훅 시스템을 만듬.
check_docker_status.sh
#!/bin/bash # 컨테이너 이름을 변수로 지정 container_name="n8n" # 컨테이너 상태를 확인 container_status=$(docker inspect --format "{{.State.Status}}" $container_name) # 컨테이너가 정상적으로 실행 중이지 않으면 디스코드 웹훅으로 알림 전송 if [ "$container_status" != "running" ]; then curl -X POST -H 'Content-Type: application/json' \ --data '{"content":"Docker 컨테이너 '"$container_name"'가 비정상 종료되었습니다."}' \ https://discord.com/api/webhooks/1300104950965080196/**** fi
위 sh을 아래 내용에 맞게 실행하며 작성하기.
touch check_docker_status.sh nano check_docker_status.sh cat check_docker_status.sh chmod +x check_docker_status.sh sudo ./check_docker_status.sh
# crontab 편집 crontab -e # crontab 리스트 확인 crontab -l
실제 작동 예시
이 템플릿은 CCL BY-NC-ND 2.0 KR 라이선스를 따릅니다.
저작자 명시 필수 · 영리적 사용 불가 · 내용 변경 불가