Docker

๐Ÿง What is Docker

  • ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒํ™” ๋„๊ตฌ

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ๋‹จ์œ„๋กœ ์‹คํ–‰ํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ธฐ์ˆ 

  • Go์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ

์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์•Œ์•„์•ผ ํ•˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋‹ค.

  • ๊ฐ€์ƒํ™” ๊ธฐ์ˆ 

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

๐Ÿงต ๊ฐ€์ƒํ™” ๊ธฐ์ˆ 

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

ํ˜ธํ…”๊ณผ ๋ฐฉ์˜ ๋น„์œ ๋Š” ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค.

ํ•œ ๊ฑด๋ฌผ์— ํ•œ ์‚ฌ๋žŒ์ด ์‚ด ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์ด ๊ฑด๋ฌผ์€ ์ปดํ“จํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐ๊ฐ์˜ ์‚ฌ๋žŒ (์šด์˜์ฒด์ œ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์€ ํ•ด๋‹น ๊ฑด๋ฌผ์„ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.

์ด์ œ ๊ฐ™์€ ๊ฑด๋ฌผ(๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด)์— ํ˜ธํ…”์„ ์ง€์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ž. ํ˜ธํ…”์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ฐฉ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜๋œ๋‹ค. ๊ฐ ๋ฐฉ์€ ๊ฐ€์ƒ ๋จธ์‹ (VM)์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ˜ธํ…”์€ ๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด (ํ•˜์ดํผ๋ฐ”์ด์ €) ์—ญํ• ์„ ํ•œ๋‹ค. ๊ฐ ๋ฐฉ์—๋Š” ์—ฌ๋Ÿฌ ์†๋‹˜(์šด์˜์ฒด์ œ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์ด ๋จธ๋ฌผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“š ํ•˜์ดํผ๋ฐ”์ด์ €

๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด ์ž์›์„ ์—ฌ๋Ÿฌ ๊ฐ€์ƒ ๋จธ์‹ (VM)์œผ๋กœ ๋ถ„ํ• ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด

  • OS์— ์ž์›์„ ํ• ๋‹น ๋ฐ ์กฐ์œจ

  • OS๋“ค์˜ ์š”์ฒญ์„ ๋ฒˆ์—ญํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด์— ์ „๋‹ฌ

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์˜ ์‹ค์ œ ์˜ˆ

  • ์ƒํ™ฉ: ๊ฐœ๋ฐœ ํŒ€์—์„œ ์—ฌ๋Ÿฌ ์šด์˜์ฒด์ œ๋ฅผ ํ…Œ์ŠคํŠธ

  • ๋น„์œ 

    • ์—ฌ๋Ÿฌ ๋ฐฉ์ด ์žˆ๋Š” ํ˜ธํ…”์„ ์‚ฌ์šฉํ•œ๋‹ค.

    • ๊ฐ ๋ฐฉ์— Windows, Linux, macOS ๋“ฑ์˜ ์šด์˜์ฒด์ œ๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

    • ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ๊ฐ์˜ ๋ฐฉ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜์ฒด์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์‹ค์ œ ์˜ˆ: VMware๋‚˜ VirtualBox๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์  ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ์šด์˜์ฒด์ œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•œ๋‹ค.

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์˜ ์žฅ์ 

  • ํšจ์œจ์„ฑ: ํ•˜๋‚˜์˜ ํฐ ๊ฑด๋ฌผ(๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด)์— ์—ฌ๋Ÿฌ ๋ฐฉ(๊ฐ€์ƒ ๋จธ์‹ )์„ ๋งŒ๋“ค์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ

  • ์œ ์—ฐ์„ฑ: ํ•„์š”์— ๋”ฐ๋ผ ๋ฐฉ(๊ฐ€์ƒ ๋จธ์‹ )์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ

  • ๊ฒฉ๋ฆฌ: ํ•œ ๋ฐฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋‹ค๋ฅธ ๋ฐฉ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ

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

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์€

  • ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค(ํ”„๋กœ์„ธ์„œ, ๋ฉ”๋ชจ๋ฆฌ, ์ €์žฅ์†Œ ๋“ฑ)๋ฅผ ์ถ”์ƒํ™” ํ•œ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ, ํ•˜๋“œ์›จ์–ด, ์ปจํ…Œ์ด๋„ˆ, ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ€์ƒํ™” ํ•œ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹ (Virtual Machine, VM) VS ์ปจํ…Œ์ด๋„ˆ(Container)

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์—๋Š” ๊ฐ€์ƒ ๋จธ์‹  (Virtual Machine, VM)๊ณผ ์ปจํ…Œ์ด๋„ˆ(Container)๋ฐฉ์‹์ด ์กด์žฌํ•˜๋ฉฐ, ๊ฐ์ž ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹  (Virtual Machine, VM)

  • ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์—์„œ ํ•˜์ดํผ๋ฐ”์ด์ €๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜์—ฌ, ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ปดํ“จํ„ฐ ์ž์›(CPU, ๋ฉ”๋ชจ๋ฆฌ, ์ €์žฅ์žฅ์น˜ ๋“ฑ)์„ ๊ฐ€์ƒ์ ์œผ๋กœ ๋ถ„ํ• ํ•œ๋‹ค. (ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ์ž์›์„ ๊ฐ€์ƒ์ ์œผ๋กœ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉ)

  • ๊ฐ ๊ฐ€์ƒ ๋จธ์‹ ์€ ์™„์ „ํ•œ ์šด์˜ ์ฒด์ œ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํฌํ•จํ•œ๋‹ค.

  • ๊ฐ VM์€ ์ž์ฒด ์ปค๋„์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ํ˜ธ์ŠคํŠธ์™€๋Š” ์™„์ „ํžˆ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•œ๋‹ค.

  • ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋น„๊ต์  ๋ฌด๊ฒ๊ณ  ๋А๋ฆฌ์ง€๋งŒ, ๋‹ค์–‘ํ•œ ์šด์˜ ์ฒด์ œ๋ฅผ ํ˜ธ์ŠคํŠธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.

ํ•ต์‹ฌ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ํ˜ธ์ŠคํŠธ์˜ ์ž์›์„ ๊ฐ€์ƒ์ ์œผ๋กœ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉ

  • ์ž์ฒด ์ปค๋„์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์™„์ „ํ•œ ์šด์˜ ์ฒด์ œ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํฌํ•จ

vm

์ปจํ…Œ์ด๋„ˆ(Container)

  • ํ˜ธ์ŠคํŠธ ์šด์˜ ์ฒด์ œ ์ปค๋„์„ ๊ณต์œ ํ•œ๋‹ค.

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฒฉ๋ฆฌ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ฐฉ์‹์ด๋‹ค.

  • ํ˜ธ์ŠคํŠธ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•ด ์‹คํ–‰ํ•˜๋ฉฐ, ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•œ๋‹ค.

  • ๊ฐ€์ƒ ๋จธ์‹ (VM)๋ณด๋‹ค ๊ฐ€๋ณ๊ณ  ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋น ๋ฅด๋ฉฐ, ์ž์› ์†Œ๋น„๊ฐ€ ์ ๋‹ค.

  • ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํ”„๋กœ์„ธ์Šค ์ˆ˜์ค€์˜ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ผํ•œ ํ˜ธ์ŠคํŠธ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ต์‹ฌ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ํ˜ธ์ŠคํŠธ์˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ 

  • ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ ์œ„์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ(ํ”„๋กœ์„ธ์Šค) ์ƒ์„ฑ

vm

์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”๊ฐ€

  • ๊ฐ€์ƒ ๋จธ์‹ ์€ ์™„์ „ํ•œ ์šด์˜ ์ฒด์ œ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ํ™˜๊ฒฝ์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ํšจ์œจ์ ์ด๋‹ค.

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

์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์— ๋น„ํ•ด์„œ ์™œ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅผ๊นŒ

  • ๊ณต์œ  ์ปค๋„

    • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๋Š” ๋ฐ˜๋ฉด, VM์€ ๊ฐ VM์ด ๋…๋ฆฝ์ ์ธ ์šด์˜ ์ฒด์ œ ์ปค๋„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋กœ ์ธํ•ด, ์ปจํ…Œ์ด๋„ˆ๋Š” VM๋ณด๋‹ค ํ›จ์”ฌ ์ ์€ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๋ฉฐ ์‹œ์ž‘ ์‹œ๊ฐ„๋„ ๋” ๋น ๋ฅด๋‹ค.

  • ๋ฆฌ์†Œ์Šค ๊ณต์œ 

    • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ๊ณต์œ ํ•ด์„œ ์‹คํ–‰๋˜๋Š” ๋ฐ˜๋ฉด, ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋ฌผ๋ฆฌ์ ์ธ ์ž์›์„ ํ• ๋‹น ๋ฐ›์•„์„œ ์‚ฌ์šฉ๋˜๊ธฐ ๋–„๋ฌธ์—, ๋” ๋งŽ์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • ์ด๋ฏธ์ง€ ๊ตฌ์กฐ

    • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ทธ์— ํ•„์š”ํ•œ ์ข…์†์„ฑ๋งŒ ํฌํ•จํ•˜๋Š” ๋ฐ˜๋ฉด, VM ์ด๋ฏธ์ง€๋Š” ์™„์ „ํ•œ ์šด์˜ ์ฒด์ œ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋Š” ๋” ์ž‘๊ณ  ๊ฐ€๋ณ๋‹ค.

  • ๊ฐ€์ƒํ™” ๊ณ„์ธต์˜ ์ฐจ์ด

    • VM์€ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ๊ณผ ๊ฐ VM ์‚ฌ์ด์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณต

    • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์˜ ์ปค๋„์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋” ์ ์€ ์ถ”์ƒํ™” ๊ณ„์ธต์ด ํ•„์š”ํ•˜๋‹ค.

    • ์ด๋Š” ๋” ์ ์€ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๋” ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๊ฐ€์ ธ์˜จ๋‹ค.

์ฐจ์ด์  ์ •๋ฆฌ

  • ๊ฐ€์ƒํ™” ๋ ˆ๋ฒจ

    • ๊ฐ€์ƒ ๋จธ์‹ : ํ•˜๋“œ์›จ์–ด ๋ ˆ๋ฒจ์—์„œ ๊ฐ€์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๊ฐ ๊ฐ€์ƒ ๋จธ์‹ ์—๋Š” ๊ณ ์œ ์˜ OS๊ฐ€ ์žˆ์Œ.

    • ์ปจํ…Œ์ด๋„ˆ: ์šด์˜์ฒด์ œ ๋ ˆ๋ฒจ์—์„œ ๊ฐ€์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๊ณ  ํ˜ธ์ŠคํŠธ OS๋ฅผ ๊ณต์œ .

  • ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ

    • ๊ฐ€์ƒ ๋จธ์‹ : ์™„์ „ํžˆ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•จ.

    • ์ปจํ…Œ์ด๋„ˆ: ๊ฐ€๋ฒผ์šฐ๋ฉฐ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ž„.

  • ๋ถ€ํŒ… ์‹œ๊ฐ„

    • ๊ฐ€์ƒ ๋จธ์‹ : OS๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ ๋ถ€ํŒ…์— ๋” ๊ธด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ.

    • ์ปจํ…Œ์ด๋„ˆ: ๊ฐ€์ƒ ๋จธ์‹ ์— ๋น„ํ•ด ์›”๋“ฑํ•œ ์†๋„๋กœ (๋ช‡ ์ดˆ ๋‚ด) ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ.

  • ๊ด€๋ฆฌ ๋ฐ ์œ ์ง€๋ณด์ˆ˜

    • ๊ฐ€์ƒ ๋จธ์‹ : OS๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ ํŒจ์น˜, ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ ๋“ฑ ๊ด€๋ฆฌ๊ฐ€ ๋” ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Œ.

    • ์ปจํ…Œ์ด๋„ˆ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์ข…์†์„ฑ๋งŒ์„ ํฌํ•จํ•˜๋ฏ€๋กœ ๊ด€๋ฆฌ๊ฐ€ ๋น„๊ต์  ๊ฐ„๋‹จํ•จ.

๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒํ™” ๋„๊ตฌ

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

๋„์ปค ์•„ํ‚คํ…์ณ(Docker Architecture)

  • Docker Client

  • Docker Host(Docker Server)

  • Docker Registry

๋„์ปค ํด๋ผ์ด์–ธํŠธ(Docker Client)

  • ์‚ฌ์šฉ์ž์™€ ๋„์ปค ๋ฐ๋ชฌ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋ฉฐ, ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ปค๋งจ๋“œ ๋ผ์ธ ๋„๊ตฌ์ด๋‹ค.

  • ์‚ฌ์šฉ์ž๋Š” ๋„์ปค ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•ด ๋„์ปค ํ˜ธ์ŠคํŠธ์˜ ๋„์ปค ๋ฐ๋ชฌ์—๊ฒŒ ๋ช…๋ น์„ ์ „๋‹ฌํ•œ๋‹ค.

  • docker ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Docker daemon์œผ๋กœ ๋ณด๋‚ด์–ด ์‹คํ–‰ํ•œ๋‹ค.

docker build
docker pull
docker run

๋„์ปค ํ˜ธ์ŠคํŠธ(Docker Host, Docker Server)

  • ๋„์ปค ์—”์ง„์ด ์„ค์น˜๋œ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์ด๋‹ค.

  • ๋„์ปค ์ด๋ฏธ์ง€์˜ ์ €์žฅ, ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰, ๋„์ปค ํด๋ผ์ด์–ธํŠธ์™€ ํ†ต์‹ ํ•œ๋‹ค.

  • ๋„์ปค ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ/์‹œ์ž‘/์ค‘์ง€ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ•  ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ํ˜ธ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.

๐Ÿ“š Docker Demon

  • ๋„์ปค ์—”์ง„์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ

  • ๋„์ปค ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๋„์ปค ํด๋ผ์ด์–ธํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ , ๋„์ปค ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌ

  • ์™ธ๋ถ€์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰

๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(Docker Registry)

  • ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ์ค‘์•™ ์ €์žฅ์†Œ์ด๋‹ค.

  • ๋„์ปค ํด๋ผ์ด์–ธํŠธ๋Š” ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰/ํ‘ธ์‹œ/ํ’€ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋„์ปค ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๋„์ปค ํด๋ผ์ด์–ธํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ , ๋„์ปค ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

docker-architecture

Dockerfile, Docker Image, Docker Container

Dockerfile

๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋ฉฐ, ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์™€ ์„ค์ •์ด ํฌํ•จ๋œ๋‹ค. ๋„์ปค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

Docker image

๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ํŒŒ์ผ๊ณผ ์„ค์ •์„ ํฌํ•จํ•˜๋Š” ๊ฐ€๋ณ๊ณ  ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ๊ฐ€๋Šฅ ํŒจํ‚ค์ง€์ด๋‹ค. ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ , ๋„์ปค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Docker container

๋„์ปค ์ด๋ฏธ์ง€์˜ ์ธ์Šคํ„ด์Šค์ด๋ฉฐ, ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋œ๋‹ค. ํ˜ธ์ŠคํŠธ ์ž์›์„ ๊ณต์œ ํ•˜์ง€๋งŒ, ํ˜ธ์ŠคํŠธ์™€๋Š” ํ”„๋กœ์„ธ์Šค ๋ ˆ๋ฒจ์—์„œ ๊ฒฉ๋ฆฌ๋˜์–ด ์‹คํ–‰๋œ๋‹ค.

Last updated