10์ XNUMX์ผ Slurm์ด ์์๋์์ต๋๋ค ๋คํธ์ํฌ ๋งค๊ฐ๋ณ์๋ถํฐ ์ฃผ์ ์ถ์ํ๊น์ง ๋ชจ๋ ๊ฒ์ ์ฒ ์ ํ ๋ถ์ํฉ๋๋ค.
์ด ๊ธ์์๋ Docker์ ์ญ์ฌ์ ์ฃผ์ ์ถ์ํ ๊ฐ๋ ์ธ Image, CLI, Dockerfile์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ฐ์๋ ์ด๋ณด์๋ฅผ ๋์์ผ๋ก ํ๊ธฐ ๋๋ฌธ์, ์๋ จ๋ ์ฌ์ฉ์์๊ฒ๋ ํฅ๋ฏธ๋กญ์ง ์์ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํผ๋, ๋งน์ฅ๋, ์ฌํด ์ ์๋ ์์ต๋๋ค. ์์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฒ๋ถํฐ.

Docker๋ ๋ฌด์์ธ๊ฐ
์ํคํผ๋์์์ Docker์ ์ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Docker๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ์ ๊ด๋ฆฌ๋ฅผ ์๋ํํ๋ ์ํํธ์จ์ด์ ๋๋ค.
์ด ์ ์์์๋ ์๋ฌด๊ฒ๋ ๋ช ํํ์ง ์์ต๋๋ค. ํนํ "์ปจํ ์ด๋ํ๊ฐ ๊ฐ๋ฅํ ํ๊ฒฝ"์ด๋ ๋ฌด์์ ์๋ฏธํ๋์ง๋ ๋ถ๋ถ๋ช ํฉ๋๋ค. ์ด๋ฅผ ์ดํดํ๋ ค๋ฉด ๊ณผ๊ฑฐ๋ก ๋์๊ฐ๋ณด์. ์ ๊ฐ ์ ํต์ ์ผ๋ก "๋ชจ๋๋ฆฌ์ ์๋"๋ผ๊ณ ๋ถ๋ฅด๋ ์๋๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋๋ฆฌ์ ์๋
๋ชจ๋๋ฆฌ์ ์๋๋ 2000๋ ๋ ์ด๋ฐ์ผ๋ก, ๋น์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋๋ฆฌ์์ด์๊ณ ๋ง์ ์ข ์์ฑ์ด ์์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ์๋ฒ ์๋ ๊ทธ๋ ๊ฒ ๋ง์ง ์์๊ณ , ์ฐ๋ฆฌ๋ ๋ชจ๋ ์๋ฒ์ ์ด๋ฆ์ ์๊ณ ๋ชจ๋ํฐ๋งํ์ต๋๋ค. ์ฌ๋ฐ๋ ๋น๊ต๊ฐ ์์ต๋๋ค.

์ ์๋๋ฌผ์ ๊ฐ์ถ์ ๋๋ค. ์ผ์ฒดํ๋ ์๋์ ์ฐ๋ฆฌ๋ ์๋น ์ง์์ ์ ์๋๋ฌผ์ฒ๋ผ ๋ํ๊ณ , ์ ์ง์ค์งํ๋ฉฐ ์์คํ ์ฌ๊ธฐ๊ณ ๋จผ์ง๋ฅผ ํธ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋์ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ์ํด ๊ฐ์ํ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฆ, ์๋ฒ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ๋จธ์ ์ผ๋ก ๋๋์ด ํ๊ฒฝ์ ๊ณ ๋ฆฝ์ฑ์ ๋ณด์ฅํ์ต๋๋ค.
ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฐ ๊ฐ์ํ ์์คํ
๊ฐ์ํ ์์คํ ์ ๋ํด ๋ค์ด๋ณด์ ์ ์ด ์์ผ์ ๊ฐ์? VMware, VirtualBox, Hyper-V, Qemu KVM ๋ฑ์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ํ ์์คํ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฒฉ๋ฆฌ ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ์ง๋ง ๋จ์ ๋ ์์ต๋๋ค. ๊ฐ์ํ๋ฅผ ์ํด์๋ ํ์ดํผ๋ฐ์ด์ ๊ฐ ํ์ํฉ๋๋ค. ํ์ดํผ๋ฐ์ด์ ๋ ๋ฆฌ์์ค ์ค๋ฒํค๋์ ๋๋ค. ๊ฐ์ ๋จธ์ ์์ฒด๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฑฐ๋ํ ๋จธ์ ์ ๋๋ค. ์ด์ ์ฒด์ , Nginx, Apache, MySQL ๋ฑ์ด ํฌํจ๋ ๋ฌด๊ฑฐ์ด ์ด๋ฏธ์ง์ ๋๋ค. ์ด๋ฏธ์ง๊ฐ ํฌ๊ณ ๊ฐ์ ๋จธ์ ์ผ๋ก ์์ ํ๊ธฐ ๋ถํธํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ ๋จธ์ ์์ ์ด ๋๋ฆด ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ปค๋ ์์ค ๊ฐ์ํ ์์คํ ์ด ๋ง๋ค์ด์ก์ต๋๋ค.
์ปค๋ ์์ค ๊ฐ์ํ ์์คํ
์ปค๋ ์์ค ๊ฐ์ํ๋ OpenVZ, Systemd-nspawn ๋ฐ LXC์์ ์ง์๋ฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ๊ฐ์ํ์ ๋ํ์ ์ธ ์๋ LXC์ ๋๋ค.Linux ์ปจํ ์ด๋).
LXC๋ ์ฌ๋ฌ ๊ฐ์ ๊ฒฉ๋ฆฌ๋ ์ด์ ์ฒด์ ์ธ์คํด์ค๋ฅผ ์คํํ๊ธฐ ์ํ ์ด์ ์ฒด์ ์์ค์ ๊ฐ์ํ ์์คํ ์ ๋๋ค. Linux ๋จ์ผ ๋ ธ๋์์ ์๋ํฉ๋๋ค. LXC๋ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ์ง ์๊ณ ์์ฒด ํ๋ก์ธ์ค ๊ณต๊ฐ๊ณผ ๋คํธ์ํฌ ์คํ์ ๊ฐ์ถ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก LXC๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ญ๋๋ค. ๊ฐ์ ๋จธ์ ๊ณผ ์ปจํ ์ด๋์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?

