InfoGrab DocsInfoGrab Docs

Docker 설치

요약

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker Compose를 사용하여 Docker에서 n8n을 실행할 수도 있습니다. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 아래 동영상 가이드를 따라 진행할 수도 있습니다.

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker는 깔끔하고 격리된 환경을 제공하며, 운영체제 및 도구 간 호환성 문제를 방지하고, 데이터베이스와 환경 관리를 더 간단하게 만들어줍니다.

Docker Compose를 사용하여 Docker에서 n8n을 실행할 수도 있습니다. 다양한 아키텍처에 대한 Docker Compose 구성은 n8n-hosting 리포지터리에서 찾을 수 있습니다.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

아래 동영상 가이드를 따라 진행할 수도 있습니다.

사전 요구 사항#

진행하기 전에 Docker를 설치하세요.

  • Docker Desktop은 Mac, Windows, Linux용으로 제공됩니다. Docker Desktop에는 Docker Engine과 Docker Compose가 포함되어 있습니다.
  • Docker EngineDocker Compose는 Linux용 별도 패키지로도 제공됩니다. 그래픽 환경이 없는 Linux 머신을 사용하거나 Docker Desktop UI를 원하지 않는 경우 이를 사용하세요.
참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

n8n 시작하기#

터미널에서 다음 명령을 실행하고, 자리 표시자를 사용자의 타임존으로 바꾸세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

이 명령은 영구 데이터를 저장할 볼륨을 생성하고, 필요한 n8n 이미지를 다운로드한 후, 다음 설정으로 컨테이너를 시작합니다.

  • 호스트에서 포트 5678을 매핑하고 노출합니다.
  • 컨테이너의 타임존을 설정합니다.
    • TZ 환경 변수는 date와 같은 스크립트 및 명령이 반환하는 값을 제어하기 위해 시스템 타임존을 설정합니다.
    • GENERIC_TIMEZONE 환경 변수Schedule Trigger node와 같은 일정 기반 노드에 올바른 타임존을 설정합니다.
  • n8n 설정 파일에 안전한 파일 권한을 강제 적용합니다.
  • n8n에서 태스크를 실행하는 권장 방식인 태스크 러너를 활성화합니다.
  • n8n_data 볼륨을 /home/node/.n8n 디렉터리에 마운트하여 컨테이너 재시작 시에도 데이터를 유지합니다.

실행이 완료되면 다음 주소를 열어 n8n에 접속할 수 있습니다. http://localhost:5678

PostgreSQL과 함께 사용하기#

기본적으로 n8n은 자격 증명1, 과거 실행 내역, 워크플로를 저장하기 위해 SQLite를 사용합니다. n8n은 아래에 설명된 대로 환경 변수를 사용하여 구성할 수 있는 PostgreSQL도 지원합니다.

Note

.n8n 디렉터리를 계속 유지하는 것을 권장합니다

PostgreSQL을 사용할 때 n8n은 SQLite 데이터베이스 파일을 위해 .n8n 디렉터리를 사용할 필요가 없습니다. 하지만 이 디렉터리에는 암호화 키, 인스턴스 로그, 소스 컨트롤 기능 자산과 같은 다른 중요한 데이터도 들어 있습니다. 이러한 요구 사항 중 일부는 우회할 수 있지만(예: N8N_ENCRYPTION_KEY 환경 변수를 설정하는 방식), 잠재적인 문제를 피하기 위해 이 디렉터리에 영구 볼륨을 계속 매핑하는 것이 가장 좋습니다.

PostgreSQL과 함께 n8n을 사용하려면 다음 명령을 실행하고, 자리 표시자(예: 와 같이 꺾쇠괄호로 표시된 부분)를 실제 값으로 바꾸세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE= \
 -e DB_POSTGRESDB_HOST= \
 -e DB_POSTGRESDB_PORT= \
 -e DB_POSTGRESDB_USER= \
 -e DB_POSTGRESDB_SCHEMA= \
 -e DB_POSTGRESDB_PASSWORD= \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

PostgreSQL용 전체 docker-compose 파일은 n8n hosting 리포지터리에서 찾을 수 있습니다.

업데이트#

n8n을 업데이트하려면 Docker Desktop에서 Images 탭으로 이동하여 컨텍스트 메뉴에서 Pull을 선택해 최신 n8n 이미지를 다운로드하세요.

Docker Desktop

명령줄을 사용하여 최신 버전 또는 특정 버전을 가져올 수도 있습니다.

# Pull latest (stable) version
docker pull docker.n8n.io/n8nio/n8n

# Pull specific version
docker pull docker.n8n.io/n8nio/n8n:1.81.0

