
Postgres DB를 Docker 컨테이너로 띄우기 (docker-compose 사용)
DevOps/Database2023. 11. 20. 23:32재미로 만들어보고 있는 개인 프로젝트에 Postgres DB를 연결하기 위해 PostgresDB를 띄우려고 합니다. 직접 맥북에 설치를 할 수도 있지만, 더럽혀지는걸 싫어해서 사용하다가 필요없어지면 편하게 지울 수 있도록 docker 컨테이너로 띄우는 방법에 대해 소개합니다.
docker 및 docker-compose 설치
docker 컨테이너로 띄우기 위해서 당연히 docker가 필요합니다. 도커 설치는 아래 글을 참고바랍니다.
Intel MacOS에 도커(Docker) 설치하기
MacOS에 도커 설치 개발할때 거의 필수적으로 사용하는 Docker를 Intel MacOS에 설치하는 방법에 대해 소개합니다. Window나 MacOS에서는 Docker 홈페이지에서 docker desktop을 설치하여 docker를 쉽게 설치할 수
bluemiv.tistory.com
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 설정을 합니다. 환경변수에 대한 상세 설명은 아래 참고바랍니다.
postgres - Official Image | Docker Hub
Note: the description for this image is longer than the Hub length limit of 25000, so has been trimmed. The full description can be found at https://github.com/docker-library/docs/tree/master/postgres/README.md. See also docker/hub-feedback#238 and docker/
hub.docker.com
.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을 검색바랍니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!