Postgres DB를 Docker 컨테이너로 띄우기 (docker-compose 사용)
DevOps/Database2023. 11. 20. 23:32재미로 만들어보고 있는 개인 프로젝트에 Postgres DB를 연결하기 위해 PostgresDB를 띄우려고 합니다. 직접 맥북에 설치를 할 수도 있지만, 더럽혀지는걸 싫어해서 사용하다가 필요없어지면 편하게 지울 수 있도록 docker 컨테이너로 띄우는 방법에 대해 소개합니다.
docker 및 docker-compose 설치
docker 컨테이너로 띄우기 위해서 당연히 docker가 필요합니다. 도커 설치는 아래 글을 참고바랍니다.
docker-compose.yaml 작성
Postgresql을 띄우기 위해 docker-compose.yaml
파일을 작성합니다.
# docker-compose.yml
version: '3.4'
services:
my-app-db:
container_name: "my-app-db"
image: postgres
ports:
- "5432:5432"
expose:
- "5432"
volumes:
- "./pgdata:/var/lib/postgresql/data"
environment:
- "POSTGRES_DB=my-app-db"
- "POSTGRES_USER=postgres"
- "POSTGRES_PASSWORD=root"
- "PGDATA=/var/lib/postgresql/data/pgdata"
컨테이너를 지웠다가 다시 띄워도 데이터가 유지될 수 있도록 볼륨을 호스트의 현재 디렉토리와 매핑합니다.
volumes:
- "./pgdata:/var/lib/postgresql/data"
POSTGRES_DB
, POSTGRES_USER
, POSTGRES_PASSWORD
환경변수를 사용하여 DB 설정을 합니다. 환경변수에 대한 상세 설명은 아래 참고바랍니다.
.gitignore 설정 (선택)
서버 프로젝트 내에서 사용하는 목적이라면, 매핑한 볼륨내에 있는 db 데이터가 git에 업로드되지 않도록 ./pgdata를 추가해줍니다.
# .gitignore
./pgdata
PgAdmin 컨테이너 띄우기
postgresql을 띄우긴 했지만, postgres DB를 편하게 조작하기 위해 pgadmin도 같이 띄어보도록 하겠습니다.
version: '3.4'
services:
my-app-db:
#...생략...
my-app-db-admin:
container_name: "my-app-db-admin"
image: dpage/pgadmin4
ports:
- "5480:80"
expose:
- "80"
volumes:
- "./pgadmin:/var/lib/pgadmin"
environment:
- "PGADMIN_DEFAULT_EMAIL=public.bluemiv@gmail.com"
- "PGADMIN_DEFAULT_PASSWORD=1234"
위 yaml 파일에서는 80포트를 사용하고 있어서 5480으로 띄울 수 있도록 port를 매핑했습니다.
PGADMIN_DEFAULT_EMAIL
과 PGADMIN_DEFAULT_PASSWORD
를 설정하여 최초 로그인을 할 수 있는 계정을 생성합니다.
./pgadmin 디렉토리도 .gitignore에 추가합니다.
# .gitignore
./pgadmin
위 설정이 모두 끝났으면, docker-compose up -d
를 통해 실행합니다.
docker-compose up -d
localhost:5480에 들어가보면 아래와 같이 pgAdmin이 띄어진것을 확인할 수 있습니다.
컨테이너를 모두 내릴때는 docker-compose down
명령어를 사용합니다.
docker-compose down
IT 기술에 대한 글을 주로 작성하고, 일상 내용, 맛집/숙박/제품 리뷰 등 여러가지 주제를작성하는 블로그입니다. 티스토리 커스텀 스킨도 개발하고 있으니 관심있으신분은 Berry Skin을 검색바랍니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!