본문 바로가기
인프라/Docker

[Docker] Postgresql 도커에 설치 및 접속

by jungmin.park 2024. 1. 8.

 

 

docker로 postgresql 을 설치하는 방법에 대해 알아본다.

이미 도커가 설치되어있다고 가정하고 시작한다.

만약 도커가 설치되어있지 않다면 다음 게시물을 참조바란다.

https://jung-mmmmin.tistory.com/124

 

[Docker] Docker 부터 docker compose 설치

실행환경 cat /etc/*-release | uniq DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 Docker 설치 sudo apt-get update 필요한 패키지 설치 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common Docker의 공

jung-mmmmin.tistory.com

 

 

1. 도커 이미지 pull 

docker pull postgres

 

2. 도커 이미지가 다운되었는지 확인

docker images
REPOSITORY                 TAG       IMAGE ID       CREATED         SIZE
postgres                   latest    c2831f50da00   3 days ago      448MB

 

3. 도커 컨테이너로 올리기

docker run -p 5432:5432 
--name postgres 
-e POSTGRES_PASSWORD=1234 
-e TZ=Asia/Seoul 
-v [호스트 서버의 경로]:/var/lib/postgresql/data 
-d postgres
  • postgresql의 기본 포트는 5432이다. 
    • docker run -p [호스트 port]:5432 
  • --name [컨테이너이름]
  • -e POSTGRES_PASSWORD = [데이터베이스 비밀번호] : 원하는 비밀번호를 입력하면 된다.
  • -e TZ=[타임존 설정]
  • -v ~ : Docker는 볼륨(volume)과 바인드 마운트(bind mount) 옵션을 제공하는데 docker 호스트 서버에 임의의 경로로 지정하였다. 각자 원하는 로컬위치를 적어주면 된다.
  • -d  [docker 이미지 이름] : 해당 도커 이미지를 백그라운드에서 실행시키는 명령어

4. 컨테이너 postgresql 접속

docker exec -it [CONTAINER ID] bin/bash

 

 

5. postgresql 접속

psql -U postgres

 

5-1. 데이터베이스 생성

create database test_db;

 

5-2 \l을 통해 조회

postgres=# create database ticketdb;
CREATE DATABASE
postgres=# ll
postgres-# psql -U postgres
postgres-# \l
                                                      List of databases
   Name    |  Owner   | Encoding | Locale Provider |  Collate   |   Ctype    | ICU Locale | ICU Rules |   Access privileges   
-----------+----------+----------+-----------------+------------+------------+------------+-----------+-----------------------
 postgres  | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | 
 template0 | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | =c/postgres          +
           |          |          |                 |            |            |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | =c/postgres          +
           |          |          |                 |            |            |            |           | postgres=CTc/postgres
 testdb  | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | 
(4 rows)

 

6. SpringBoot + Postgresql  application.yml 설정

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/postgres
    username: postgres
    password: *******
    driver-class-name: org.postgresql.Driver