Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ญ์‚ฌ์™€ ๊ธฐ๋ณธ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

10์›” XNUMX์ผ Slurm์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค Docker ๋น„๋””์˜ค ๊ฐ•์ขŒ๋„คํŠธ์›Œํฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ถ€ํ„ฐ ์ฃผ์š” ์ถ”์ƒํ™”๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ ์ €ํžˆ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” Docker์˜ ์—ญ์‚ฌ์™€ ์ฃผ์š” ์ถ”์ƒํ™” ๊ฐœ๋…์ธ Image, CLI, Dockerfile์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ์ดˆ๋ณด์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ˆ™๋ จ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ํฅ๋ฏธ๋กญ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ”ผ๋„, ๋งน์žฅ๋„, ์‹ฌํ•ด ์ž ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ.

Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ญ์‚ฌ์™€ ๊ธฐ๋ณธ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

Docker๋ž€ ๋ฌด์—‡์ธ๊ฐ€

์œ„ํ‚คํ”ผ๋””์•„์—์„œ Docker์˜ ์ •์˜๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Docker๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ์™€ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.

์ด ์ •์˜์—์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ "์ปจํ…Œ์ด๋„ˆํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ"์ด๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€๋Š” ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€๋ณด์ž. ์ œ๊ฐ€ ์ „ํ†ต์ ์œผ๋กœ "๋ชจ๋†€๋ฆฌ์‹ ์‹œ๋Œ€"๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์‹œ๋Œ€๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋†€๋ฆฌ์‹ ์‹œ๋Œ€

๋ชจ๋†€๋ฆฌ์‹ ์‹œ๋Œ€๋Š” 2000๋…„๋Œ€ ์ดˆ๋ฐ˜์œผ๋กœ, ๋‹น์‹œ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ชจ๋†€๋ฆฌ์‹์ด์—ˆ๊ณ  ๋งŽ์€ ์ข…์†์„ฑ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์—๋Š” ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ˆ˜๋Š” ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ง€ ์•Š์•˜๊ณ , ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์„œ๋ฒ„์˜ ์ด๋ฆ„์„ ์•Œ๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์žฌ๋ฐŒ๋Š” ๋น„๊ต๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์˜์ƒ ์žฌ์ƒ

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

ํ•˜์ดํผ๋ฐ”์ด์ € ๊ธฐ๋ฐ˜ ๊ฐ€์ƒํ™” ์‹œ์Šคํ…œ

๊ฐ€์ƒํ™” ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋“ค์–ด๋ณด์‹  ์ ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? VMware, VirtualBox, Hyper-V, Qemu KVM ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ€์ƒํ™” ์‹œ์Šคํ…œ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒฉ๋ฆฌ ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™”๋ฅผ ์œ„ํ•ด์„œ๋Š” ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ดํผ๋ฐ”์ด์ €๋Š” ๋ฆฌ์†Œ์Šค ์˜ค๋ฒ„ํ—ค๋“œ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹  ์ž์ฒด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฑฐ๋Œ€ํ•œ ๋จธ์‹ ์ž…๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ, Nginx, Apache, MySQL ๋“ฑ์ด ํฌํ•จ๋œ ๋ฌด๊ฑฐ์šด ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ํฌ๊ณ  ๊ฐ€์ƒ ๋จธ์‹ ์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€์ƒ ๋จธ์‹  ์ž‘์—…์ด ๋А๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ ์ˆ˜์ค€ ๊ฐ€์ƒํ™” ์‹œ์Šคํ…œ์ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์ปค๋„ ์ˆ˜์ค€ ๊ฐ€์ƒํ™” ์‹œ์Šคํ…œ

์ปค๋„ ์ˆ˜์ค€ ๊ฐ€์ƒํ™”๋Š” OpenVZ, Systemd-nspawn ๋ฐ LXC์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๊ฐ€์ƒํ™”์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋Š” LXC์ž…๋‹ˆ๋‹ค.Linux ์ปจํ…Œ์ด๋„ˆ).

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

๊ธฐ๋ณธ์ ์œผ๋กœ LXC๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ์ปจํ…Œ์ด๋„ˆ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ญ์‚ฌ์™€ ๊ธฐ๋ณธ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

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

