๐Ÿณ Docker (MariaDB + Ubuntu) + Sequel Ace ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•๊ธฐ

์ „ํ•˜์œคยท2025๋…„ 6์›” 25์ผ
0

Docker

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

์ด ๊ธ€์€ ํ•œํ™” SW ๊ณผ์ • ์‹ค์Šต ์ค‘ ๊ฒช์€ ํ™˜๊ฒฝ ๋ฌธ์ œ๋ฅผ
์Šค์Šค๋กœ Docker๋ฅผ ๋„์ž…ํ•ด ํ•ด๊ฒฐํ•œ ์‹ค์ œ ๊ฒฝํ—˜๊ณผ
๋„์ปค์˜ ๊ฐœ๋…, ๊ตฌ์กฐ, ๋ช…๋ น์–ด, ์‹ค์Šต ํ™˜๊ฒฝ์„
๊ธฐ์ˆ ์ ์œผ๋กœ ์ •๋ฆฌํ•ด ๊ณต์œ ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.


๋ชฉ์ฐจ

  1. Docker ๊ธฐ๋ณธ ๊ฐœ๋…: "ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด ์–ด๋””์„œ๋‚˜ ๋˜‘๊ฐ™์ด ์‹คํ–‰"
  2. Docker ๋™์ž‘ ์›๋ฆฌ ๋ฐ ๊ตฌ์กฐ (๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜)
  3. Docker์™€ ์‹ค์ œ ๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฐ€์น˜
  4. ๋‚˜๋Š” ์™œ Docker๋ฅผ ์„ ํƒํ–ˆ๋‚˜? (์‹ค์Šต ํ™˜๊ฒฝ ๊ธฐ์ค€, ๋ฌธ์ œ์ ๊ณผ ํ•ด๊ฒฐ)
  5. ์‹ค์Šต ํ™˜๊ฒฝ ์•„ํ‚คํ…์ฒ˜ (ํฌํŠธ/๋„คํŠธ์›Œํฌ ํ๋ฆ„)
  6. ์‹ค์ œ ์„ค์น˜/์‹คํ–‰ ๊ฒฝํ—˜ (๋ช…๋ น์–ด/์‹ค์ œ ํ™”๋ฉด ์ •๋ฆฌ)
  7. Docker์˜ ๊ธฐ์ˆ ์  ๋ฐฐ๊ฒฝ (CS ๊ด€์  ์š”์•ฝ)
  8. ์•ž์œผ๋กœ์˜ ์‹ค์Šต/ํ•™์Šต ๋ชฉํ‘œ
  9. Reference

1. Docker ๊ธฐ๋ณธ ๊ฐœ๋…: "ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด ์–ด๋””์„œ๋‚˜ ๋˜‘๊ฐ™์ด ์‹คํ–‰"


์ถœ์ฒ˜: https://www.docker.com/

๐Ÿ“ฆ ๋„์ปค๋ž€?

  • Docker๋Š” "์ปจํ…Œ์ด๋„ˆ(Container)"๋ผ๋Š” ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ ์ „์ฒด๋ฅผ ์บก์Аํ™”ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
  • "๋‚ด ์ปดํ“จํ„ฐ์—์„  ๋˜๋Š”๋ฐ?"๋ผ๋Š” ๋ฌธ์ œ(ํ™˜๊ฒฝ ๋ถˆ์ผ์น˜)๋ฅผ ํ•ด๊ฒฐ.
  • ํ•œ ๋ฒˆ ํŒจํ‚ค์ง•ํ•œ ์ด๋ฏธ์ง€๋Š” ์–ด๋–ค OS, ์–ด๋–ค ์ปดํ“จํ„ฐ์—์„œ๋„ ์™„๋ฒฝํ•˜๊ฒŒ ์žฌํ˜„!

2. Docker ๋™์ž‘ ์›๋ฆฌ ๋ฐ ๊ตฌ์กฐ (๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜)

(1) ์ „์ฒด ๋™์ž‘ ๊ตฌ์กฐ

client-dockerhost-registry
์ถœ์ฒ˜: https://www.docker.com

