Objectives


  • What are Containers?

  • What is Docker?

  • Why do you need it?

  • What can it do?

  • Run Docker Containers

  • Create Docket Image

  • Networks in Docker

  • Docker Compose

  • Docker Concepts in Depth

  • Docker for Windows/Mac

  • Docker Swarm

  • Docker vs Kubernetes

Docker Overview


Why do you need Docker?

  • Compatibility/Dependency
    • ์—ฌ๋Ÿฌ ๊ธฐ์ˆ  ์Šคํƒ์„ ์‚ฌ์šฉํ•  ๋•Œ (e.g. Node.js, MongoDB, Redis, Ansible)
    • ์šด์˜ ์ฒด์ œ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ + ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์˜์กด์„ฑ ๋ฌธ์ œ
      • ์–ด๋–ค ์„œ๋น„์Šค๋Š” A ๋ฒ„์ „, ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” B ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์˜์กด์„ฑ์ด ํ•„์š”ํ•จ
    • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒ๊ธธ ๋•Œ ๋งˆ๋‹ค ์ปดํฌ๋„ŒํŠธ์™€ ์ธํ”„๋ผ ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ์„ ํ™•์ธํ•ด์•ผ ํ•จ..
      • ์ด๋Ÿฐ ํ˜ธํ™˜์„ฑ ๋งคํŠธ๋ฆญ์Šค ๋ฌธ์ œ๋ฅผ The Matrix from Hell ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„
  • Long setup time
    • ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž ํ•ฉ๋ฅ˜ ์‹œ ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์ด ์‰ฝ์ง€ ์•Š์Œ
  • Different Dev/Test/Prod environments

What can it do?

  • ์ด๋Ÿฐ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ค„ ์ˆ˜ ์žˆ๊ณ , ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ๋„ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ ์šด์˜ ์ฒด์ œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Docker
  • Docker ๊ฐ€ ์žˆ์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ฐ์ž์˜ ์˜์กด์„ฑ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ ๋ถ„๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•ด ๊ฐ™์€ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ์šด์˜ ์ฒด์ œ์—์„œ ํ™˜๊ฒฝ๊ณผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Œ

What are Containers?

  • ์ปจํ…Œ์ด๋„ˆ๋ž€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ์ž์˜ ํ”„๋กœ์„ธ์Šค, ์„œ๋น„์Šค ๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค, ๋งˆ์šดํŠธ๋ฅผ ๊ฐ€์ƒ ๋จธ์‹ ์ฒ˜๋Ÿผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์šด์˜ ์ฒด์ œ ์ปค๋„์€ ๋™์ผํ•จ
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์ „์—๋„ ์žˆ๋˜ ๊ฐœ๋… (e.g. LXC, LXD, LXCFS ๋“ฑ)
    • Docker ๋Š” ๊ทธ ์ค‘ LXC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•จ
  • ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์€ ์ €์ˆ˜์ค€์ด๋ผ ์„ค์ •์ด ์–ด๋ ต์ง€๋งŒ Docker ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ฑ์˜ ๊ณ ์ˆ˜์ค€ํˆด์ด ์žˆ์œผ๋ฉด ์‰ฝ๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Œ

Operating System

  • Ubuntu, Fedora, SUSE, CentOS ์™€ ๊ฐ™์€ ์šด์˜ ์ฒด์ œ๋Š” ์šด์˜ ์ฒด์ œ ์ปค๋„๊ณผ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌ์„ฑ๋จ
  • ์šด์˜ ์ฒด์ œ ์ปค๋„์€ ๊ธฐ๋ฐ˜ ํ•˜๋“œ์›จ์–ด์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์—ญํ• ์„ ํ•จ
  • Linux ์ธ ์šด์˜ ์ฒด์ œ ์ปค๋„์€ ๊ทธ๋Œ€๋กœ์ง€๋งŒ ์†Œํ”„ํŠธ์›จ์–ด ๋•Œ๋ฌธ์— ์šด์˜ ์ฒด์ œ์˜ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒ
  • ์ด ์†Œํ”„ํŠธ์›จ์–ด์—๋Š” ๋‹ค์–‘ํ•œ UI์™€ ๋“œ๋ผ์ด๋ฒ„, ์ปดํŒŒ์ผ๋Ÿฌ, ํŒŒ์ผ ๊ด€๋ฆฌ์ž, ๊ฐœ๋ฐœ์ž ํˆด ๋“ฑ์ด ์žˆ์Œ
  • ์ฆ‰, ๋ชจ๋“  ์šด์˜ ์ฒด์ œ์—๋Š” ๋™์ผํ•œ Linux ์ปค๋„์ด ์žˆ์ง€๋งŒ, ์ผ๋ถ€ ์ปค์Šคํ…€ ์†Œํ”„ํŠธ์›จ์–ด ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ๊ฐ€ ๋˜๋Š” ๊ฒƒ