๊ฐ€์ƒํ™”์™€ ์ปจํ…Œ์ด๋„ˆํ™”์˜ ์ฐจ์ด์ ์€ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜๋“œ์›จ์–ด ํ•˜์ดํผ๋ฐ”์ด์ €, OS ์œ„์˜ ํ•˜์ดํผ๋ฐ”์ด์ €, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ญ์‚ฌ์™€ ๊ธฐ๋ณธ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

์ •๋ง๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฒ ์–ด ๋ฉ”ํƒˆ ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์ˆ˜์ค€์—์„œ ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ฒฉ๋ฆฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

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

์ปค๋„ ์ˆ˜์ค€์—์„œ ์ปจํ…Œ์ด๋„ˆํ™”์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” ๊ธฐ์ˆ ์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ์ œ์–ด ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค: PID, ๋„คํŠธ์›Œํ‚น, ๋งˆ์šดํŠธ ๋ฐ ์‚ฌ์šฉ์ž. ๋” ๋งŽ์€ ๋‚ด์šฉ์ด ์žˆ์ง€๋งŒ, ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋‹ค์Œ ๋‚ด์šฉ์— ์ง‘์ค‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฑฐ๊ธฐ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด PID 1์ด ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ์—์„œ PID 1์€ systemd ๋˜๋Š” init์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒˆ๋กœ์šด ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋„ฃ์œผ๋ฉด PID 1๋„ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํ‚น ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„คํŠธ์›Œํฌ๋ฅผ ์ œํ•œ/๊ฒฉ๋ฆฌํ•˜๊ณ  ํ•ด๋‹น ๋„คํŠธ์›Œํฌ ๋‚ด์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์šดํŠธ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ œํ•œ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž โ€” ์‚ฌ์šฉ์ž ์ œํ•œ.

์ œ์–ด ๊ทธ๋ฃน: ๋ฉ”๋ชจ๋ฆฌ, CPU, IOPS, ๋„คํŠธ์›Œํฌ - ์ด 12๊ฐœ ์„ค์ •. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด Cgroup์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.

์ œ์–ด ๊ทธ๋ฃน์€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ†ต์ œ ๊ทธ๋ฃน์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํŠน์ • ์–‘์˜ ๋ฆฌ์†Œ์Šค ์ด์ƒ์„ ์†Œ๋น„ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆํ™”๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๊ธฐ๋Šฅ, ์“ฐ๊ธฐ ์‹œ ๋ณต์‚ฌ ๋“ฑ์˜ ์ถ”๊ฐ€ ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์—ญ๋Ÿ‰์ด๋ž€ ํ”„๋กœ์„ธ์Šค์— ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์—†๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ด๋Š” ๋งŽ์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋น„ํŠธ๋งต์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฃจํŠธ ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์„œ๋ฒ„๋Š” ์‹œ์Šคํ…œ ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Time Capsule์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋ฉฐ, ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ œํ•œ์„ ์œ ์—ฐํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜์—ฌ ์ž์‹ ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copy-on-write ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด Docker ์ด๋ฏธ์ง€๋กœ ์ž‘์—…ํ•˜๊ณ  ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker๋Š” ํ˜„์žฌ Cgroups v2์™€ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ด ๋ฌธ์„œ์—์„œ๋Š” Cgroups v1์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ญ์‚ฌ๋กœ ๋Œ์•„๊ฐ€๋ณด์ฃ .

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

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

์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์‹œ๋Œ€๊ฐ€ ์™”์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ๋Œ€

์ปจํ…Œ์ด๋„ˆ ์‹œ๋Œ€๊ฐ€ ๋„๋ž˜ํ•˜๋ฉด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ฒ ํ•™๋„ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค - ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ.
  • ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์ปจํ…Œ์ด๋„ˆ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋†€๋ฆฌ์Šค๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€๊ฐ€ ์ž‘์„์ˆ˜๋ก ๋” ์ข‹์Šต๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ๊ณ , ์ถœ์‹œ๊ฐ€ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.
  • ์ธ์Šคํ„ด์Šค๋Š” ๋ง์—†์–ด์ง‘๋‹ˆ๋‹ค.

