이번 포스팅에서는 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
에서 사용자계정을 생성하면 된다.
