โš™๏ธ Devops/๐Ÿณ Docker

[Docker] MySQL ์„ค์น˜ํ•˜๊ธฐ

2022. 5. 23. 22:24
๋ชฉ์ฐจ
  1. docker-compose ๋‹ค์šด๋กœ๋“œ
  2. docker-compose ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  3. ์ตœ์ข…์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
  4. 1. ์ž„์˜๋กœ docker-mysql ์ด๋ผ๋Š” ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  5. 2. DB ๊ณ„์ • ์ •๋ณด ์ƒ์„ฑ
  6. 3. ๊ฐ ํด๋” ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ
  7. 4. docker-compose.yml
  8. docker-compose๋กœ ์‹คํ–‰!
  9. ์‹คํ–‰
  10. ์ข…๋ฃŒ
  11. REFERENCE
๋ฐ˜์‘ํ˜•

docker-compose ๋‹ค์šด๋กœ๋“œ

  • ์•„๋ž˜์—์„œ ์ตœ์‹  ๋ฒ„์ „ ํ™•์ธ!
    • Releases ยท docker/compose
sudo curl -L https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • ๊ถŒํ•œ ์„ค์ •
sudo chmod +x /usr/local/bin/docker-compose
  • ์„ค์น˜ ํ™•์ธ
docker-compose --version
 

Docker, Docker-Compose ์„ค์น˜ํ•˜๊ธฐ - Ubuntu 20.04 LTS

Docker ์„ค์น˜ ์‹คํ–‰ํ™˜๊ฒฝ: Ubuntu 20.04 LTS ์—…๋ฐ์ดํŠธ ๋ฐ HTTP ํŒจํ‚ค์ง€ ์„ค์น˜ $ sudo apt update $ sudo apt-get install -y ca-certificates \ curl \ software-properties-common \ apt-transport-https \ gnupg \ ls..

iseunghan.tistory.com

 

docker-compose ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

์ตœ์ข…์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

docker-mysql
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ .env
โ””โ”€โ”€ mysql
    โ”œโ”€โ”€ conf.d
    โ”‚   โ””โ”€โ”€ my.cnf
    โ”œโ”€โ”€ data
    โ””โ”€โ”€ initdb.d
        โ”œโ”€โ”€ create_table.sql
        โ””โ”€โ”€ load_data.sql

4 directories, 4 files
  • docker-compose.yml : ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•  ๋•Œ, ๋”์šฑ ์‰ฝ๊ฒŒ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ
  • conf.d : MySQL ์„ค์ • ํŒŒ์ผ์ด ์œ„์น˜
  • data : MySQL ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์œ„์น˜
  • initdb.d : Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ตœ์ดˆ ์‹คํ–‰ ์‹œ ๋ถˆ๋Ÿฌ์˜ฌ *.sh , *.sql ๋“ฑ ํŒŒ์ผ ์ด๋ฆ„์˜ ์‚ฌ์ „์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋จ.

1. ์ž„์˜๋กœ docker-mysql ์ด๋ผ๋Š” ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

mkdir docker-mysql && cd docker-mysql

2. DB ๊ณ„์ • ์ •๋ณด ์ƒ์„ฑ

.env ์ƒ์„ฑ

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD={root_pw}
MYSQL_DATABASE={db๋ช…}
MYSQL_USER=user
MYSQL_PASSWORD={user_pw}

3. ๊ฐ ํด๋” ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ

mkdir -p mysql/conf.d
mkdir -p mysql/data
mkdir -p mysql/initdb.d

conf.d ์•ˆ์—๋Š” my.cnf ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server           = utf8mb4
collation-server               = utf8mb4_unicode_ci

init.d ์•ˆ์—๋Š” create.sql ๊ณผ load_data.sql ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • create.sql (์˜ˆ์‹œ)
  • CREATE TABLE user( username VARCHAR(25) PRIMARY KEY, password VARCHAR (50) not null );
  • load_data.sql (์˜ˆ์‹œ)
  • INSERT INTO user(username, password) VALUES ('user', 'pass');

4. docker-compose.yml

version: "3"

services:
  db:
    container_name: docker-mysql
    image: mysql
    ports:
      - 3306:3306
    volumes:
      - ./mysql/conf.d:/etc/mysql/conf.d
      - ./mysql/data:/var/lib/mysql
      - ./mysql/initdb.d:/docker-entrypoint-initdb.d
    env_file: .env
    environment:
      TZ: Asia/Seoul
    restart: always

# ์ •ํ™•ํ•œ ์ž‘์„ฑ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
# https://docs.docker.com/compose/compose-file/
  • image: mysql latest ๋ฒ„์ „ ์‚ฌ์šฉ (ํŠน์ • ๋ฒ„์ „ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด โ†’ mysql:0.0.1 ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์„ฑ)
  • ports: ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ 3306 ๊ฐœ๋ฐฉ
  • volumes: Docker ์ปจํ…Œ์ด๋„ˆ์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ์— ์—ฐ๊ฒฐ
  • TZ: DB Time Zone ์„ค์ •