์ปจํ ์ด๋๋ ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌํ๋ ๋ฐ ์ ํฉํ์ง ์์ต๋๋ค. ๊ฐ์ํ ์์คํ ์ ์ปค๋ ์์ค์์ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ด ์ปจํ ์ด๋์์ ํธ์คํธ๋ก ๋๊ฐ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ถ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.
๊ฐ์ํ์ ์ปจํ
์ด๋ํ์ ์ฐจ์ด์ ์ ๋ค์ด์ด๊ทธ๋จ์์ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋์จ์ด ํ์ดํผ๋ฐ์ด์ , OS ์์ ํ์ดํผ๋ฐ์ด์ , ์ปจํ
์ด๋๊ฐ ์์ต๋๋ค.

์ ๋ง๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๊ฒฉ๋ฆฌํ๊ณ ์ถ๋ค๋ฉด ๋ฒ ์ด ๋ฉํ ํ์ดํผ๋ฐ์ด์ ๊ฐ ์ข์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ์์ค์์ ํ๋ก์ธ์๋ฅผ ๊ฒฉ๋ฆฌํ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ๋ก๊ทธ๋จ์ผ๋ก์์ ํ์ดํผ๋ฐ์ด์ ๊ฐ ์๊ณ , ์ปจํ ์ด๋๋ ์๋๋ฐ, ์ด์ ๋ํด์๋ ๋์ค์ ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ปจํ ์ด๋ํ ์์คํ ์๋ ํ์ดํผ๋ฐ์ด์ ๊ฐ ์์ง๋ง ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ์ปจํ ์ด๋ ์์ง์ ์์ต๋๋ค. ์ด๊ฑด ๋ ๊ฐ๋ณ๊ธฐ ๋๋ฌธ์ ํต์ฌ ์์ ์ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฒํค๋๊ฐ ์ ๊ฑฐ๋ ์ ํ ์์ต๋๋ค.
์ปค๋ ์์ค์์ ์ปจํ ์ด๋ํ์ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
๋ค๋ฅธ ํ๋ก์ธ์ค๋ก๋ถํฐ ๊ฒฉ๋ฆฌ๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค ์ ์๋ ์ฃผ์ ๊ธฐ์ ์ ๋ค์์คํ์ด์ค์ ์ ์ด ๊ทธ๋ฃน์ ๋๋ค.
๋ค์์คํ์ด์ค: 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๋ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Docker Daemon์ ๋์ผํ ์ปจํ ์ด๋ ์์ง์ ๋๋ค. ์ปจํ ์ด๋๋ฅผ ๋ฐ์ฌํฉ๋๋ค.
- Docker CII๋ Docker๋ฅผ ๊ด๋ฆฌํ๋ ์ ํธ๋ฆฌํฐ์ ๋๋ค.
- Dockerfile - ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ.
- ์ด๋ฏธ์ง โ ์ปจํ ์ด๋๊ฐ ํผ์ณ์ง๋ ์ด๋ฏธ์ง์ ๋๋ค.
- ์ปจํ ์ด๋.
- 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% ์ ๋๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
๋์ปค ํ์ผ โ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๋ช ๋ น์ด๋ ์๋ก์ด ๋ ์ด์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ดํด๋ณด๊ฒ ์ต๋๋ค.

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
