Search

DOCKER와 PostgreSQL 16 설치하기

1. DOCKER 다운로드 및 설치

DOCKER란?
소프트웨어를 컨테이너 단위의 격리된 환경 안에서 실행하도록 해주는 오픈소스 가상화 플랫폼
DOCKER를 사용해 리눅스 환경의 PG를 설치 할 수 있습니다.
DOCKER 설치(4.33 기준 / Windows 11 기준)
다운로드 받은, Docker Desktop Installer 를 실행
Use WSL2 instead of Hyper-v 부분 체크가 나오면 체크하고 설치를 진행합니다.
WSL은 리눅스 커널을 직접 사용하여 Windows 상에서 리눅스 환경을 제공
경량화되어 있으며, 리눅스와 Windows 간의 파일 시스템 통합이 용이
주로 리눅스 개발 환경을 Windows에서 구현하려는 사용자에게 적합
WSL 2는 Docker와 더욱 통합되어 있어, 리눅스 컨테이너를 더 효율적으로 실행
WSL을 사용하려면 윈도우에 관련된 추가 설치가 필요할 수 있다.
상황에 따라 WSL2 설치가 필요합니다. 아래 글을 참고해 진행합니다.
설치 완료 후 host 파일 변경 복원 메시지 나올 수 있습니다.
저는 복원 안하고 넘어갔습니다.
DOCKER 메뉴
설치된 DOCKER는 윈도우즈 상의 Docker Desktop을 프로그램을 실행하거나,
윈도우즈의 Command 창에서 Docker 명령어를 실행할 수도 있습니다.
Docker Desktop 화면
윈도우즈에서 Docker Desktop을 실행하면 다음과 같은 화면이 나옵니다.
Images
어플리케이션 실행에 필요한 모든 파일과 코드, 설정의 패키지.
pull 을 통해 Postgre 이미지를 다운로드 할 수 있다.
Containers
이미지를 통해 만들어진 실행 가능한 어플리케이션
pull을 통해 저장된 postgre 이미지를 실행하면 postgre 컨테이너가 만들어지고,
만들어진 postgre 컨테이너에 접속해서 사용할 수 있다.
Volumes
컨테이너와 독립적으로 존재하는 데이터 공간
컨테이너에서 생성되는 데이터를 컨테이너 외부에 저장할 수 있다.

2. PostgreSQL 설치 및 시작

Docker의 Pull 명령어를 사용해 Postgresql 16.4 를 설치합니다.
1.
윈도우즈의 윈도우 버튼 클릭
2.
검색창에 cmd 입력
3.
명령 프롬프트를 선택해서 실행
cmd(명령 프롬프트) 창에서 다음 명령어를 실행합니다.
docker pull postgres:16.4
위 명령어를 실행하면 Linux(debian)의 PG 16.4 의 이미지를 Docker의 이미지로 다운로드(pull) 합니다.
pull로 다운로드한 이미지를 run 명령어로 실행해야 합니다.
run 명령어는 이미지를 컨테이너로 만드는 것이기 때문에 pull 후에 한 번만 실행하면 됩니다.
run은 이미지를 컨테이너로 만드는 것이므로, DBMS의 start/stop과는 다릅니다.
아래의 명령어로 pull 해 놓은 이미지 리스트를 확인할 수 있습니다.
docker images
Shell
복사
이미지가 정상적으로 pull 되었다면 아래와 같은 리스트를 확인할 수 있습니다.
아래 명령어로 이미지를 run 합니다.
run할 때 pg의 admin 계정인 postgres의 암호를 설정합니다.
postgres:16.4 이미지를 mypg라는 이름의 컨테이너로 생성합니다.
여기서는 암호를 1qaz2wsx로 설정했습니다. 각자 편한 암호를 사용합니다.
컨테이너 내부에서 사용 가능한 공유 메모리(/dev/shm)의 크기를 256MB로 설정
실제 PG는 DEFAULT로 128MB만 사용. os자원에서 메모리를 사용할 수 있게 256mb로 잡는 것을 권장.
docker run -d --shm-size=256m -p 5432:5432 -e POSTGRES_PASSWORD=1qaz2wsx --name mypg postgres:16.4
Shell
복사

3. DBeaver로 PG 접속하기

docker run을 완료했다면, DBeaver와 같은 SQL Tool로 DB 접속이 가능합니다.
아래 그림을 참고해 PG에 접속합니다.
DBeaver로 PG에 접속해, SQL창을 열고 다음 SQL로 연습용 데이터베이스(startdbpg)를 생성합니다.
CREATE DATABASE startdbpg;
SQL
복사
디비버에 startdbpg로 접속하는 컨넥션을 축가합니다.
PG는 MySQL처럼 특정 DB에 접속 후 DB를 변경할 수 없습니다.
Dbeaver에서 새로운 컨넥션을 추가
Database를 새로 만든 startdbpg로 설정한다.