๊ตฌ์„ฑ์š”์†Œ

  • Client: docker run, docker build, docker pull ๋“ฑ ๋ช…๋ น์–ด๋กœ Docker๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ฃผ์ฒด (๋ณดํ†ต ๊ฐœ๋ฐœ์ž์˜ ํ„ฐ๋ฏธ๋„)
  • Docker Host: Docker๊ฐ€ ์„ค์น˜๋œ ์ปดํ“จํ„ฐ.
    • Docker Daemon(์„œ๋ฒ„): ์‹ค์ œ๋กœ ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ, ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰, ๋„คํŠธ์›Œํฌยท์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ฆฌ ๋“ฑ ๋ชจ๋“  ๋™์ž‘์„ ์ˆ˜ํ–‰
    • Images: ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์˜์กด์„ฑ, ์„ค์ •๊ฐ’ ๋“ฑ ์ „์ฒด ์‹คํ–‰ ํ™˜๊ฒฝ์˜ '์Šค๋ƒ…์ƒท'
    • Containers: ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰์‹œ์ผœ ๋งŒ๋“ค์–ด์ง„ ๋…๋ฆฝ์ ์ธ '์‹คํ–‰ ์ธ์Šคํ„ด์Šค'
  • Registry: ์ด๋ฏธ์ง€์˜ ์ €์žฅ์†Œ (ex: Docker Hub).
    • ์ด๋ฏธ์ง€๋ฅผ pull/pushํ•ด์„œ ํŒ€/ํšŒ์‚ฌ/์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์œ  ๊ฐ€๋Šฅ

ํ๋ฆ„

  1. ์ด๋ฏธ์ง€๋Š” ๋ณดํ†ต ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(๋„์ปคํ—ˆ๋ธŒ ๋“ฑ)์—์„œ pull ํ•ด์„œ ๋‚ด๋ ค๋ฐ›์Œ
  2. ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ run ํ•ด์„œ ์‹คํ–‰
  3. ํ•„์š”ํ•˜๋‹ค๋ฉด ์ง์ ‘ build(Dockerfile ๊ธฐ๋ฐ˜)ํ•ด์„œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ฐ€๋Šฅ
  4. ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฒฉ๋ฆฌ๋œ ์ƒํƒœ(๋ณ„๋„ ๋„คํŠธ์›Œํฌ, ํŒŒ์ผ์‹œ์Šคํ…œ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ)์—์„œ ์‹คํ–‰๋จ

(2) VM(Virtual Machine vs Docker Containers ๊ตฌ์กฐ ๋น„๊ต

vM vs container

์ถœ์ฒ˜: https://www.atlassian.com/microservices/cloud-computing/containers-vs-vms

๊ตฌ๋ถ„Virtual Machine(๊ฐ€์ƒ๋จธ์‹ )Docker(์ปจํ…Œ์ด๋„ˆ)
๊ตฌ์กฐ๋ฌผ๋ฆฌ์„œ๋ฒ„ โ†’ Hypervisor โ†’ ๊ฒŒ์ŠคํŠธOS โ†’ ์•ฑ๋ฌผ๋ฆฌ์„œ๋ฒ„ โ†’ Host OS โ†’ Docker Engine โ†’ ์ปจํ…Œ์ด๋„ˆ(์•ฑ)
์žฅ์ ์™„๋ฒฝํ•œ ๊ฒฉ๋ฆฌ, OS๋งˆ๋‹ค ์™„์ „ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ๋งค์šฐ ๋น ๋ฆ„, ๊ฐ€๋ณ๊ณ , ํ•„์š” ์ตœ์†Œ ๋ฆฌ์†Œ์Šค๋งŒ ์‚ฌ์šฉ
๋‹จ์ ๋А๋ฆผ, ๋ฌด๊ฑฐ์›€, VM๋งˆ๋‹ค OS๊ฐ€ ๋”ฐ๋กœ ๊ตฌ๋™Host OS ์ปค๋„์— ๋”ฐ๋ผ ์•ฝ๊ฐ„์˜ ์ œ์•ฝ
์šฉ๋„์™„์ „ ๋…๋ฆฝ๋œ OS ํ™˜๊ฒฝ ํ•„์š”ํ•  ๋•Œ์„œ๋น„์Šค ๋ถ„๋ฆฌ, ์‹ ์† ๋ฐฐํฌ, CI/CD, DevOps

ํ•ต์‹ฌ

  • VM์€ "OS๊นŒ์ง€ ํ†ต์งธ๋กœ ๋ณต์ œ", ์ปจํ…Œ์ด๋„ˆ๋Š” "์•ฑ๊ณผ ์˜์กด์„ฑ๋งŒ ๊ฒฉ๋ฆฌํ•ด์„œ ์ดˆ๊ฒฝ๋Ÿ‰ํ™”"
  • ๋Œ€์šฉ๋Ÿ‰ ์ปจํ…Œ์ด๋„ˆ๋„ ์„œ๋ฒ„ ํ•œ ๋Œ€์—์„œ ๋„์šฐ๋Š”๊ฒŒ ๊ฐ€๋Šฅ

(3) Docker ์‹คํ–‰์˜ ํ•ต์‹ฌ ๋‹จ๊ณ„: Dockerfile โ†’ Image โ†’ Container

dockerfile -> image -> container

์ถœ์ฒ˜:https://www.docker.com

  1. Dockerfile ์ž‘์„ฑ
    • ์„ค์น˜ํ•  ํ”„๋กœ๊ทธ๋žจ, ๋ช…๋ น์–ด, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ '๋ ˆ์‹œํ”ผ' ์ž‘์„ฑ
  2. ์ด๋ฏธ์ง€(Image)๋กœ ๋นŒ๋“œ
    • ๋ชจ๋“  ์„ค์ •/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/์•ฑ ํŒŒ์ผ์ด ํฌํ•จ๋œ ์Šค๋ƒ…์ƒท ์ƒ์„ฑ
  3. ์ปจํ…Œ์ด๋„ˆ(Container)๋กœ ์‹คํ–‰
    • ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์œ„์— ๋„์šฐ๋Š” '์‹คํ–‰ ์ธ์Šคํ„ด์Šค'

์ฃผ์š” ๋ช…๋ น์–ด

  • docker build -t myapp . : Dockerfile์—์„œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
  • docker pull ubuntu:22.04 : ๋„์ปคํ—ˆ๋ธŒ์—์„œ ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ
  • docker run -d -p 8080:80 myapp : ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ํฌํŠธํฌ์›Œ๋”ฉ

3) Docker Architecture Overview: ์ปจํ…Œ์ด๋„ˆ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

Docker Architecture Overview
์ถœ์ฒ˜: https://until.blog/@xeros/docker%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9C%BC%EB%A1%9C-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80-

๊ตฌ์กฐ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ

์ด ๊ทธ๋ฆผ์€ Docker์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๋ช…๋ น์˜ ํ๋ฆ„์„ ํ•œ๋ˆˆ์— ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ์ž๊ฐ€ CLI๋กœ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ๋กœ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“Œ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ ์„ค๋ช…

  • Docker Client
    ๊ฐœ๋ฐœ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„(ํ˜น์€ ๊ธฐํƒ€ API, GUI)์—์„œ docker run, docker build, docker pull ๋“ฑ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์ฒด.

  • Docker Daemon (Server)
    Docker์˜ ํ•ต์‹ฌ ์—”์ง„. ํด๋ผ์ด์–ธํŠธ ๋ช…๋ น์„ ๋ฐ›์•„ ์‹ค์ œ๋กœ ์ด๋ฏธ์ง€ ๋นŒ๋“œ, ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰/์ •์ง€, ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ๋“ฑ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • Docker Engine
    Daemon + REST API + CLI ๋“ฑ Docker๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ „์ฒด ์—”์ง„ ๊ตฌ์กฐ.

  • Docker Images
    ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ์˜ ์Šค๋ƒ…์ƒท.
    ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Docker Containers
    ์ด๋ฏธ์ง€๋ฅผ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•œ ๊ฒฉ๋ฆฌ๋œ ์ธ์Šคํ„ด์Šค.
    ๊ฐ๊ฐ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์—์„œ ๋Œ์•„๊ฐ€๋Š” ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜.

  • Docker Registry
    ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅ/๊ณต์œ ํ•˜๋Š” ์ค‘์•™ ์ €์žฅ์†Œ(Docker Hub, ์ž์ฒด Registry ๋“ฑ).
    ์ด๋ฏธ์ง€๋Š” Registry์—์„œ pull, ๋‚ด ์ด๋ฏธ์ง€๋Š” push๋กœ ์—…๋กœ๋“œ ๊ฐ€๋Šฅ.

  • Running Instances
    ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ ๋™์ž‘ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ(์‹คํ–‰ ์ธ์Šคํ„ด์Šค).


โฉ ๋™์ž‘ ํ๋ฆ„

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„์—์„œ ๋ช…๋ น ์‹คํ–‰
    โ†’ ์˜ˆ) docker run mariadb:latest
  2. Client๊ฐ€ ๋ช…๋ น์„ Docker Daemon์— ์ „๋‹ฌ
  3. Daemon์€ ํ•„์š” ์‹œ Registry์—์„œ ์ด๋ฏธ์ง€๋ฅผ pull
  4. ์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ(Container)๋ฅผ ์‹คํ–‰
  5. ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋Š” Daemon์ด ๊ณ„์† ๊ด€๋ฆฌ
  6. ํ•„์š”์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€๋Š” Registry์— push/pull๋กœ ๊ณต์œ 

์ •๋ฆฌ:
Docker์˜ ๋ช…๋ น์–ด ์‹คํ–‰๋ถ€ํ„ฐ ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ๋™,
์ด๋ฏธ์ง€์˜ ์ƒ์„ฑ/์ €์žฅ/๊ณต์œ ๊นŒ์ง€์˜ ์ „์ฒด ๋ผ์ดํ”„์‚ฌ์ดํด์„
ํ•˜๋‚˜์˜ ๊ทธ๋ฆผ์œผ๋กœ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


3. Docker์™€ ์‹ค์ œ ๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฐ€์น˜

  • ์žฌํ˜„์„ฑ: ์–ด๋””์„œ๋“  ๊ฐ™์€ ํ™˜๊ฒฝ (ํ…Œ์ŠคํŠธ/์šด์˜/๋ฐฐํฌ)
  • ์‰ฌ์šด ํ™•์žฅ/๋ณต์ œ: ์ปจํ…Œ์ด๋„ˆ ์ˆ˜๋ฐฑ ๊ฐœ ์ž๋™ํ™” ๊ด€๋ฆฌ (Docker Compose, K8s ๋“ฑ)
  • ๋น ๋ฅธ ์‹œ์ž‘/์ข…๋ฃŒ: OS ๊ตฌ๋™ ๋ถˆํ•„์š”, ์ˆ˜ ์ดˆ ๋งŒ์— ์„œ๋น„์Šค ๊ต์ฒด ๊ฐ€๋Šฅ
  • DevOps, CI/CD: ํ…Œ์ŠคํŠธ/๋ฐฐํฌ ์ž๋™ํ™”์— ํ•„์ˆ˜์ 

4. ๋‚˜๋Š” ์™œ Docker๋ฅผ ์„ ํƒํ–ˆ๋‚˜? (์‹ค์Šต ํ™˜๊ฒฝ ๊ธฐ์ค€, ๋ฌธ์ œ์ ๊ณผ ํ•ด๊ฒฐ)

  • ๋กœ์ปฌ์— ์ด๋ฏธ MySQL์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ , ์‹ค์Šต์—์„œ๋Š” MariaDB๋ฅผ ๋ณ„๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด์—ˆ์Œ
  • Mac ํ™˜๊ฒฝ์—์„œ๋Š” HeidiSQL(์œˆ๋„์šฐ ์ „์šฉ DBํˆด) ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅ
  • Docker๋กœ MariaDB ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์šฐ๊ณ , Sequel Ace๋กœ ์—ฐ๊ฒฐ โ†’ ํฌํŠธ๋งŒ ๋ถ„๋ฆฌํ•ด์„œ ์ค‘๋ณต ๊ฑฑ์ • ์—†์ด ์‚ฌ์šฉ
  • VirtualBox๋กœ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋ฅผ ๋„์šฐ์ง€ ์•Š์•„๋„, Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™˜๊ฒฝ ๋ณต์ œ/๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
  • ๋„คํŠธ์›Œํฌ, ํฌํŠธํฌ์›Œ๋”ฉ, ssh ๋“ฑ ์‹ค์Šต์— ํ•„์š”ํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ์ธํ”„๋ผ ํ™˜๊ฒฝ์„ ์ฝ”๋“œ(๋ช…๋ น์–ด)๋กœ ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ์—ˆ์Œ

5. ์‹ค์Šต ํ™˜๊ฒฝ ์•„ํ‚คํ…์ฒ˜ (ํฌํŠธ/๋„คํŠธ์›Œํฌ ํ๋ฆ„)

  • ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์‹ค์Šต ํ™˜๊ฒฝ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง์ ‘ ๊ทธ๋ ค๋ดค๋‹ค
  • Mac(Host)
    • Docker Desktop ์‹คํ–‰ (๋„์ปค ์—”์ง„/์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ)
    • Sequel Ace(๋กœ์ปฌ ํด๋ผ์ด์–ธํŠธ) โ†’ ํฌํŠธํฌ์›Œ๋”ฉ(127.0.0.1:3307 โ†’ MariaDB ์ปจํ…Œ์ด๋„ˆ:3306)
    • ํ„ฐ๋ฏธ๋„ SSH โ†’ ํฌํŠธํฌ์›Œ๋”ฉ(127.0.0.1:2222 โ†’ Ubuntu ์ปจํ…Œ์ด๋„ˆ:22)
  • Docker Container
    • Ubuntu(SSH ์„œ๋ฒ„ ๊ตฌ๋™)
    • MariaDB(๋ณ„๋„ ํฌํŠธ, ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ, ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ)
  • ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ณ„๋„ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ(bridge)์—์„œ ๋™์ž‘
    • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ๋Š” 172.x.x.x์™€ ๊ฐ™์€ ๋‚ด๋ถ€ IP๋กœ ์ง์ ‘ ํ†ต์‹  ๊ฐ€๋Šฅ (Ubuntu โ†’ MariaDB ๋“ฑ)
    • Mac์—์„œ๋Š” ์˜ค์ง ์™ธ๋ถ€๋กœ ๊ฐœ๋ฐฉํ•œ ํฌํŠธ๋กœ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

6. ์‹ค์ œ ์„ค์น˜/์‹คํ–‰ ๊ฒฝํ—˜ (๋ช…๋ น์–ด /์‹ค์ œ ํ™”๋ฉด ์ •๋ฆฌ)

1) Docker Desktop ์„ค์น˜

2) MariaDB ์ปจํ…Œ์ด๋„ˆ ๋„์šฐ๊ธฐ

MariaDB ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์˜ˆ์‹œ

docker pull mariadb:latest
docker run -d \
  --name mariadb-test \
  -e MYSQL_ROOT_PASSWORD=๋น„๋ฐ€๋ฒˆํ˜ธ \
  -p 3307:3306 \
  mariadb:latest
์˜ต์…˜์„ค๋ช…์˜ˆ์‹œ
-d์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ(Detached)๋กœ ์‹คํ–‰docker run -d ...
--name์ปจํ…Œ์ด๋„ˆ์— ์ด๋ฆ„ ์ง€์ •docker run --name my-container ...
-eํ™˜๊ฒฝ๋ณ€์ˆ˜(ex. ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ) ์„ค์ •docker run -e MYSQL_ROOT_PASSWORD=๋น„๋ฒˆ ...
-pํฌํŠธํฌ์›Œ๋”ฉ (๋กœ์ปฌ:์ปจํ…Œ์ด๋„ˆ) ์„ค์ •docker run -p 3307:3306 ...

3)Ubuntu ์ปจํ…Œ์ด๋„ˆ ๋„์šฐ๊ธฐ

  • Ubuntu(SSH) ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์˜ˆ์‹œ
docker pull rastasheep/ubuntu-sshd:18.04
docker run -d \
  --name ubuntu-ssh \
  -p 2222:22 \
  rastasheep/ubuntu-sshd:18.04

๊ธฐ๋ณธ ubuntu ์ด๋ฏธ์ง€์—๋Š” SSH ๋ฐ๋ชฌ์ด ์„ค์น˜/๊ตฌ๋™๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋‹ˆ, rastasheep/ubuntu-sshd์™€ ๊ฐ™์ด SSH๊ฐ€ ํฌํ•จ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•จ.