์• ์™„๋™๋ฌผ๊ณผ ์†Œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ๋˜ ๊ฑธ ๊ธฐ์–ตํ•˜์‹œ๋‚˜์š”? ์ธ์Šคํ„ด์Šค๋Š” ์˜ˆ์ „์—๋Š” ๊ฐ€์ถ•๊ณผ ๊ฐ™์•˜์ง€๋งŒ, ์ด์ œ๋Š” ์†Œ์™€ ๊ฐ™์•„์กŒ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋†€๋ฆฌ์Šค, ์ฆ‰ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ 100๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, 100๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ปจํ…Œ์ด๋„ˆ์—๋Š” ๋ณต์ œํ’ˆ์ด 2~3๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ต์ œํ•˜๋Š” ๊ฒƒ์€ ๋œ ์ค‘์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์„œ๋น„์Šค ์ž์ฒด์˜ ๊ฐ€์šฉ์„ฑ, ์ฆ‰ ์ปจํ…Œ์ด๋„ˆ ์„ธํŠธ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

2014~2015๋…„์—๋Š” Docker๊ฐ€ ํฌ๊ฒŒ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ์ด ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

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

์˜ค๋ฒ„ํ—ค๋“œ์— ๋Œ€ํ•œ ์—ฌ๋‹ด

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

๋ฐ˜๋ฉด์—, ๋” ๊นŠ์ด ํŒŒ๊ณ ๋“ค๋ฉด Docker์—๋Š” ์‹ค์ œ๋กœ ์˜ค๋ฒ„ํ—ค๋“œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋Š” PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋„ฃ์œผ๋ฉด PID 1์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์˜ ํ˜ธ์ŠคํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ PID๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ปจํ…Œ์ด๋„ˆ์—์„œ Nginx๋ฅผ ์‹คํ–‰ํ•˜๋ฉด PID 1(๋งˆ์Šคํ„ฐ ํ”„๋กœ์„ธ์Šค)์ด ๋ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ์—์„œ๋Š” PID๊ฐ€ 12623์ž…๋‹ˆ๋‹ค. ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€ ๋งํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

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

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

Docker ๊ฐœ๋…์— ๋Œ€ํ•˜์—ฌ

Docker๋Š” ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  1. Docker Daemon์€ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐœ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  2. Docker CII๋Š” Docker๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค.
  3. Dockerfile - ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ.
  4. ์ด๋ฏธ์ง€ โ€” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํŽผ์ณ์ง€๋Š” ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.
  5. ์ปจํ…Œ์ด๋„ˆ.
  6. Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋žต์ ์œผ๋กœ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ญ์‚ฌ์™€ ๊ธฐ๋ณธ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

Docker_host๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” Docker ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ๋นŒ๋“œ, ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ, ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ๋“ฑ์˜ ๋ช…๋ น์„ ์ „์†กํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Docker ๋ฐ๋ชฌ์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ๊ฐ€์„œ ์ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. Docker ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ์ปฌ(Unix ์†Œ์ผ“)๊ณผ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์˜ TCP๋ฅผ ํ†ตํ•ด ๋ชจ๋‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋„์ปค ๋ฐ๋ชฌ โ€” ์ด๊ฑด ์„œ๋ฒ„ ๋ถ€๋ถ„์œผ๋กœ, ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์— ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ "์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ผ"๊ณ  ๋งํ•  ๋•Œ, ์•…๋งˆ๋„ ๊ฐ™์€ ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค CLI โ€” Docker์˜ ํด๋ผ์ด์–ธํŠธ ๋ถ€๋ถ„์œผ๋กœ, ๋ฐ๋ชฌ ์ž‘์—…์„ ์œ„ํ•œ ์ฝ˜์†” ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ, ๋กœ์ปฌ๋กœ๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ช…๋ น:

docker ps โ€” ํ˜„์žฌ Docker ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
docker images - ๋กœ์ปฌ์— ๋‹ค์šด๋กœ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
docker search <> โ€” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
docker pull <> โ€” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ๋จธ์‹ ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
๋„์ปค ๋นŒ๋“œ < > โ€” ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.
docker run <> โ€” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
docker rm <> โ€” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
docker ๋กœ๊ทธ <> โ€” ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ
docker start/stop/restart <> โ€” ์ปจํ…Œ์ด๋„ˆ ์ž‘์—…