Sharing the kernel?

  • Docker ๊ฐ€ ์„ค์น˜๋œ Ubuntu ์šด์˜ ์ฒด์ œ๊ฐ€ ์žˆ์œผ๋ฉด
    • Docker ๋Š” ๊ฐ™์€ ์ปค๋„์— ๊ธฐ์ดˆํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์–ด๋–ค ์šด์˜ ์ฒด์ œ๋ผ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
    • ์ด ๊ฒฝ์šฐ Linux ์ปค๋„์ด ๋˜๊ณ  ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด์ œ๊ฐ€ Ubuntu ๋ผ๋ฉด
    • Docker ๋Š” Debian, Fedora, SUSE, CentOS ๋“ฑ์˜ OS์— ๊ธฐ๋ฐ˜ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • Docker ๋Š” ๋ชจ๋“  ์šด์˜ ์ฒด์ œ์™€ ํ˜ธํ™˜๋˜๋Š” Docker ํ˜ธ์ŠคํŠธ์˜ ๊ธฐ๋ฐ˜ ์ปค๋„์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ
  • Windows ๊ฐ™์€ ๊ฒฝ์šฐ ์ด์™€ ๊ฐ™์€ ์ปค๋„์„ ๊ณต์œ ํ•˜์ง€ ์•Š์Œ
    • ์ฆ‰, Linux ๊ฐ€ ์„ค์น˜๋œ Docker ํ˜ธ์ŠคํŠธ์—์„œ๋Š” Windows ๊ธฐ๋ฐ˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Œ
    • ๋”ฐ๋ผ์„œ Windows ์„œ๋ฒ„์— Docker ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•จ
    • Windows ์— Docker ๋ฅผ ์„ค์น˜ํ•˜๊ณ  Linux ๊ธฐ๋ฐ˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์Œ?
      • Windows ์—์„œ Linux ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€์ ์œผ๋กœ Linux ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ Linux ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ
      • ์ฆ‰, Windows ์œ„์— Linux ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ Linux ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ
  • ๋‹ค๋ฅธ ์ปค๋„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฉด ๋ญ๊ฐ€ ์ข‹๋ƒ?
    • ํ•˜์ดํผ๋ฐ”์ด์ €์™€ ๋‹ฌ๋ฆฌ Docker ๋Š” ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์ƒ์—์„œ ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ๋ฅผ ๊ฐ€์ƒํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํŒจํ‚ค์ง€ํ™”ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆํ™”ํ•ด์„œ ์›ํ•˜๋Š” ๋งŒํผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ

Conatianers vs Virtual Machines

  • ๊ฐ€์ƒ ๋จธ์‹ ์˜ ๊ฒฝ์šฐ ๊ฐ ๊ฐ€์ƒ ๋จธ์‹ ์— ๊ฐ์ž์˜ ์šด์˜ ์ฒด์ œ์™€ ์˜์กด์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋จ
  • ์ด๋Ÿฌํ•œ ์ƒ์ธต ๊ตฌ์กฐ๋Š” ๊ธฐ๋ฐ˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์ƒ ์šด์˜ ์ฒด์ œ์™€ ์ปค๋„์ด ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ
  • ๋˜ํ•œ ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋ฌด๊ฑฐ์›Œ์„œ ์šฉ๋Ÿ‰์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ  ์ฃผ๋กœ ๊ทธ ๋‹จ์œ„๊ฐ€ GB์— ๋‹ฌํ•˜๋Š”๋ฐ Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€๋ณ๊ณ  MB ๋‹จ์œ„์˜ ์šฉ๋Ÿ‰๋งŒ์„ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ ๋ช‡ ์ดˆ ๋งŒ์— Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ถ€ํŠธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ€์ƒ ๋จธ์‹ ์€ ์šด์˜ ์ฒด์ œ ์ „์ฒด๋ฅผ ๋ถ€ํŠธํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ๋˜ ํ•œ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ ์€ Docker ๊ฐ€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์ . ์ด๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๊ณต์œ ํ•˜๋Š” ์ปค๋„๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ
  • ๋ฐ˜๋Œ€๋กœ ๊ฐ€์ƒ ๋จธ์‹ ์€ ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด์ œ๋‚˜ ์ปค๋„์— ์˜์กดํ•˜์ง€ ์•Š์•„ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋˜์–ด ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์˜ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฆ‰, ๊ฐ™์€ ํ•˜์ดํผ๋ฐ”์ด์ €์—์„œ Linux ๋˜๋Š” Windows ๊ธฐ๋ฐ˜ ์•ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ๊ฐ€์ƒ ๋จธ์‹ ๋งŒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด ์•„๋‹™๋‹ˆ๋‹ค ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ€์ƒ ๋จธ์‹ ์€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
  • ์ˆ˜์ฒœ ๊ฐœ์˜ Docker ํ˜ธ์ŠคํŠธ์—์„œ ์ˆ˜์ฒœ ๊ฐ€์ง€์˜ ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” ๋Œ€๊ฐœ ๊ฐ€์ƒ Docker ํ˜ธ์ŠคํŠธ์— ๊ธฐ๋ฐ˜ํ•ด ์ปจํ…Œ์ด๋„ˆ๋“ค์ด ๊ตฌ์„ฑํ•˜์—ฌ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ฒ•์„ ๋ชจ๋‘ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • ์ฆ‰, ๊ฐ€์ƒํ™”์˜ ์ด์ ์„ ์‚ด๋ ค ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค Docker ํ˜ธ์ŠคํŠธ๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜ ์žˆ๊ณ  ํ•œํŽธ์œผ๋กœ๋Š” Docker์˜ ์ด์ ์„ ์‚ด๋ ค ํ•„์š”์— ๋”ฐ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœ๋น„์ €๋‹ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค
  • ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์ •๋„๋กœ ๋งŽ์€ ๊ฐ€์ƒ ๋จธ์‹ ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ์—ฌ๊ธฐ๋Š” ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋‹น ๊ฐ€์ƒ ๋จธ์‹ ์„ ํ”„๋กœ๋น„์ €๋‹ํ•œ ๊ฒฝ์šฐ์ด๊ณ  ๋Œ€์‹  ์ˆ˜์ฒœ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ์— ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ˆ˜๋ฐฑ ๊ฐœ ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ฃ 