4) Sequel Ace/ํ„ฐ๋ฏธ๋„ ์—ฐ๊ฒฐ ์˜ˆ์‹œ

  • Sequel Ace์—์„œ ์—ฐ๊ฒฐ ์„ค์ •

Host: 127.0.0.1
Port: 3307 (์•„๊นŒ -p 3307:3306์œผ๋กœ ํฌ์›Œ๋”ฉํ•œ ํฌํŠธ)
์‚ฌ์šฉ์ž/๋น„๋ฒˆ: MariaDB ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ž…๋ ฅ

ssh root@127.0.0.1 -p 2222
  • ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋‘˜๋‹ค ์ž˜ ์—ฐ๊ฒฐ ๋๋Š”์ง€ ํ™•์ธ

4) ์ปจํ…Œ์ด๋„ˆ IP/ํฌํŠธ/๋„คํŠธ์›Œํฌ ํ™•์ธ๋ฒ•

docker ps                # ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ/ํฌํŠธ ๋งคํ•‘ ํ™•์ธ
docker inspect [์ปจํ…Œ์ด๋„ˆ๋ช…] | grep IPAddress

docker exec -it [์ปจํ…Œ์ด๋„ˆ๋ช…] bash  # ๋‚ด๋ถ€ ์ง„์ž…
ifconfig                  # ๋‚ด๋ถ€์—์„œ IP ํ™•์ธ

7. Docker์˜ ๊ธฐ์ˆ ์  ๋ฐฐ๊ฒฝ (CS ๊ด€์  ์š”์•ฝ)

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

  • ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ์ˆ : Namespace(๊ฒฉ๋ฆฌ), cgroups(๋ฆฌ์†Œ์Šค ์ œํ•œ), OverlayFS(๊ณ„์ธตํ™”)
  • ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด: ๋ถˆํ•„์š”ํ•œ ์ค‘๋ณต ์—†์ด, ๊ณตํ†ต ํŒŒ์ผ์„ ๊ณต์œ ํ•˜๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ถ”๊ฐ€
  • ๊ฒฉ๋ฆฌ ์ˆ˜์ค€: ํ”„๋กœ์„ธ์Šค, ๋„คํŠธ์›Œํฌ, ํŒŒ์ผ์‹œ์Šคํ…œ, ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋“ฑ ๋ชจ๋‘ ๋ณ„๋„ ๊ณต๊ฐ„์ฒ˜๋Ÿผ ๋ถ„๋ฆฌ
  • ์‹คํ–‰ ์†๋„: OS ๋ถ€ํŒ… ์—†์ด ์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ์„ธ์Šค๋งŒ ์‹คํ–‰. VM ๋Œ€๋น„ ์••๋„์  ์†๋„/ํšจ์œจ

8. ์•ž์œผ๋กœ์˜ ์‹ค์Šต/ํ•™์Šต ๋ชฉํ‘œ ( ๋ฌด์กฐ๊ฑด ํ•˜๋ฆฌ๋ผ..)

  • docker-compose๋กœ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ์ผ๊ด„ ๊ด€๋ฆฌ ๋ฐ ์ž๋™ํ™”

  • MariaDB ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ, ๋ฐฑ์—…/๋ณต๊ตฌ, ๋ฐ์ดํ„ฐ ์ด๊ด€ ์ž๋™ํ™”

  • Spring๊ณผ์˜ ์‹ค์ œ ์—ฐ๋™ ํ”„๋กœ์ ํŠธ ๊ตฌ์ถ•

  • CI/CD, Jenkins, Github Actions ๋“ฑ DevOps ํŒŒ์ดํ”„๋ผ์ธ ์‹ค์Šต

  • AWS, GCP ๋“ฑ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ ์‹ค์Šต


[Reference]


profile
๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ๊ณผ ์„ฑ์žฅ์˜ ๊ธฐ๋ก์„ ์ผ๊ธฐ์žฅ์ฒ˜๋Ÿผ ์„ฑ์ฐฐํ•˜๋ฉฐ ๋‚จ๊ธฐ๋Š” ๊ณต๊ฐ„

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