Docker로 PostgreSQL 설치하기: 윈도우/맥 완벽 가이드
“PostgreSQL 설치해야 하는데 뭐가 이렇게 복잡해?” 저도 처음엔 그랬어요. 공식 사이트 가서 설치 파일 받고, 환경변수 설정하고… 솔직히 귀찮잖아요.
그런데 Docker를 알고 나서 인생이 바뀌었어요. 명령어 한 줄이면 PostgreSQL이 뚝딱 설치되거든요. 게다가 나중에 필요 없으면 깔끔하게 삭제도 가능하고요.
오늘은 Docker가 뭔지 전혀 모르는 분들도 따라할 수 있게, 윈도우와 맥에서 Docker 설치부터 PostgreSQL 실행까지 전 과정을 알려드릴게요.
Docker가 뭔가요?
Docker는 쉽게 말해서 가상 컴퓨터를 만들어주는 프로그램이에요. 근데 진짜 가상 컴퓨터보다 훨씬 가볍고 빨라요.
예를 들어볼게요. PostgreSQL을 직접 설치하면:
- 설치 파일 다운로드
- 설치 마법사 실행
- 비밀번호 설정
- 환경변수 설정
- 재부팅…
Docker로 하면:
- 명령어 한 줄 입력
- 끝!
이게 Docker의 매력이에요. 복잡한 설치 과정 없이 필요한 프로그램을 바로 실행할 수 있거든요.
1단계: Docker Desktop 설치하기
윈도우에서 설치
시스템 요구사항 먼저 확인하세요:
- Windows 10 64비트 (버전 2004 이상) 또는 Windows 11
- 최소 4GB RAM (8GB 권장)
- BIOS에서 가상화 활성화 필요
설치 순서:
- Docker 공식 사이트에 접속
- “Download for Windows” 버튼 클릭
- 다운로드된
Docker Desktop Installer.exe실행 - 설치 옵션에서 “Use WSL 2 instead of Hyper-V” 체크 (권장)
- 설치 완료 후 재부팅
WSL 2가 없다면?
설치 중에 “WSL 2 설치가 필요합니다”라는 메시지가 뜰 수 있어요. 그러면:
- 관리자 권한으로 PowerShell 실행 (시작 메뉴에서 PowerShell 우클릭 → 관리자로 실행)
- 아래 명령어 입력:
wsl --install
- 컴퓨터 재부팅
- 다시 Docker Desktop 설치
맥에서 설치
시스템 요구사항:
- macOS 12 (Monterey) 이상
- 최소 4GB RAM
설치 순서:
- Docker 공식 사이트 접속
- “Download for Mac” 클릭
- Apple Silicon (M1, M2, M3): “Apple Silicon” 선택
- Intel 맥: “Intel Chip” 선택
- 다운로드된
.dmg파일 실행 - Docker 아이콘을 Applications 폴더로 드래그
- Applications에서 Docker 실행
- 권한 요청하면 “허용” 클릭
2단계: Docker 정상 작동 확인
Docker Desktop 설치하고 실행했으면, 제대로 되는지 확인해봐야죠.
윈도우
- 시작 메뉴에서 “cmd” 검색해서 명령 프롬프트 실행
- 아래 명령어 입력:
docker --version
이런 식으로 버전이 나오면 성공이에요:
Docker version 24.0.7, build afdd53b
맥
- Spotlight (Cmd + Space)에서 “터미널” 검색해서 실행
- 아래 명령어 입력:
docker --version
버전 정보가 나오면 정상이에요.
안 되면?
- Docker Desktop이 실행 중인지 확인 (작업 표시줄/메뉴바에 고래 아이콘)
- 컴퓨터 재부팅 후 다시 시도
- Docker Desktop 완전히 껐다가 다시 실행
3단계: PostgreSQL 컨테이너 실행하기
자, 이제 진짜 PostgreSQL을 설치할 차례예요. 아니, 설치라기보다는 “실행”이 맞겠네요.
기본 실행 명령어
명령 프롬프트(윈도우) 또는 터미널(맥)에서 아래 명령어를 입력하세요:
docker run --name my-postgres -e POSTGRES_PASSWORD=mypassword -p 5432:5432 -d postgres
뭔가 복잡해 보이죠? 하나씩 설명해드릴게요:
docker run: Docker 컨테이너 실행--name my-postgres: 컨테이너 이름을 “my-postgres”로 지정-e POSTGRES_PASSWORD=mypassword: 비밀번호를 “mypassword”로 설정 (원하는 걸로 바꾸세요!)-p 5432:5432: 포트 5432를 외부에서 접속 가능하게 열기-d: 백그라운드에서 실행postgres: PostgreSQL 이미지 사용
처음 실행하면 이미지를 다운로드받느라 시간이 좀 걸려요. 1~2분 정도? 인터넷 속도에 따라 다릅니다.
실행 확인
잘 실행됐는지 확인해볼까요?
docker ps
이렇게 나오면 성공:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
a1b2c3d4e5f6 postgres "docker-entrypoint.s…" Up 2 minutes 0.0.0.0:5432->5432/tcp my-postgres
4단계: PostgreSQL 접속하기
PostgreSQL이 실행됐으니 이제 접속해볼게요.
방법 1: Docker 명령어로 접속
docker exec -it my-postgres psql -U postgres
이렇게 입력하면 PostgreSQL 프롬프트가 뜹니다:
postgres=#
여기서 SQL 명령어를 바로 실행할 수 있어요.
간단히 테스트해볼까요?
SELECT version();
PostgreSQL 버전 정보가 나오면 완벽하게 성공한 거예요!
나가려면 \q 입력하고 Enter.
방법 2: GUI 도구로 접속
명령어가 불편하면 GUI 도구를 쓰면 돼요. 추천 프로그램:
DBeaver (무료)
- DBeaver 공식 사이트에서 다운로드
- 설치 후 실행
- 새 연결 만들기 → PostgreSQL 선택
- 접속 정보 입력:
- Host:
localhost - Port:
5432 - Database:
postgres - Username:
postgres - Password:
mypassword(위에서 설정한 비밀번호)
- Host:
pgAdmin (공식 도구)
- PostgreSQL 공식 관리 도구
- pgAdmin 공식 사이트에서 다운로드
5단계: 자주 쓰는 Docker 명령어
PostgreSQL 컨테이너를 관리하는 데 필요한 명령어들이에요.
컨테이너 시작/중지
docker stop my-postgres
컨테이너 중지
docker start my-postgres
컨테이너 다시 시작
컨테이너 삭제
docker rm my-postgres
컨테이너 삭제 (먼저 stop 해야 함)
모든 컨테이너 보기
docker ps -a
실행 중인 것 + 중지된 것 모두 표시
로그 보기
docker logs my-postgres
PostgreSQL 실행 로그 확인 (에러 찾을 때 유용)
데이터 유지하기 (중요!)
기본 설정으로 실행하면, 컨테이너를 삭제하면 데이터도 다 날아가요. 데이터를 유지하려면 볼륨을 사용해야 해요.
docker run --name my-postgres -e POSTGRES_PASSWORD=mypassword -p 5432:5432 -v postgres-data:/var/lib/postgresql/data -d postgres
-v postgres-data:/var/lib/postgresql/data 이 부분이 추가됐어요. 이렇게 하면 컨테이너를 삭제해도 데이터는 남아있어요.
문제 해결
”port is already in use” 에러
다른 프로그램이 5432 포트를 쓰고 있는 거예요. 포트를 바꿔서 실행하세요:
docker run --name my-postgres -e POSTGRES_PASSWORD=mypassword -p 5433:5432 -d postgres
접속할 때는 포트를 5433으로 하면 돼요.
”Cannot connect to the Docker daemon” 에러
Docker Desktop이 실행 중인지 확인하세요. 시스템 트레이(윈도우) 또는 메뉴바(맥)에 고래 아이콘이 있어야 해요.
컨테이너가 바로 종료되는 경우
로그를 확인해보세요:
docker logs my-postgres
보통 비밀번호 설정 문제거나 볼륨 권한 문제예요.
Docker와 PostgreSQL, 처음엔 어려워 보여도 한번 해보면 별거 아니에요. 이 글 따라서 한 번만 해보세요. 다음부터는 명령어 한 줄로 데이터베이스 뚝딱 만들 수 있을 거예요. 개발 환경 세팅하는 시간이 확 줄어들거든요. 화이팅!
← 블로그 목록으로