docker-compose๋กœ ์‹คํ–‰!

์‹คํ–‰

$ docker-compose -f docker-compose.yml up -d
  • -f : ๋ณ„๋„์˜ docker-compose ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • -d : ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰

์ข…๋ฃŒ

$ docker-compose down

REFERENCE

  • https://int-i.github.io/sql/2020-12-31/mysql-docker-compose/
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
  1. docker-compose ๋‹ค์šด๋กœ๋“œ
  2. docker-compose ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  3. ์ตœ์ข…์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
  4. 1. ์ž„์˜๋กœ docker-mysql ์ด๋ผ๋Š” ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  5. 2. DB ๊ณ„์ • ์ •๋ณด ์ƒ์„ฑ
  6. 3. ๊ฐ ํด๋” ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ
  7. 4. docker-compose.yml
  8. docker-compose๋กœ ์‹คํ–‰!
  9. ์‹คํ–‰
  10. ์ข…๋ฃŒ
  11. REFERENCE
'โš™๏ธ Devops/๐Ÿณ Docker' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ์‹œ ํ”Œ๋žซํผ ๋ณ€๊ฒฝํ•˜๊ธฐ (feat. M1 Mac)
  • [Docker] Spring boot ํ”„๋กœ์ ํŠธ๋ฅผ ๋„์ปค ์ด๋ฏธ์ง€ํ™” ํ•ด๋ณด๊ธฐ
  • Docker, Docker-Compose ์„ค์น˜ํ•˜๊ธฐ - Ubuntu 20.04 LTS
  • [Docker] Dockerfile ๋ช…๋ น์–ด ์ •๋ฆฌ
iseunghan
iseunghan
๊พธ์ค€ํ•˜๊ฒŒ ์—ด์‹ฌํžˆ..
iseunghan๊พธ์ค€ํ•˜๊ฒŒ ์—ด์‹ฌํžˆ..
iseunghan
iseunghan

๊ณต์ง€์‚ฌํ•ญ

  • ์–ด์ œ๋ณด๋‹ค ๋‚˜์€ ์˜ค๋Š˜์ด ๋˜๊ธฐ ์œ„ํ•ด ๐Ÿ”ฅ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (260)
    • ๐Ÿ’ Spring (14)
      • ๊ฐœ๋… ๋ฐ ์ดํ•ด (2)
      • Spring ํ•ต์‹ฌ ๊ธฐ์ˆ  (24)
      • Spring REST API (8)
      • Spring MVC, DB ์ ‘๊ทผ ๊ธฐ์ˆ  (7)
      • Spring Security (23)
      • Spring in Action (1)
    • ๐ŸŒป JAVA (84)
      • ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ (20)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ (13)
      • ๋””์ž์ธ ํŒจํ„ด (7)
      • ์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ (43)
      • JUnit (1)
    • ๐Ÿ”– Snippets (3)
      • Javascript (3)
    • โš™๏ธ Devops (22)
      • โ› Git (11)
      • ๐Ÿณ Docker (6)
      • ๐Ÿง Linux (3)
      • ๐ŸŒˆ Jenkins (1)
      • ๐Ÿ“ฌ Kafka (1)
    • ๐Ÿ’ฌ ETC.. (4)
      • ๐Ÿ’ป macOS (2)
    • ๐ŸŒง๏ธ ORM (2)
      • JPA (2)
    • ๐Ÿ Python (1)
    • ๐Ÿ“š Databases (15)
      • ์˜ค๋ผํด๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก ๊ณผ ์‹ค์Šต(2ํŒ) (3)
      • RealMySQL 8.0 (8)
    • ๐Ÿ”ฅ Computer Science (5)
      • ๐Ÿ“ก ๋„คํŠธ์›Œํฌ (5)
    • ๐Ÿท๏ธ ํ˜‘์—… (1)
    • ๐Ÿ“œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (38)
      • BAEKJOON\์ˆ˜ํ•™ 1, ์ˆ˜ํ•™ 2 (8)
      • BAEKJOON\์žฌ๊ท€ (5)
      • BAEKJOON\๋ธŒ๋ฃจํŠธ ํฌ์Šค (3)
      • BAEKJOON\์ •๋ ฌ (1)
      • BAEKJOON\๋ฐฑํŠธ๋ž˜ํ‚น (5)
      • BAEKJOON\BFS, DFS (6)
      • BAEKJOON\์ด๋ถ„ํƒ์ƒ‰ (1)
      • BAEKJOON\๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ (9)
      • BAEKJOON\๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
    • โœจ ISEUNGHAN (1)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
iseunghan
[Docker] MySQL ์„ค์น˜ํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.