# Pull next (unstable) version
docker pull docker.n8n.io/n8nio/n8n:next

업데이트된 이미지를 가져온 후, n8n 컨테이너를 중지했다가 다시 시작하세요. 명령줄을 사용할 수도 있습니다. 아래 명령에서 <container_id>를 첫 번째 명령에서 확인한 컨테이너 ID로 바꾸세요.

# Find your container ID
docker ps -a

# Stop the container with the `<container_id>`
docker stop <container_id>

# Remove the container with the `<container_id>`
docker rm <container_id>

# Start the container
docker run --name=<container_name> [options] -d docker.n8n.io/n8nio/n8n

Docker Compose 업데이트#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

전체 스택#

n8n과 cloudflared를 함께 컨테이너로 실행합니다. 터널 URL이 시작 시 출력되며 모든 것이 자동으로 연결됩니다.

pnpm stack --tunnel

서비스만 실행#

pnpm dev 또는 pnpm start로 n8n을 로컬에서 실행하는 것을 선호한다면, cloudflared를 독립 서비스로 시작할 수 있습니다.

# Terminal 1: Start the cloudflared tunnel service
pnpm --filter n8n-containers services --services cloudflared

# Terminal 2: Start n8n locally
pnpm dev

services 명령은 다음을 수행합니다.

  1. host.docker.internal:5678(로컬 n8n)을 가리키는 cloudflared를 시작합니다.
  2. cloudflared의 metrics 엔드포인트에서 공개 터널 URL을 가져옵니다.
  3. WEBHOOK_URLN8N_PROXY_HOPS=1이 포함된 .env 파일을 packages/cli/bin/.env에 작성합니다.
  4. pnpm devpnpm start는 dotenv를 통해 해당 .env를 자동으로 읽어들입니다.

작업이 끝나면 정리하세요.

pnpm --filter n8n-containers services:clean

다음 단계#

  • Docker 이미지의 README 파일에서 Docker 설정에 대한 자세한 정보를 확인하세요.
참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

Footnotes

  1. n8n에서 자격 증명은 특정 앱과 서비스에 연결하기 위한 인증 정보를 저장합니다. 인증 정보(사용자 이름과 비밀번호, API 키, OAuth 시크릿 등)로 자격 증명을 생성한 후에는 관련 앱 노드를 사용하여 해당 서비스와 상호작용할 수 있습니다.

Docker 설치

n8n v2.29
원문 보기
요약

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker Compose를 사용하여 Docker에서 n8n을 실행할 수도 있습니다. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 아래 동영상 가이드를 따라 진행할 수도 있습니다.

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker는 깔끔하고 격리된 환경을 제공하며, 운영체제 및 도구 간 호환성 문제를 방지하고, 데이터베이스와 환경 관리를 더 간단하게 만들어줍니다.

Docker Compose를 사용하여 Docker에서 n8n을 실행할 수도 있습니다. 다양한 아키텍처에 대한 Docker Compose 구성은 n8n-hosting 리포지터리에서 찾을 수 있습니다.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

아래 동영상 가이드를 따라 진행할 수도 있습니다.

사전 요구 사항#

진행하기 전에 Docker를 설치하세요.

  • Docker Desktop은 Mac, Windows, Linux용으로 제공됩니다. Docker Desktop에는 Docker Engine과 Docker Compose가 포함되어 있습니다.
  • Docker EngineDocker Compose는 Linux용 별도 패키지로도 제공됩니다. 그래픽 환경이 없는 Linux 머신을 사용하거나 Docker Desktop UI를 원하지 않는 경우 이를 사용하세요.
참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

n8n 시작하기#

터미널에서 다음 명령을 실행하고, 자리 표시자를 사용자의 타임존으로 바꾸세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

이 명령은 영구 데이터를 저장할 볼륨을 생성하고, 필요한 n8n 이미지를 다운로드한 후, 다음 설정으로 컨테이너를 시작합니다.

  • 호스트에서 포트 5678을 매핑하고 노출합니다.
  • 컨테이너의 타임존을 설정합니다.
    • TZ 환경 변수는 date와 같은 스크립트 및 명령이 반환하는 값을 제어하기 위해 시스템 타임존을 설정합니다.
    • GENERIC_TIMEZONE 환경 변수Schedule Trigger node와 같은 일정 기반 노드에 올바른 타임존을 설정합니다.
  • n8n 설정 파일에 안전한 파일 권한을 강제 적용합니다.
  • n8n에서 태스크를 실행하는 권장 방식인 태스크 러너를 활성화합니다.
  • n8n_data 볼륨을 /home/node/.n8n 디렉터리에 마운트하여 컨테이너 재시작 시에도 데이터를 유지합니다.

