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