설치 버튼 다음에 확인할 세 가지

NAS에서 Django를 운영하기 위해 Docker를 설치하면서 Windows 개발 PC와 NAS의 설치 화면이 다르다는 점부터 마주쳤습니다. 설치 과정을 소개한 원문에는 docker --version이 출력되면 정상 설치라는 설명이 있었지만, 이 명령은 명령줄 프로그램의 존재만 확인합니다. 실제로 컨테이너를 실행하는 엔진과 Compose까지 나누어 봐야 합니다.

이 글은 운영 중인 PC나 NAS를 재설치하는 절차가 아닙니다. 사용할 OS의 공식 설치 경로를 선택한 뒤, 이 프로젝트를 실행하기 전에 확인할 항목을 정리했습니다. 메뉴와 지원 모델은 바뀔 수 있어 2026년 9월 22일 확인한 공식 안내를 함께 연결합니다.

Windows: Linux 컨테이너를 실행할 준비

프로젝트의 개발 Dockerfile은 python:3.12-slim, DB는 postgres:16을 사용합니다. 이 구성에서는 Linux 컨테이너를 실행할 환경이 필요합니다. Docker Desktop을 설치하고 시작한 다음, WSL 2를 선택했다면 PowerShell에서 상태를 확인합니다.

wsl --version
wsl --status
docker --version
docker version
docker compose version
docker context show

docker version에서 Client와 Server 항목을 구분합니다. Client만 나오고 연결 오류가 있으면 앱 실행 상태, 선택한 context, WSL 상태부터 봅니다. 이 상황에서 Python 패키지를 다시 설치해도 엔진 연결 문제는 해결되지 않습니다. docker context show는 현재 선택한 엔진의 이름을 보여주므로 원격 context를 사용하는 경우도 구분할 수 있습니다.

WSL 버전, Windows 지원 범위, 가상화 요건은 Docker Desktop Windows 설치 안내를 기준으로 확인합니다. WSL 설치·업데이트나 BIOS 가상화 설정 변경은 시스템 변경 작업이므로 조회 명령과 구분해서 진행합니다. Intel CPU의 설정 이름을 모든 PC에 공통으로 적용하지 않습니다.

Ubuntu: 설치 출처를 먼저 선택한다

원문은 apt install docker.io 한 줄을 제시했습니다. 배포판 패키지와 Docker 공식 저장소 패키지는 관리 경로가 다릅니다. 이미 Docker가 동작하는 서버에서 두 설치 절차를 섞으면 충돌할 수 있으므로 OS 버전과 기존 패키지 출처를 확인한 뒤 공식 Ubuntu 설치 안내의 한 경로를 선택합니다.

새로 구성하는 Ubuntu 서버에서는 공식 문서의 지원 OS 확인 → 저장소 등록 → Engine·CLI·Compose plugin 설치 → 엔진 응답 확인 순서로 진행할 수 있습니다. NAS에 이 Ubuntu 명령을 그대로 입력하면 안 됩니다. 기존 서비스를 옮길 때는 삭제·재설치보다 데이터와 실행 설정을 먼저 확보해야 합니다.

Linux에서 Docker 소켓 접근이 거부된다면 서비스 중지와 사용자 권한 문제를 구분합니다. docker 그룹에 사용자를 추가하는 것은 단순 편의 설정 이상의 권한을 줍니다. Docker의 Linux 설치 후 안내에서도 이 그룹의 root 수준 권한을 설명하므로 공용 서버에서 무조건 적용할 기본 단계로 보지 않습니다.

Synology NAS: 모델과 패키지를 함께 확인한다

제 운영 환경은 Synology NAS입니다. DSM 패키지 센터에서 Container Manager를 찾되, 모든 NAS가 설치 대상이라고 가정하지 않습니다. Synology Container Manager 안내의 적용 모델과 사용 중인 DSM 조건을 확인합니다. 패키지가 검색되지 않으면 지원 여부 확인이 먼저이며, 비공식 강제 설치를 이 글의 해결책으로 제시하지 않습니다.

설치 후에는 DSM에서 서비스가 실행 중인지 보고, SSH에서는 docker version과 사용할 Compose 명령의 지원 여부를 확인합니다. Docker Desktop의 Windows 경로와 NAS의 공유 폴더 경로는 서로 대체할 수 없습니다. 코드, 업로드 파일, DB 데이터의 지속 보관 위치도 NAS에서 각각 지정해야 합니다.

프로젝트 시작 전 판정표

확인 결과 알 수 있는 것 아직 확인하지 못한 것
docker --version 성공 CLI 설치 엔진 접속
docker version의 Server 표시 선택한 엔진 응답 이미지 다운로드·앱 실행
docker compose version 성공 Compose 명령 제공 프로젝트 설정 유효성
config --quiet 성공 Compose 파일 해석 DB 준비·웹 응답
ps에서 컨테이너 확인 실제 실행 상태 전체 서비스 기능

프로젝트 루트의 개발 설정은 다음 명령으로 해석만 검사합니다.

docker compose -f .\docker\dev\docker-compose.dev.yml config --quiet

현재 구성은 docker/dev/.env.dev를 참조합니다. 파일이 없다는 오류가 나면 설치 실패가 아니라 프로젝트 환경 파일 준비 문제입니다. 일반 config 출력에는 환경 값이 드러날 수 있어 공유할 결과에는 --quiet를 사용합니다.

엔진 접속과 Compose 해석이 모두 준비되면 Django·Nginx·PostgreSQL 연결 구성으로 넘어갑니다. 이미지 다운로드나 첫 실행은 네트워크·저장 공간을 사용하고, 이 프로젝트의 기본 web 시작 명령은 migration도 실행하므로 단순 설치 확인과 별도로 다룹니다.