실행이 완료되면 다음 주소를 열어 n8n에 접속할 수 있습니다. http://localhost:5678

PostgreSQL과 함께 사용하기#

기본적으로 n8n은 자격 증명1, 과거 실행 내역, 워크플로를 저장하기 위해 SQLite를 사용합니다. n8n은 아래에 설명된 대로 환경 변수를 사용하여 구성할 수 있는 PostgreSQL도 지원합니다.

Note

.n8n 디렉터리를 계속 유지하는 것을 권장합니다

PostgreSQL을 사용할 때 n8n은 SQLite 데이터베이스 파일을 위해 .n8n 디렉터리를 사용할 필요가 없습니다. 하지만 이 디렉터리에는 암호화 키, 인스턴스 로그, 소스 컨트롤 기능 자산과 같은 다른 중요한 데이터도 들어 있습니다. 이러한 요구 사항 중 일부는 우회할 수 있지만(예: N8N_ENCRYPTION_KEY 환경 변수를 설정하는 방식), 잠재적인 문제를 피하기 위해 이 디렉터리에 영구 볼륨을 계속 매핑하는 것이 가장 좋습니다.

PostgreSQL과 함께 n8n을 사용하려면 다음 명령을 실행하고, 자리 표시자(예: 와 같이 꺾쇠괄호로 표시된 부분)를 실제 값으로 바꾸세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE= \
 -e DB_POSTGRESDB_HOST= \
 -e DB_POSTGRESDB_PORT= \
 -e DB_POSTGRESDB_USER= \
 -e DB_POSTGRESDB_SCHEMA= \
 -e DB_POSTGRESDB_PASSWORD= \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

PostgreSQL용 전체 docker-compose 파일은 n8n hosting 리포지터리에서 찾을 수 있습니다.

업데이트#

n8n을 업데이트하려면 Docker Desktop에서 Images 탭으로 이동하여 컨텍스트 메뉴에서 Pull을 선택해 최신 n8n 이미지를 다운로드하세요.

Docker Desktop

명령줄을 사용하여 최신 버전 또는 특정 버전을 가져올 수도 있습니다.

# Pull latest (stable) version
docker pull docker.n8n.io/n8nio/n8n

# Pull specific version
docker pull docker.n8n.io/n8nio/n8n:1.81.0

# Pull next (unstable) version
docker pull docker.n8n.io/n8nio/n8n:next

업데이트된 이미지를 가져온 후, n8n 컨테이너를 중지했다가 다시 시작하세요. 명령줄을 사용할 수도 있습니다. 아래 명령에서 <container_id>를 첫 번째 명령에서 확인한 컨테이너 ID로 바꾸세요.

# Find your container ID
docker ps -a

# Stop the container with the `<container_id>`
docker stop <container_id>

# Remove the container with the `<container_id>`
docker rm <container_id>

# Start the container
docker run --name=<container_name> [options] -d docker.n8n.io/n8nio/n8n

Docker Compose 업데이트#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

전체 스택#

n8n과 cloudflared를 함께 컨테이너로 실행합니다. 터널 URL이 시작 시 출력되며 모든 것이 자동으로 연결됩니다.

pnpm stack --tunnel

서비스만 실행#

pnpm dev 또는 pnpm start로 n8n을 로컬에서 실행하는 것을 선호한다면, cloudflared를 독립 서비스로 시작할 수 있습니다.

# Terminal 1: Start the cloudflared tunnel service
pnpm --filter n8n-containers services --services cloudflared

# Terminal 2: Start n8n locally
pnpm dev

services 명령은 다음을 수행합니다.

  1. host.docker.internal:5678(로컬 n8n)을 가리키는 cloudflared를 시작합니다.
  2. cloudflared의 metrics 엔드포인트에서 공개 터널 URL을 가져옵니다.
  3. WEBHOOK_URLN8N_PROXY_HOPS=1이 포함된 .env 파일을 packages/cli/bin/.env에 작성합니다.
  4. pnpm devpnpm start는 dotenv를 통해 해당 .env를 자동으로 읽어들입니다.

작업이 끝나면 정리하세요.

pnpm --filter n8n-containers services:clean

다음 단계#

  • Docker 이미지의 README 파일에서 Docker 설정에 대한 자세한 정보를 확인하세요.
참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

Footnotes

  1. n8n에서 자격 증명은 특정 앱과 서비스에 연결하기 위한 인증 정보를 저장합니다. 인증 정보(사용자 이름과 비밀번호, API 키, OAuth 시크릿 등)로 자격 증명을 생성한 후에는 관련 앱 노드를 사용하여 해당 서비스와 상호작용할 수 있습니다.