์ด๋Ÿฌํ•œ ๋ช…๋ น์–ด๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ˆ™์ง€ํ•˜๊ณ  ์ž์‹  ์žˆ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉ์ž ์ˆ˜์ค€์—์„œ Docker์— ๋Œ€ํ•œ ์ˆ™๋ จ๋„๊ฐ€ 70% ์ •๋„๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ญ์‚ฌ์™€ ๊ธฐ๋ณธ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

Dockerfile์€ ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์™ผ์ชฝ์—๋Š” ๋ช…๋ น, ์˜ค๋ฅธ์ชฝ์—๋Š” ์ธ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ฐ ๋ช…๋ น(์ผ๋ฐ˜์ ์œผ๋กœ Dockerfile์— ์ž‘์„ฑ๋จ)์€ ์ด๋ฏธ์ง€์— ์ƒˆ ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์™ผ์ชฝ๋งŒ ๋ด๋„ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋Œ€๋žต ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” "ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. "ํด๋”๋ฅผ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ"๋Š” ๋˜ ๋‹ค๋ฅธ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ๋ ˆ์ด์–ด ์ผ€์ดํฌ๋Š” ์‚ถ์„ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Dockerfile์„ ๋งŒ๋“ค๊ณ  ๋งˆ์ง€๋ง‰ ์ค„์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: "python" "main.py"๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ) ์ด์ „ ๊ณ„์ธต์ด ์บ์‹œ๋กœ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜์ƒ - ์ด๊ฒƒ์€ ์ปจํ…Œ์ด๋„ˆ ํฌ์žฅ์ด๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€์—์„œ ๋ฐœ์‚ฌ๋ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๊ด€์ ์—์„œ Docker๋ฅผ ์‚ดํŽด๋ณด๋ฉด(deb ๋˜๋Š” rpm ํŒจํ‚ค์ง€๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ), ์ด๋ฏธ์ง€๋Š” ๋ณธ์งˆ์ ์œผ๋กœ rpm ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. yum install์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜, ์ œ๊ฑฐํ•˜๊ณ , ์ €์žฅ์†Œ์—์„œ ์ฐพ์•„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋„ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€์—์„œ ์‹œ์ž‘๋˜๊ณ  Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(์ €์žฅ์†Œ์— ์žˆ๋Š” yum๊ณผ ์œ ์‚ฌ)์— ์ €์žฅ๋˜๋ฉฐ ๊ฐ ์ด๋ฏธ์ง€์—๋Š” SHA-256 ํ•ด์‹œ, ์ด๋ฆ„, ํƒœ๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ โ€” Docker ์ด๋ฏธ์ง€์˜ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. Docker๋Š” OS์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ‘œ์ค€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ธ dockerhub๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋งŒ์˜ ์ €์žฅ์†Œ, ๋‚˜๋งŒ์˜ Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

"์ปจํ…Œ์ด๋„ˆ 1๊ฐœ - ํ”„๋กœ์„ธ์Šค XNUMX๊ฐœ"๋ผ๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์€ PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. PID XNUMX์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹œ์ž‘๋  ๋•Œ, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ข…๋ฃŒ๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ ์ „์ฒด๋„ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ด๊ณ  ํ•˜๋‚˜๋Š” ์‚ด์•„ ์žˆ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ฃฝ์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ณ„์† ์‚ด์•„์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฑด ๋ชจ๋ฒ” ์‚ฌ๋ก€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด๋ฏ€๋กœ, ๋‹ค๋ฅธ ์ž๋ฃŒ์—์„œ ์ด์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์˜ ํŠน์ง•๊ณผ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”:๋„์ปค ๋น„๋””์˜ค ์ฝ”์Šค".

์ €์ž: ๋งˆ๋ฅด์…€ ์ด๋ธŒ๋ผ์—ํ”„, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ธ์ฆ ๊ด€๋ฆฌ์ž, ์‚ฌ์šฐ์Šค๋ธŒ๋ฆฌ์ง€์˜ ์‹ค๋ฌด ์—”์ง€๋‹ˆ์–ด, Slurm ๊ณผ์ •์˜ ๊ฐ•์‚ฌ์ด์ž ๊ฐœ๋ฐœ์ž.

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster