안녕하세요. 최근 AI 에이전트를 위해서 n8n을 많이 사용하시는데요. 특히 최근에 MCP를 공식으로 지원하면서 업데이트를 안하고 계셨던 분들도 이번에는 업데이트를 한꺼번에 하실 것 같아서 업데이트 방법을 정리해서 올려봅니다. 저는 Docker에서 n8n을 사용하고 있고 하나씩 배워나가고 있는거라 나중에 또 업데이트할 일이 생기면 아무래도 도커 명령어가 익숙하지 않기 때문에 도커 환경용으로만 작성할 예정입니다. 적어도 저와 같은 초보자분들에게는 따라하기만 하면 될정도로 상세히 작성해보도록 하겠습니다.

이 글에서는 n8n을 도커 환경에서 가장 최신 버전으로 안전하고 쉽게 업데이트하는 방법을 단계별로 알아보겠습니다.
만약에 n8n 에서 MCP 노드를 바로 사용하고 싶으신 분들은 별도에 베타버전으로 업데이트 해야함으로 끝까지 내용을 읽어주시기 바랍니다.
자 이제 초보자도 쉽게 따라 할 수 있도록 차근차근 설명해 드리겠습니다.


업데이트 전 준비 (백업 포함)

  1. 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 사용:
    1. Docker Desktop을 실행합니다.
    2. 왼쪽 메뉴에서 Images 탭으로 이동합니다.
    3. n8n 이미지 (docker.n8n.io/n8nio/n8n)를 찾습니다.
    4. 해당 이미지 옆의 점 세 개(...) 메뉴를 클릭하고 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 도커 버전을 업데이트하고 최신 기능을 마음껏 활용하시기바랍니다.