Post

๐Ÿณ Docker DB (MySQL, PostgreSQL, Redis) ๊ธฐ๋ณธ ๋ช…๋ น์–ด ๊ฐ€์ด๋“œ

๐Ÿฌ MySQL

๐Ÿงฑ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

๐Ÿ“Œ ์„ค๋ช…

docker run์€ MySQL ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

MySQL์€ ์‹คํ–‰ ์‹œ ๋ฐ˜๋“œ์‹œ ๋ฃจํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

EX)

1
2
3
4
5
6
docker run --name mysql-container \
-e MYSQL_ROOT_PASSWORD=mysecretpw \
-d \
-p 3306:3306 \
-v mysql-data:/var/lib/mysql \
mysql:latest
  • 3306:3306 โ†’ ๋กœ์ปฌ์—์„œ MySQL ์ ‘์† ๊ฐ€๋Šฅ
  • /var/lib/mysql โ†’ ์‹ค์ œ DB ๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜
  • v ์˜ต์…˜ ์—†์œผ๋ฉด ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ ์‹œ ๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œ๋จ

๐Ÿ’ป ํ„ฐ๋ฏธ๋„ ์ ‘์† ๋ฐ ๋กœ๊ทธ์ธ

๐Ÿ“Œ ์„ค๋ช…

docker exec๋กœ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ MySQL ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

EX)

1
docker exec -it mysql-container mysql -u root -p
  • it โ†’ ํ„ฐ๋ฏธ๋„ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋ชจ๋“œ
  • p โ†’ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์š”๊ตฌ

๐Ÿ“Œ Bash๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ง„์ž… (๋””๋ฒ„๊น…)

1
docker exec -it mysql-container bash

๐Ÿงพ ๊ธฐ๋ณธ SQL ๋ช…๋ น์–ด

1
2
3
4
SHOW DATABASES;
CREATE DATABASE testdb;
USE testdb;
SHOW TABLES;

๐Ÿ“Š ๋กœ๊ทธ ํ™•์ธ (์ค‘์š”)

1
2
docker logs mysql-container
docker logs -f mysql-container

๐Ÿ˜ PostgreSQL

๐Ÿงฑ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

๐Ÿ“Œ ์„ค๋ช…

PostgreSQL์€ ๊ธฐ๋ณธ ๊ณ„์ •์ด postgres์ด๋ฉฐ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์ด ํ•„์ˆ˜์ด๋‹ค.

EX)

1
2
3
4
5
6
docker run --name postgres-container \
-e POSTGRES_PASSWORD=mysecretpw \
-d \
-p 5432:5432 \
-v postgres-data:/var/lib/postgresql/data \
postgres:latest
  • 5432 โ†’ PostgreSQL ๊ธฐ๋ณธ ํฌํŠธ
  • /var/lib/postgresql/data โ†’ ๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜

๐Ÿ’ป ํ„ฐ๋ฏธ๋„ ์ ‘์†

1
docker exec -it postgres-container psql -U postgres

๐Ÿงพ psql ๋ฉ”ํƒ€ ๋ช…๋ น์–ด

1
2
3
4
\l      -- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชฉ๋ก
\c testdb  -- DB ์ ‘์†
\dt     -- ํ…Œ์ด๋ธ” ๋ชฉ๋ก
\q      -- ์ข…๋ฃŒ

๐Ÿ“Š ๋กœ๊ทธ ํ™•์ธ

1
2
docker logs postgres-container
docker logs -f postgres-container

๐ŸŸฅ Redis

๐Ÿงฑ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

๐Ÿ“Œ ์„ค๋ช…

Redis๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ธ๋ฉ”๋ชจ๋ฆฌ DB์ด๋‹ค.


EX)

1
2
3
4
docker run --name redis-container \
-d \
-p 6379:6379 \
redis:latest
  • 6379 โ†’ Redis ๊ธฐ๋ณธ ํฌํŠธ
  • ๋ณ„๋„ ์„ค์ • ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿ’ป ํ„ฐ๋ฏธ๋„ ์ ‘์†

1
docker exec -it redis-container redis-cli

๐Ÿงพ ๊ธฐ๋ณธ ๋ช…๋ น์–ด

1
2
3
4
SET mykey "Hello, Redis!"
GET mykey
KEYS *
DEL mykey

๐Ÿ“Š ๋กœ๊ทธ ํ™•์ธ

1
2
docker logs redis-container
docker logs -f redis-container

๐Ÿณ ๊ณตํ†ต Docker ๊ด€๋ฆฌ ๋ช…๋ น์–ด

๐Ÿ“Œ ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ ํ™•์ธ

1
2
docker ps      # ์‹คํ–‰ ์ค‘
docker ps -a   # ์ „์ฒด (์ข…๋ฃŒ ํฌํ•จ)

๐Ÿ“Œ ์ปจํ…Œ์ด๋„ˆ ์ œ์–ด

1
2
3
docker stop mysql-container
docker start mysql-container
docker restart mysql-container

๐Ÿ“Œ ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

1
2
docker rm mysql-container
docker rm -f mysql-container   # ๊ฐ•์ œ ์‚ญ์ œ

๐Ÿ“Œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ ‘์†

1
docker exec -it mysql-container bash

๐Ÿ“Œ ๋กœ๊ทธ ํ™•์ธ

1
2
docker logs mysql-container
docker logs -f mysql-container

๐Ÿ’ก ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ

๐Ÿ”‘ Docker ํ๋ฆ„

1
์ด๋ฏธ์ง€ โ†’ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ(run) โ†’ ์‹คํ–‰ โ†’ ์ ‘์†(exec)

๐Ÿ”‘ ํฌํŠธ ํฌ์›Œ๋”ฉ

1
-p 3307:3306

๐Ÿ‘‰ ๋กœ์ปฌ 3307 โ†’ ์ปจํ…Œ์ด๋„ˆ 3306 ์—ฐ๊ฒฐ


This post is licensed under CC BY 4.0 by the author.