Docker๐Ÿ‹ ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ์กฐํšŒ / ๋‚ด๋ถ€ ์ ‘์† / Redis / docker volume

victoryoneยท2025๋…„ 5์›” 2์ผ
0

Docker

๋ชฉ๋ก ๋ณด๊ธฐ
2/3
post-thumbnail

์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ์กฐํšŒ

  • docker run nginx ์‹คํ–‰์‹œ ๋ณด์˜€๋˜ ํ™”๋ฉด

nginx๊ฐ€ foreground ์‹คํ–‰์ด๋ผ ํ™”๋ฉด์— ๋กœ๊ทธ๊ฐ€ ๋ณด์˜€๋‹ค.
background ์‹คํ–‰์‹œ ๋กœ๊ทธ ์กฐํšŒ ๋ฐฉ๋ฒ•

  • docker logs ์ปจํ…Œ์ด๋„ˆid

๋งˆ์ง€๋ง‰ 10์ค„๋งŒ

  • docker logs --tail 10 ์ปจํ…Œ์ด๋„ˆid

์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์กฐํšŒ

  • docker logs -f ์ปจํ…Œ์ด๋„ˆid

์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์กฐํšŒ + ์ด์ „ ๋กœ๊ทธ๋Š” ์กฐํšŒ X

  • docker logs -tail 0 -f ์ปจํ…Œ์ด๋„ˆ id

์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ ‘์†

  • docker exec -it ์ปจํ…Œ์ด๋„ˆid bash
    -- bash ํ™˜๊ฒฝ์œผ๋กœ ์ ‘์† (bash: ๋ฆฌ๋ˆ…์Šค,macOS์—์„œ์‚ฌ์šฉ๋˜๋Š” ํ„ฐ๋ฏธ๋„)
    --- ๋‚ด๋ถ€ ํ™˜๊ฒฝ์—์„œ ๋‚˜์˜ค๋ ค๋ฉด exit

Docekr์—์„œ Redis ์‹คํ–‰

  • docker run -d redis
    -- Tag ์ž…๋ ฅ ์•ˆํ–ˆ์œผ๋‹ˆ๊นŒ ์ตœ์‹ ๋ฒ„์ „ ๋‹ค์šด
    --- Redis port 6379

  • docker run -d -p 6379:6379 redis

์œ„ ๊ทธ๋ฆผ ํ˜•ํƒœ๋กœ ์ ‘์†์ค‘

Reids ๋‚ด๋ถ€ ์ ‘์†

  • docker exec -it ์ปจํ…Œ์ด๋„ˆid bash
  • ls - ํด๋”์—†์œผ๋ฉด cd.. ๋’ค๋กœ ๊ฐ€๋ณด๊ธฐ
  • redis-cli : redis ์ ‘์†ํ•˜๋Š” ๋ช…๋ น์–ด

docker volume

  • docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๋กœ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.
    ํ•˜์ง€๋งŒ ๋„์ปค๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€ ๋  ๋•Œ ๊ธฐ์กด ์ด๋ฏธ์ง€๋ฅด ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ์žฌ์‹คํ–‰ํ•œ๋‹ค. ์ด๋•Œ ๋‚ด๋ถ€์—์žˆ๋˜ ๋ฐ์ดํ„ฐ๋„ ๊ฐ™์ด ์‚ญ์ œ๋˜๋ฏ€๋กœ MySQL๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅ์‹œ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…์ด ๋ณผ๋ฅจ์ด๋‹ค.

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


mysql ์‹คํ–‰

docker run - p 3306:3306 -d mysql

mysql port : 3306

mysql์„ ์„ค์น˜ํ–ˆ๋˜ ์‚ฌ๋žŒ๋“ค์€ ์•„๋งˆ ์ด๋ฏธ ์‹คํ–‰์ค‘์ด๋ผ๊ณ  ๋œฐ ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋Ÿผ ํ˜„์žฌ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” mysql์„ ์ค‘์ง€์‹œ์ผœ์ค€๋‹ค.

  • window
    sudo lsof -i:3306 โžก๏ธ ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” mysql ์กฐํšŒ
    sudo kill pid๋ฒˆํ˜ธ โžก๏ธ ๊ฐ•์ œ ์ข…๋ฃŒ
  • mac
    ์‹œ์Šคํ…œ ์„ค์ •์—์„œ mysql ๋„๊ธฐ

ํ˜„์žฌ ๋ฌธ์ œ์  : ์ปจํ…Œ์ด๋„ˆ ๋‚ด MySQL๊ณผ DB๋ฐ์ดํ„ฐ ๋”ฐ๋กœ ์ €์žฅ๋˜์–ด์žˆ์–ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œ์‹œ DB๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œ๋จ

mysql ๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค mydb ๋งŒ๋“ค๊ณ  ๋‹ค์‹œ ์‚ญ์ œ ํ›„ ๋ณด๋ฉด mydb db๋Š” ์—†์–ด์กŒ๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• : ๋ณผ๋ฅจ ์‚ฌ์šฉ

pwd โžก๏ธ ํ˜„์žฌ ์œ„์น˜ ์กฐํšŒ

โžก๏ธ docker ์„ค์ •ํ•˜๋Š” ๋ฒ• : https://hub.docker.com/_/mysql
๐Ÿ“ข mysql ์„ค์ •์‹œ์—๋Š” password๋ฅผ ์„ค์ •ํ•ด์•ผ ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค์šด ๋ฐ ์‹คํ–‰์ด๋œ๋‹ค.

