안녕하세요. 최근 AI 에이전트를 위해서 n8n을 많이 사용하시는데요. 특히 최근에 MCP를 공식으로 지원하면서 업데이트를 안하고 계셨던 분들도 이번에는 업데이트를 한꺼번에 하실 것 같아서 업데이트 방법을 정리해서 올려봅니다. 저는 Docker에서 n8n을 사용하고 있고 하나씩 배워나가고 있는거라 나중에 또 업데이트할 일이 생기면 아무래도 도커 명령어가 익숙하지 않기 때문에 도커 환경용으로만 작성할 예정입니다. 적어도 저와 같은 초보자분들에게는 따라하기만 하면 될정도로 상세히 작성해보도록 하겠습니다.
이 글에서는 n8n을 도커 환경에서 가장 최신 버전으로 안전하고 쉽게 업데이트하는 방법을 단계별로 알아보겠습니다.
만약에 n8n 에서 MCP 노드를 바로 사용하고 싶으신 분들은 별도에 베타버전으로 업데이트 해야함으로 끝까지 내용을 읽어주시기 바랍니다.
자 이제 초보자도 쉽게 따라 할 수 있도록 차근차근 설명해 드리겠습니다.
업데이트 전 준비 (백업 포함)
- n8n 데이터 백업: 업데이트 중 예상치 못한 문제가 발생하더라도 소중한 워크플로우와 설정 데이터를 복구할 수 있도록 백업을 진행하세요. 백업 방법은 n8n 데이터를 저장하는 방식에 따라 다릅니다.
- 내 데이터 저장 방식 확인:명령어로 파일의
volumes
설정을 확인하세요.으로 나온다면 Named Volume입니다. 아무것도 없다면 Bind Mount 로 특정한 별로의 PATH에 있다는 말입니다.-v n8n_data:/home/node/.n8n
처럼n8n_data
같은 이름(Named Volume) 을 사용했나요?-v /Users/myname/n8n_data:/home/node/.n8n
처럼/Users/myname/n8n_data
같은 호스트 컴퓨터의 특정 경로(Bind Mount) 를 사용했나요?
local n8n_data
docker volume ls
- 백업 방법:이름을 가진 볼륨은 도커가 관리하는 별도의 공간에 저장됩니다. 이 데이터를 백업하려면, 해당 볼륨을 사용하는 임시 컨테이너를 실행하여 데이터를 압축 파일로 만들 수 있습니다.
n8n_data
: 백업하려는 볼륨의 이름입니다. 다른 이름을 사용했다면 해당 이름으로 바꿔주세요.-v n8n_data:/volume
:n8n_data
볼륨을 임시 컨테이너의/volume
디렉토리에 연결합니다.-v $(pwd):/backup
: 현재 터미널 경로($(pwd)
)를 임시 컨테이너의/backup
디렉토리에 연결합니다. 백업 파일이 저장될 위치입니다. 다른 경로(예:/path/to/my/backups
)로 변경해도 됩니다.ubuntu
: 백업 명령(tar)을 실행하기 위한 가벼운 임시 리눅스 이미지입니다.tar cvf /backup/n8n-backup-$(date +%Y%m%d).tar /volume
:/volume
디렉토리(즉, n8n 데이터)의 전체 내용을/backup
디렉토리(즉, 현재 터미널 경로)에n8n-backup-오늘날짜.tar
라는 이름의 압축 파일로 만듭니다.--rm
: 백업 명령 실행 후 임시 컨테이너를 자동으로 삭제합니다.- 명령 실행 후 현재 경로에
n8n-backup-YYYYMMDD.tar
파일이 생성되었는지 확인하세요. 이 파일을 안전한 곳에 보관합니다. - (B) 호스트 경로(Bind Mount)를 사용하는 경우 (예:
/Users/myname/n8n_data
)* - 호스트 컴퓨터의 특정 폴더를 직접 연결한 경우 백업은 더 간단합니다. 해당 폴더를 통째로 복사해서 별도로 저장해 두기만 하면 됩니다.
# 'n8n_data' 볼륨의 내용을 현재 폴더에 'n8n-backup-오늘날짜.tar' 파일로 압축 백업합니다. docker run --rm -v n8n_data:/volume -v $(pwd):/backup ubuntu tar cvf /backup/n8n-backup-$(date +%Y%m%d).tar /volume
- 터미널을 열고 다음 명령어를 실행하세요. (백업 파일은 현재 터미널 위치에 저장됩니다.)
- (A) 이름(Named Volume)을 사용하는 경우 (예:
n8n_data
)
- 내 데이터 저장 방식 확인:명령어로 파일의
Docker Desktop 또는 Docker CLI(명령줄) 사용 시
Docker Desktop의 그래픽 인터페이스를 이용하거나, 터미널(명령 프롬프트, PowerShell 등)에서 직접 Docker 명령어를 입력하여 n8n을 관리하는 경우 이 방법을 따릅니다.
1단계: 최신 n8n 이미지 받기 (Pull)
먼저 n8n의 가장 최신 버전 이미지를 내 컴퓨터로 다운로드해야 합니다.
- Docker Desktop 사용:
- Docker Desktop을 실행합니다.
- 왼쪽 메뉴에서
Images
탭으로 이동합니다. - n8n 이미지 (
docker.n8n.io/n8nio/n8n
)를 찾습니다. - 해당 이미지 옆의 점 세 개(...) 메뉴를 클릭하고
Pull
을 선택합니다.
- 명령줄(CLI) 사용:
터미널을 열고 다음 명령어를 입력합니다.(특정 버전이나 개발 버전을 원하면:latest
대신:1.88.0
또는:next
등을 붙여주세요. 예:docker pull docker.n8n.io/n8nio/n8n:1.88.0
) docker pull docker.n8n.io/n8nio/n8n
⭐현재(25년4월14일기준) latest 버전으로 이미지를 당겨오면 1.86.1 버전이기 때문에 MCP가 지원되는 버전을 사용해보고 싶으시다면? 1.88.0 또는 next 라고 적어주셔야합니다.
2단계: 현재 실행 중인 n8n 컨테이너 ID 확인
업데이트를 위해 기존 컨테이너를 중지하고 삭제해야 합니다. 그러려면 먼저 컨테이너의 고유 ID를 알아야 합니다. 터미널에 다음 명령어를 입력하세요.
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 xxx xxxx xxxxxx xxxxx xxxxx 5678:5678 n8n
명령어 입력시 이렇게 컨테이너 ID 뒤로 여러 정보가 뜨는데 현재는 컨테이너 ID 만 알면됩니다.
여러개라면 당연히 실행 결과 목록에서 n8n 컨테이너를 찾고, CONTAINER ID
열의 값을 확인합니다. (예: a1b2c3d4e5f6
)
3단계: 기존 n8n 컨테이너 중지 (Stop)
확인한 컨테이너 ID를 사용하여 n8n 컨테이너를 중지합니다. <container_id>
부분을 실제 ID로 바꿔서 입력하세요.
docker stop <container_id>
(예: docker stop a1b2c3d4e5f6
)
4단계: 기존 n8n 컨테이너 삭제 (Remove)
중지된 컨테이너를 삭제합니다. 이래야 새 버전의 컨테이너를 동일한 설정(특히 포트 번호)으로 실행할 때 충돌이 발생하지 않습니다.
docker rm <container_id>
(예: docker rm a1b2c3d4e5f6
)
(중요!) 이 단계에서 컨테이너는 삭제되지만, 데이터를 저장하도록 설정한 볼륨(예: n8n_data
)이나 마운트된 폴더는 그대로 남아있습니다. 그래서 다음 단계에서 새 컨테이너를 실행할 때 기존 데이터를 그대로 사용할 수 있습니다.
5단계: 새 버전의 n8n 컨테이너 시작 (Run)
이제 1단계에서 받은 최신 이미지로 새 n8n 컨테이너를 시작합니다. 여기서 가장 중요한 것은, 이전에 n8n 컨테이너를 처음 실행했을 때 사용했던 모든 옵션(포트 설정 -p
, 볼륨 설정 -v
, 환경 변수 -e
등)을 똑같이 사용해야 한다는 것입니다!
일반적인 형태는 다음과 같습니다. <컨테이너_이름>
과 [기존_옵션들]
부분을 실제 사용했던 값으로 채워주세요.
docker run --name=<컨테이너_이름> [기존_옵션들] -d docker.n8n.io/n8nio/n8n
예시 (이전에 아래와 같이 실행했다면):
# 이전 실행 명령어 예시
# docker run --name=n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -e GENERIC_TIMEZONE="Asia/Seoul" -d docker.n8n.io/n8nio/n8n
# 업데이트 후 새 컨테이너 시작 명령어 (동일한 옵션 사용)
docker run --name=n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -e GENERIC_TIMEZONE="Asia/Seoul" -d docker.n8n.io/n8nio/n8n
--name
: 컨테이너 이름을 지정합니다. 이전과 같은 이름을 사용하려면 4단계에서 꼭 삭제해야 합니다.-p 5678:5678
: 호스트의 5678 포트를 컨테이너의 5678 포트로 연결합니다. (기존 설정 유지)-v n8n_data:/home/node/.n8n
:n8n_data
라는 도커 볼륨을 컨테이너 내부의/home/node/.n8n
경로(n8n 데이터 저장 위치)에 연결합니다. 이 부분이 기존 워크플로우와 설정을 유지하는 핵심입니다! (기존 설정 유지)-e GENERIC_TIMEZONE="Asia/Seoul"
: 환경 변수 설정 예시입니다. (기존 설정 유지)-d
: 컨테이너를 백그라운드에서 실행합니다.
이제 웹 브라우저에서 n8n 주소(보통 http://localhost:5678
or htts://호스팅 주소)로 접속한뒤
좌측 하단에 계정옆 점3개를 클릭하여 setting을 클릭한 뒤 같은 위치에 버전 숫자가 정상적으로 바뀌어 있다면 알맞게 잘된 것입니다.
추가 팁:
- 업데이트 후 확인: n8n에 접속한 후, 워크플로우가 정상적으로 작동하는지, 설정이 유지되었는지 확인하세요. 문제가 발생하면 백업해둔 데이터를 사용하여 이전 상태로 복구할 수 있습니다.
- 로그 확인: 컨테이너가 제대로 시작되지 않는다면
docker logs <컨테이너_이름_또는_ID>
명령어로 로그를 확인하여 원인을 파악할 수 있습니다. - Tunnel 옵션:
--tunnel
옵션은 외부에서 로컬 n8n에 접근해야 하는 개발/테스트 목적으로만 사용하세요. 프로덕션 환경에서는 보안상 위험하므로 사용하지 않는 것이 좋습니다.
이제 여러분도 자신 있게 n8n 도커 버전을 업데이트하고 최신 기능을 마음껏 활용하시기바랍니다.