이번 포스팅에서는 PgAdmin이라는 소프트웨어와 PostgreSQL을 같이 활용하기 때문에 Docker Compose를 활용해보겠다. Docker Compose는 여러 컨테이너를 동시에 운용할 때 ,각각의 Docker를 따로 운영하는 것보다 유지관리에 편의성이 있으며, 직관적이라는 장점이 있다.

docker compose 설치

Docker compose의 설치는 아래 명령어로 설치가 되며 /usr/local/bin/docker-compose 에 설치가 된다.

sudo curl -L \
  "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose

아래 명령어는 실행권한을 부여하는 명령어이다.

sudo chmod +x /usr/local/bin/docker-compose

경로 생성

도커를 환경이 망가지게되거나, 문제가 생길 경우 저장되어있던 정보가 삭제될 수 있으므로 볼륨을 사용한다. postgresql과 pgadmin의 볼륨으로 사용할 경로를 생성해보자. -p 옵션은 상위경로가 없으면 자동으로 생성하라는 명령어이다.

mkdir -p /data/postgresql/data
mkdir -p /data/postgresql/pgadmin

Docker Compose파일 생성

설치할 경로에서 docker-compose.yml 파일을 생성해보자. vi docker-compose.yml 명령어로 파일을 생성하면 되며, 입력을 위해서는 a 를 눌러 입력모드로 전환입력을 하면된다.  :q는 저장하지않고 나가기, :wq 는 저장하고 나가기이다.  

version: '3.6'

services:
  postgres:
    container_name: postgres
    image: postgres:10
    restart: unless-stopped
    environment:
      - POSTGRES_PASSWORD='비밀번호'
      - TZ=Asia/Seoul
    volumes:
      - /data/postgresql/data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4
    restart: unless-stopped
    ports:
      - "5555:80"
    volumes:
      - /data/postgresql/pgadmin:/var/lib/pgadmin
    environment:
      - PGADMIN_DEFAULT_EMAIL=ducj@pgadmin.com
      - PGADMIN_DEFAULT_PASSWORD=비밀번호
      - TZ=Asia/Seoul
    depends_on:
      - postgres

Docker 실행

Docker의 실행은 .yml 파일의 경로에서 docker-compose up 명령어를 실행하면 된다. Docker의 중지는 docker-compose down 으로 docker 대비 훨씬 간결하다고 할 수 있다.

docker-compose up -d

사용자 계정생성은 pgadmin을 통해 가능하다. 서버명 우클릭 ->create ->Login/Group Role 에서 사용자계정을 생성하면 된다.

Stockatto 개발 1 - docker로 postgreSQL 서버 띄우기
docker-compose 로 postgreSQL과 pgAdmin을 띄우려고 한다.