run - e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 -v '"C:\Users\rmflt\Downloads\dodev\docker-mysql\mysql_data"' (์—ฌ๊ธฐ๊นŒ์ง€ ํ˜ธ์ŠคํŠธ์ปดํ“จํ„ฐํด๋”๊ฒฝ๋กœ)
:/var/lib/mysql (์ปจํ…Œ์ด๋„ˆ ๋‚ด mysql ์ €์žฅ๋œ ๊ฒฝ๋กœ)
mysql (์ด๋ฏธ์ง€ ์ด๋ฆ„)

docker volume ์ƒ์„ฑ๋œ๋‹ค.

์œˆ๋„์šฐํ™˜๊ฒฝ์—์„œ mysql password ์„ค์ •ํ•˜๊ธฐ

  • ์ด๋•Œ ์ฃผ์˜ํ•  ์ ์€ mac/Linuxํ™˜๊ฒฝ์—์„œ๋Š” pwd ์กฐํšŒํ•œ ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๋กœ ๋ณต์‚ฌ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•ด๋„๋˜์ง€๋งŒ
    ์œˆ๋„์šฐํ™˜๊ฒฝ์—์„œ๋Š” ( / ) ์Šฌ๋ž˜์‹œ๊ฐ€ ์•„๋‹Œ ( \ ) ๋ฐฑ์Šฌ๋ž˜์‹œ๋กœ ํ‘œ์‹œ๋œ๋‹ค. ๋”ฐ๋ผ์„œ '" "' ์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ ํด๋”๊ฒฝ๋กœ๋ฅผ ์ด๋ ‡๊ฒŒ ํ•ด์ค˜์•ผํ•œ๋‹ค. ์•„๋‹ˆ๋ฉด ๋ชจ๋‘ ์Šฌ๋ž˜์‹œ๋กœ ๋ณ€๊ฒฝํ•˜๋“ ๊ฐ€

docker volume ํ™•์ธ

  1. mysql๋กœ ์ ‘์†

    docker exec -it [์ปจํ…Œ์ด๋„ˆid] bash
    mysql -u root -p
    password ์ž…๋ ฅ = 1234
  1. ์ƒˆ๋กœ์šด db ์ƒ์„ฑํ•˜๊ธฐ
    show databases; โžก๏ธํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ
    create database mydb; โžก๏ธ mydb ๋””๋น„ ์ƒ์„ฑํ•˜๊ธฐ
  1. ํ˜„์žฌ docker ์‚ญ์ œ

    exit๋กœ mysql์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‚˜์˜ค๊ธฐ
    ํ˜„์žฌ mysql ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
    docker rm -f [์ปจํ…Œ์ด๋„ˆid]
  1. ๋‹ค์‹œ docker volume ์ƒ์„ฑ

    run - e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 -v '"C:\Users\rmflt\Downloads\dodev\docker-mysql\mysql_data"' (์—ฌ๊ธฐ๊นŒ์ง€ ํ˜ธ์ŠคํŠธ์ปดํ“จํ„ฐํด๋”๊ฒฝ๋กœ)
    :/var/lib/mysql (์ปจํ…Œ์ด๋„ˆ ๋‚ด mysql ์ €์žฅ๋œ ๊ฒฝ๋กœ)
    mysql (์ด๋ฏธ์ง€ ์ด๋ฆ„)

๐Ÿ“ข ์•„๊นŒ ์ฒ˜๋Ÿผ mysql ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐํšŒํ•˜๋ฉด ์•„๊นŒ ๋งŒ๋“  mydb ๋””๋น„๊ฐ€ ์กฐํšŒ๋œ๋‹ค.

๐Ÿ“ข docker volume password ์„ค์ •์‹œ ์ฃผ์˜ํ•  ์ 
๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•˜๋ฉด
์ฒ˜์Œ์— ๋งŒ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ password๊ฐ€ ์ €์žฅ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ์ƒˆ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด๋„ ํŒจ์Šค์›Œ๋“œ๋Š” ๋˜‘๊ฐ™๋‹ค. ์ƒˆ๋กœ ๋ฎ์–ด์“ฐ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋งŒ์•ฝ์— ์ƒˆ๋กœ์šด password๋ฅผ ์„ค์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ˜„์žฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.

๐Ÿšจ ์ฃผ์˜ํ•  ์  : ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ ํด๋” ์ƒ์„ฑ์œ ๋ฌด

1) ํด๋” ์ƒ์„ฑ๋˜์–ด ์žˆ์„ ๋•Œ

2) ํด๋” ์ƒ์„ฑ ์•ˆ๋˜์–ด ์žˆ์„ ๋•Œ

๋”ฐ๋ผ์„œ ๋ฏธ๋ฆฌ ์กด์žฌํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ €์žฅํ•ด์•ผํ•œ๋‹ค.

  • ์œ„ ๊ทธ๋ฆผ์—์„œ ๋ณด์ด๋“ฏ์ด ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„๊ณผ ์ปจํ…Œ์ด๋„ˆ ์ €์žฅ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ๋จผ์ € ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์— empty.txt ์ €์žฅํ•˜๊ธฐ

  • ๊ทธ๋ฆฌ๊ณ  docker ๋‚ด๋ถ€ ์ ‘์†์‹œ ๋˜‘๊ฐ™์ด empty.txt๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š”๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

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