Docker-Compose yaml파일을 이용하여 PostgreSQL를 Local로 구축하기

 사전에 Docker및 Docker-Compose가 설치되어 있어야 합니다.


postgres official docker image link : https://hub.docker.com/_/postgres


docker-compose로 컨테이너를 만들기전 .yaml파일을 작성합니다.

# ./docker-compose.yaml
# services에서는 여러개의 컨테이너를 생성할수 있습니다.
services:
postgres:
# 컨테이너의 베이스가 될 이미지를 받는다. (위 예제에서는 postgres:12)
image: "postgres:12"
# postgres의 데이터를 관리하기 위해 볼륨을 사용자가 네이밍 해서 관리한다.
volumes:
- data:/var/lib/postgresql/data
# 환경변수(environment)를 직접 작성할수 있다.
#environment:
# POSTGRES_USER: alex
# POSTGRES_PASSWORD: bestpassword
# - POSTGRES_USER=max
# 각각의 환경변수를 지정하지 않고 파일을 이용하여 지정 할수 있다.
env_file:
# yaml의 상대경로로 환경변수 파일을 찾는다.
- ./.postgres.env
# 네트워크는 default로 자동 생성해준다
#networks:
# - test1_net
# 외부에 포트를 노출시킨다. postgres default포트는 5432이고 4500포트로 외부 노출시킨다.
ports:
- "4500:5432"

# 네이밍 볼륨이 있을시 반드시 루트에 한번더 volumes 안에 해당 네이밍 볼륨 이름을 넣는다.
volumes:
# postgres는 data라는 네이밍 볼륨을 사용하기 때문에 아래에 추가해 준다.
data:


docker-compose.yaml과 같은 경로에 .postgres.env파일 안에는 아래와 같이 유저 이름과 비밀번호를 작성하고 저장합니다.

POSTGRES_USER=alex

POSTGRES_PASSWORD=password



postgres 컨테이너를 docker-compose를 이용하여 생성하는데 detach모드로 실행한다.

$ docker-compose up -d







docker container로 구성된 postgres를 위 사진과 같이 접속할수 있습니다.


만약 해당 컨테이너를 전원이 켜질때마다 자동으로 작동하게 하고 싶다면 docker-compose.yaml파일 안에서 postgres 안쪽에 'restart:always'를 추가하시면 됩니다.


GitHub링크 : https://github.com/Alex-Choi0/docker-compose-postgres.git

댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)