PostgreSQL with Docker


docker pull postgres
  • PostgreSQL image ๋ฅผ ๋‹น๊ฒจ์˜ค์ž.
docker images
  • Image ๊ฐ€ ์ž˜ ๋“ค์–ด์™”๋Š”์ง€ ํ™•์ธํ•˜๊ณ ,
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD="password" --name PostgresTest postgres
  • Image ๋ฅผ ์‹คํ–‰ํ•˜์ž.
    • -d ์˜ต์…˜์œผ๋กœ detached mode ๋กœ background ์—์„œ ์‹คํ–‰ํ•˜๊ณ 
    • -p 5432:5432 ์˜ต์…˜์œผ๋กœ port mapping ํ•ด์ฃผ๊ณ 
    • -e POSTGRES_PASSWORD="password" ์˜ต์…˜์œผ๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์›ํ•˜๋Š” DB password ๋ฅผ ์ง€์ •ํ•˜๊ณ 
    • --name PostgresTest ์˜ต์…˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์ฃผ์ž
sudo docker exec --user="root" -it PostgresTest "bash"
  • ์‹คํ–‰๋œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ง„์ž…ํ•ด์„œ,
    • --user="root" ์˜ต์…˜์œผ๋กœ root user ๋กœ ์ง€์ •ํ•˜๊ณ 
    • -it ์˜ต์…˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์‰˜์„ ์—ด์–ด์ฃผ์ž
psql -U postgres
  • PostgreSQL ์„ ์‹คํ–‰ํ•˜๊ณ ,
    • -U postgres ์˜ต์…˜์œผ๋กœ superuser ์ธ postgres ๋กœ ๋“ค์–ด๊ฐ€์ž
\l
  • ๊ธฐ๋ณธ database ๋“ค์„ ํ™•์ธํ•ด์ฃผ๊ณ ,
CREATE DATABASE test_db;
  • ํ…Œ์ŠคํŠธ์šฉ database ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์ž.
\c test_db
  • ํ…Œ์ŠคํŠธ์šฉ database ๋ฅผ ์„ ํƒํ•˜๊ณ ,
\dt
  • JPA ๊ฐ€ ์ƒ์„ฑํ•œ table ๋“ค์„ ํ™•์ธํ•˜์ž.
\q
  • PostgreSQL ์—์„œ ๋‚˜์˜ค๊ณ ,
exit
  • ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‚˜์˜ค์ž.
docker stop {CONTAINER_ID}
  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฉˆ์ถฐ์ฃผ๊ณ ,
docker container restart {CONTAINER_ID}
  • ํ•„์š”ํ•  ๋•Œ ๋‹ค์‹œ ์žฌ์‹œ์ž‘ํ•ด์ฃผ์ž.
docker rm {CONTAINER_ID}
  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋„ ๋ชจ๋‘ ์ œ๊ฑฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— Mount ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ ์—ญ์‹œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค.

pgAdmin with Docker


  • pgAdmin ์‹คํ–‰ ํ›„ Add New Server

  • General ํƒญ์—์„œ Server ์ด๋ฆ„์„ ์ •ํ•ด์ฃผ๊ณ 

  • Connection ํƒญ์—์„œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ฃผ์†Œ์™€ ํ™˜๊ฒฝ๋ณ€์ˆ˜ POSTGRES_PASSWORD ์— ์„ค์ •ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•œ ๋’ค ์ €์žฅํ•˜๋ฉด

  • pgAdmin ๊ณผ PostgreSQL ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด๋‘” test_db ์—์„œ Query Tool ์„ ์—ด์–ด SQL ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค๋ณด์ž.

References