MicroService/Docker
[Docker] postgresql 배포 샘플 코드 (docker-compose) with adminer
noggame
2023. 10. 3. 21:18
postgresql DB를 생성하고, adminer 웹 UI를 통해 쉽게 DB를 제어할 수 있는 컨테이너 환경 구성
환경
Docker : version 20.10.13
샘플코드
컨테이너 구성 파일 (db_docker_compose.yaml)
컨테이너 및 가상망 설정
- Docker 가상 네트워크 생성 (네트워크명:db-network)
- adminer와 postgresql 컨테이너 생성 및 가상망과 연결
- postgresql 설정
- image : postgres alpine 3.18 이미지
- port : 호스트 5432 포트와 컨테이너 5432 포트 연결
- DB ID/PW : 환경변수 파일(.env)의 값을 불러와 설정 (POSTGRES_USER / POSTGRES_PWD)
- volume : 환경변수 파일(.env)에 설정된 특정 경로와 container의 볼륨 연결 (POSTGRES_DATA_PATH)
- adminer 설정
- image : adminer 최신버전
- port : 호스트 8082 포트와 컨테이너 8080 포트 연결
version: '3.2'
services:
adminer:
image: adminer
restart: always
ports:
- 8082:8080
networks:
- db-network
postgresql:
image: postgres:alpine3.18
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PWD}
networks:
- db-network
ports:
- 5432:5432
volumes:
- type: bind
source: ${POSTGRES_DATA_PATH}
target: /var/lib/postgresql/data
networks:
db-network:
환경설정 파일 (db_config.env)
POSTGRES_USER=myname
POSTGRES_PWD=mypassword
POSTGRES_DATA_PATH=/my/data/path
실행
docker compose --env-file db_config.env -f db_docker_compose.yaml up -d
# 구버전의 경우 docker-compose 별도 설치 및 명령 사용
- --env-file : 사용자정의 환경변수 파일 사용
- -f : 사용자정의 컨테이너 환경 구성 파일 사용
- -d : 백그라운드 실행
종료의 경우 아래 코드 실행
docker compose --env-file db_config.env -f db_docker_compose.yaml down