“컨테이너가 30초마다 재시작되는 짜증나는 경험” 혹시 겪어보셨나요? 저는 얼마 전 시놀로지 NAS에서 Docker(또는 Container Manager)를 활용해 N8N을 설치했는데, N8N 컨테이너가 계속 중지되고 “데이터베이스 연결 오류” 메시지가 반복적으로 떠서 매번 좌절했습니다. 수많은 삽질 끝에 결국 문제의 원인이 Docker 네트워크와 시놀로지 방화벽 설정에 있다는 걸 발견했는데요. 오늘은 동일한 문제로 고민하는 분들을 위해 시놀로지 NAS에서 N8N과 DB 연결 오류 문제 해결 방법을 아주 쉽게 정리해 드리겠습니다.
1. 시놀로지 나스 N8N Docker DB 연결 오류 문제 증상과 원인분석
우선 문제 증상을 정확히 짚어 봅시다. N8N은 워크플로우 자동화 도구로, 별도의 데이터베이스(DB)를 연동해야 정상 작동합니다. 하지만 다음과 같은 상황이 발생했습니다:
- DB 컨테이너는 정상 실행중
- N8N 컨테이너는 실행 후 금방 중지됨
- 로그에 “DB 연결 오류” 메시지 반복
이럴 때 가장 먼저 의심해야 할 원인은 크게 다음 세 가지입니다.
- Docker 네트워크 분리 문제 – 컨테이너들이 서로 통신할 수 없는 네트워크에 물려 있을 가능성
- 시놀로지 NAS 방화벽 차단 – NAS 내부 방화벽이 컨테이너 간 통신을 막고 있을 수 있음
- N8N 환경 변수 혹은 설정 오류 – DB 호스트명, 포트, 유저명 등이 잘못 되었을 가능성
저 같은 경우, 특히 Portainer를 통해 Docker 네트워크를 확인하며, 방화벽 설정을 점검한 것이 문제 해결의 핵심이었습니다.
2. Portainer 네트워크 설정으로 N8N과 DB 연결 문제 진단하기
Portainer는 시놀로지 NAS Container Manager UI보다 한층 더 편리한 Docker 관리 툴인데요, 네트워크 IP 대역 및 컨테이너별 IP 주소를 한눈에 볼 수 있는 기능이 매우 중요합니다.
2-1. Portainer에서 N8N 네트워크 IP 대역 및 컨테이너 IP 확인하기
- Portainer에 로그인합니다.
- 왼쪽 메뉴에서 “Networks”를 클릭하세요.
- ‘bridge’ 또는 N8N용으로 별도 생성한 네트워크를 찾아 클릭합니다.
- 네트워크 세부 정보에서 “Subnet” 정보를 확인합니다 (예: 172.17.0.0/16).
- 해당 페이지에서 N8N 컨테이너와 DB 컨테이너의 IP 주소도 함께 확인됩니다.
여기서 핵심은 DB 컨테이너의 IP가 N8N 컨테이너와 같은 네트워크 대역에 있는지와, N8N 컨테이너의 DB 접속 정보(host 또는 IP)가 정확히 일치하는지 점검하는 것입니다.
2-2. 자주 발생하는 문제 – 네트워크 분리와 DB 접속 호스트 지정
- DB 컨테이너가 기본 bridge 네트워크에 있고, N8N 컨테이너는 다른 네트워크에 있는 경우
- 호스트명을 localhost 또는 127.0.0.1로 지정했을 때 발생하는 연결 실패
Dockers 네트워크 간 컨테이너 통신이 되도록 같은 브릿지 네트워크에 연결하거나, 호스트명을 DB 컨테이너의 IP로 명확히 지정해야 완벽한 통신이 가능합니다.
3. Synology NAS 방화벽 설정으로 Docker 컨테이너 통신 차단 문제 해결하기
Portainer에서 네트워크와 IP가 정상처럼 보여도, 시놀로지의 NAS 내부 방화벽 설정에서 Docker 컨테이너 간 트래픽을 차단하는 경우가 종종 있습니다. 이것 역시 N8N DB 연결 오류의 주범입니다.
3-1. Synology DSM 방화벽 설정 위치 및 접근
- DSM에 로그인 후 “제어판” > “보안” > “방화벽” 메뉴로 이동합니다.
- “편집” 또는 “생성” 버튼을 눌러 새 규칙을 만듭니다.
3-2. 방화벽 규칙 상세 설정
- 포트: DB 포트를 입력합니다 (예: PostgreSQL 5432, MySQL 3306).
- 프로토콜: TCP를 선택하세요.
- 소스 IP: 2단계 Portainer에서 확인한 Docker 네트워크 서브넷을 넣어줍니다 (예: 172.17.0.0/16).
- 작업: 허용으로 설정합니다.
이렇게 하면 Docker 컨테이너가 속한 내부 가상 네트워크 대역에 대해 방화벽이 개방되어 DB 접속이 원활해집니다.
3-3. 꼭 체크하세요!
- 기존에 불필요하거나 제한적 규칙이 있는지 확인하고, 충돌하는 규칙은 삭제 또는 수정하세요.
- 방화벽 규칙 추가 후 반드시 변경 사항을 저장하고 재부팅 없이 바로 변경 적용이 되는지 확인합니다.
4. 추가 점검 사항 및 실전 팁
이외에도 놓치기 쉬운 몇 가지 사항을 덧붙입니다.
4-1. N8N 환경 변수(DB 접속 정보) 확인
- DB 호스트명은 IP 또는 컨테이너 이름으로 정확히 기입되어야 합니다.
- DB 사용자명, 비밀번호가 올바른지, 그리고 권한이 충분한지 확인하세요.
- 환경변수는 Container Manager 또는 Portainer에서 직접 확인할 수 있습니다.
4-2. Docker 네트워크 연결 상태 확인 명령어
시놀로지 SSH 접속 시 다음 명령어로 네트워크 연결 상태를 검사해볼 수 있습니다.
- docker network inspect [네트워크 이름]: 네트워크 세부 정보 확인
- docker ps: 실행중인 컨테이너 목록 확인
- docker logs [N8N 컨테이너 이름]: 컨테이너 로그 점검
4-3. N8N 컨테이너 재시작과 연결 테스트
위 설정들을 전부 수정한 후, 반드시 N8N 컨테이너를 재시작해서 반영 상태를 확인하고, DB 연결 성공 여부를 로그와 UI에서 꼭 확인하세요.
5. 결론 및 이후 조치사항
지금까지 시놀로지 나스에서 Docker (Container Manager)를 이용해 N8N 설치 후 DB 연결 오류를 해결하는 방법을 단계별로 살펴봤습니다.
- Portainer에서 Docker 네트워크와 컨테이너 IP를 정확히 확인
- 시놀로지 DSM 방화벽에서 해당 네트워크 대역 허용 규칙 추가
- N8N의 환경 변수 및 DB 접속 정보 꼼꼼히 점검
이 과정을 통해 저도 2시간 넘는 삽질 시간을 5분 만에 해결할 수 있었습니다. 혹시 이 후에도 연결 문제가 발생하면 아래 체크리스트를 한 번 더 점검해보시길 추천드립니다.
이후에도 문제 발생 시 체크리스트
- 네트워크 서브넷 확인 → 방화벽 규칙과 일치하는지
- DB 컨테이너가 완전히 정상 구동 중인지
- 포트 및 환경 변수 값이 정확히 일치하는지
- 컨테이너 로그에서 구체적인 에러메시지 체크
여기에 더해, 시놀로지 공식 방화벽 설정 가이드, Docker 네트워크 트러블슈팅 공식 문서, 그리고 N8N 공식 Docker 설치 가이드를 참고하시면 세부 설정과 원리를 더 깊게 이해할 수 있습니다.
저 역시 댓글로 질문 주시면 최대한 도움드릴 테니, 같은 문제로 고생하시는 분들은 부담 없이 메시지 남겨 주세요.“시놀로지 나스 N8N Docker DB 연결 오류”, “Portainer 네트워크 설정”, “시놀로지 방화벽 문제” 등의 키워드로 꼭 해결하시길 응원합니다.