How is it done?

  • ๋งŽ์€ ๊ธฐ๊ด€์—์„œ ์ž๊ธฐ ์ œํ’ˆ์„ ์ปจํ…Œ์ด๋„ˆํ™”ํ•ด์„œ Docker Hub ๋˜๋Š” Docker Store ๋ผ๋Š” ํผ๋ธ”๋ฆญ Docker ๋ณด๊ด€์†Œ์— ๊ณต๊ฐœํ•จ
  • ์ด๊ณณ์—์„œ ์šด์˜ ์ฒด์ œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์„œ๋น„์Šค, ํˆด ๋“ฑ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ  ํ˜ธ์ŠคํŠธ์— Docker ๋ฅผ ์„ค์น˜ํ•œ ๋’ค docker run ๋ช…๋ น์–ด์— ์ด๋ฏธ์ง€ ์ด๋ฆ„๋งŒ ๋ถ™์ด๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ

Container vs Image

  • ์ด๋ฏธ์ง€๋Š” VM ํ…œํ”Œ๋ฆฟ๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋˜๋Š” ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋กœ ๋ถ„๋ฆฌ๋œ ์ด๋ฏธ์ง€ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณณ์œผ๋กœ ๊ฐ์ž์˜ ํ™˜๊ฒฝ๊ณผ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ง€๋‹ˆ๊ณ  ์žˆ์Œ
  • ์ด๋ฏธ ๋„์ปคํ™”๋œ ์ œํ’ˆ์˜ ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ๊ณ  ๋งŒ์•ฝ ์ฐพ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Œ

Docker in DevOps

  • Docker ์ด์ „์—” ๊ฐœ๋ฐœํŒ€์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์šด์˜ํŒ€์—๊ฒŒ ์ง€์‹œ์‚ฌํ•ญ์„ ์ „๋‹ฌํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์„ค์ •๊ณผ ํ•„์š” ์„ค์น˜ ์‚ฌํ•ญ ๊ทธ๋ฆฌ๊ณ  ์˜์กด์„ฑ ๊ตฌ์„ฑ๋“ฑ์„ ์•Œ๋ ค์คฌ์Œ
  • Docker ์ดํ›„์—” ๊ฐœ๋ฐœํŒ€๊ณผ ์šด์˜ํŒ€์ด ํ•จ๊ป˜ ์ด๋Ÿฐ ์ง€์นจ๋“ค์„ Docker ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • Docker ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด Docker ๊ฐ€ ์„ค์น˜๋œ ํ˜ธ์ŠคํŠธ๋ผ๋ฉด ์–ด๋””์„œ๋“  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋„ ๋˜‘๊ฐ™์ด ์ž‘๋™ํ•จ
  • ์šด์˜ํŒ€์€ ์ด๋ฏธ์ง€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ

Docker on Mac


Docker Toolbox

  • Mac ์—์„œ Docker ๋ฅผ ์“ฐ๋ ค๋ฉด ์›๋ž˜ ์ด๊ฒŒ ํ•„์š”ํ–ˆ์Œ
  • Mac ์˜ VirtualBox ๋กœ ๋งŒ๋“ค์–ด์ง„ Linux VM ์˜ Docker
  • Mac OS ์—์„œ Linux Container ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ๋ฟ
  • Docker Toolbox ์—๋Š” Oracle VirtualBox, Docker Engine, Docker Machine, Docker Compose, Kitematic ์ด ํฌํ•จ๋จ
  • Docker Toolbox ์‹คํ–‰ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜ํ•˜๋ฉด VirtualBox ๊ฐ€ ์„ค์น˜๋˜๊ณ  ๋‚ด๋ถ€์—์„œ Docker ๋ฅผ ์‹คํ–‰ํ•˜๋Š” Boot to Docker ๋ผ๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ VM ์„ ๋ฐฐํฌํ•จ

Docker Desktop for Mac

  • Oracle VirtualBox ๋Œ€์‹  HyperKit ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•จ

References