๐Ÿณ Docker Volume

JeongHoHyunยท2025๋…„ 4์›” 12์ผ
0

Docker

๋ชฉ๋ก ๋ณด๊ธฐ
2/9

๐Ÿณ Docker Volume(๋„์ปค ๋ณผ๋ฅจ)์ด๋ž€?

  • ๋„์ปค์˜ ๋ณผ๋ฃธ(Volume)์ด๋ž€ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜์†์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ๋ณผ๋ฅจ(Volume)์€ ์ปจํ…Œ์–ด๋‹ˆ ์ž์ฒด์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ํ˜ธ์ŠคํŠธ ์ž์ฒด์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค.

๋ณผ๋ฅจ(Volumn)์‚ฌ์šฉ ๋ช…๋ น์–ด

docker run -v [ํ˜ธ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ ˆ๋Œ€๊ฒฝ๋กœ]:[์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ ˆ๋Œ€๊ฒฝ๋กœ] [์ด๋ฏธ์ง€๋ช…]:[ํƒœ๊ทธ๋ช…]
  • [ํ˜ธ์ŠคํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ ˆ๋Œ€ ๊ฒฝ๋กœ]์— ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•  ๊ฒฝ์šฐ, ํ˜ธ์ŠคํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฎ์–ด์”Œ์šด๋‹ค.
  • [ํ˜ธ์ŠคํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ ˆ๋Œ€๊ฒฝ๋กœ]์— ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ํ˜ธ์ŠคํŠธ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์— ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  ์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ํ˜ธ์ŠคํŠธ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณต์‚ฌํ•ด์˜จ๋‹ค.

Docker๋กœ MySQL ์‹คํ–‰

docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -d mysql
  • -e MYSQL_ROOT_PASSWORD=password123 : -e์˜ต์…˜์€ ์ปจํ…Œ์ด๋„ˆ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค.
  • Dockerhub์˜ MySQL๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ MYSQL_ROOT_PASSWORD๋ฅผ ์ •ํ•ด์ฃผ์–ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์ธ ๋ฐฉ๋ฒ•

docker exec -it [MySQL ์ปจํ…Œ์ด๋„ˆ ID] bash

## MySQL ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€
> echo $MYSQL_ROOT_PASSWORD # MYSQL_ROOT_PASSWORD๋ผ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ’ ์ถœ๋ ฅ
> export #์„ค์ •๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถœ๋ ฅ

์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์ƒ์„ฑ

 ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒ
$ docker stop [MySQL ์ปจํ…Œ์ด๋„ˆ ID]
$ docker rm [MySQL ์ปจํ…Œ์ด๋„ˆ ID]

# ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -d mysql
$ docker exec -it [MySQL ์ปจํ…Œ์ด๋„ˆ ID] bash

$ mysql -u root -p
mysql> show databases; # ์•„๊นŒ ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†์–ด์ง„ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ์œ„ ๋ฐฉ์‹์€ ๋ณผ๋ฃธ(Volum)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  MySQL ์ปจํƒœ์ด๋„ˆ๋ฅผ ๋„์› ๋‹ค.
  • MySQL ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•จ๊ณผ ๋™์‹œ์— MySQL๋‚ด๋ถ€์— ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋˜์–ด ์—†์–ด์กŒ๋‹ค.

โญ๏ธ ๋ณผ๋ฅจ(Volumn)์„ ์ด์šฉํ•ด MySQL ์ปจํ…Œ์ด๋„ˆ ๋„์šฐ๊ธฐ

$ cd /Users/jaeseong/Documents/Develop
$ mkdir docker-mysql # MySQL ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ํด๋” ๋งŒ๋“ค๊ธฐ

# docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v {ํ˜ธ์ŠคํŠธ์˜ ์ ˆ๋Œ€๊ฒฝ๋กœ}/mysql_data:/var/lib/mysql -d mysql
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jhh0513/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
  • ํ˜ธ์ŠคํŠธ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์™€ ๋„์ปค์—์„œ ์„ค์ •ํ•œ ๊ฒฝ๋กœ์˜ ํด๋”๋Š” ์„œ๋กœ ํŒŒ์ผ์„ ๊ณต์œ ํ•œ๋‹ค.
  • ์ƒ์„ฑ์ „์— ํ˜ธ์ŠคํŠธ์˜ ๊ฒฝ๋กœ์— ๋นˆ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ์•ˆ๋œ๋‹ค. ๊ทธ๋Ÿผ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ๋นˆ ํด๋”๊ฐ€ ๋„์ปค์—๋„ ๊ณต์œ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋„์ปค์—์„œ๋„ ๋นˆ ํด๋”๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค.
  • -v ๊ด€๋ จ ์˜ต์…˜์€ dockerHub์˜ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ญ์ œ ํ›„ ๋‹ค์‹œ ๋„์šฐ๊ธฐ

# ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒ
$ docker stop [MySQL ์ปจํ…Œ์ด๋„ˆ ID]
$ docker rm [MySQL ์ปจํ…Œ์ด๋„ˆ ID]

# ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql

$ docker exec -it [MySQL ์ปจํ…Œ์ด๋„ˆ ID] bash
$ mysql -u root -p
mysql> show databases; # ์•„๊นŒ ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ทธ๋Œ€๋กœ ์กด์žฌํ•˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

# ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒ
$ docker stop [MySQL ์ปจํ…Œ์ด๋„ˆ ID]
$ docker rm [MySQL ์ปจํ…Œ์ด๋„ˆ ID]

# ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐ”๊ฟ”์„œ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
$ docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql

$ docker exec -it [MySQL ์ปจํ…Œ์ด๋„ˆ ID] bash
$ mysql -u root -p # ์ ‘์†์ด ์•ˆ ๋จ...
  • ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ์— ๋นˆ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ๋†“์ง€ ์•Š์„ ๊ฒƒ.
  • ์„ค์ •ํ•œ ํ™˜๊ฒฝ๋ณ€์ˆ˜(ex:MYSQL_ROOT_PASSWORD)์˜ ๊ฒฝ์šฐ๋Š” ์ฒ˜์Œ ์‹คํ–‰ํ–ˆ์„๋•Œ ์ €์žฅํ•œ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.
    • ๋ฐ”๊พธ๋ ค๋ฉด docker exec -it [์ปจํ…Œ์ด๋„ˆID] bash๋กœ MySQL์— ์ ‘์†ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ฐ”๊พผ๋‹ค.
profile
Java Back-End 2022.11.01 ๐Ÿ’ป~ing

0๊ฐœ์˜ ๋Œ“๊ธ€