โป '์์ํ์ธ์! ๋์ปค/์ฟ ๋ฒ๋คํฐ์ค' ์ฑ ๊ณผ ๊ต์ก์ ํตํด ๋ค์ ๋ด์ฉ, ๊ณต์ ๋ฌธ์๋ฅผ ํ ๋๋ก ์ ๋ฆฌํ์ต๋๋ค.
What is Docker?
Get an in-depth overview of the Docker platform including what it can be used for, the architecture it employs, and its underlying technology.
docs.docker.com
๋์ปค ๋ช ๋ น์ด๋ฅผ ๊ณต๋ถํ๊ธฐ ์ ์ฐ์ ์ปจํ ์ด๋์ ๋์ปค์ ๋ํด ๋จผ์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ปจํ ์ด๋๋ ๋ฌด์์ผ๊น์?
์ปจํ ์ด๋๋ ๋จ์ผ OS ์ปค๋์์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ ํ๋ก์ธ์ค ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ ๊ฒ ๊ตฌํ๋ ์ปจํ ์ด๋๋ ๊ฐ์ํ ์ํ์์ ๋์ํ๋ ํ๋ก์ธ์ค๋ณด๋ค ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ๋์ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ปจํ ์ด๋์ ๊ฐ์ ๋จธ์ ์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น์?
Container vs. VM
VM์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ด์ฉํด ์ฌ๋ฌ ๊ฐ์ ์ด์์ฒด์ ๋ฅผ ํ๋์ ์๋ฒ ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ํ์ดํผ๋ฐ์ด์ ๋ ๋จ์ผ ๋ฌผ๋ฆฌ์ ์๋ฒ์์ ์ฌ๋ฌ VM์ ์คํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋งํฉ๋๋ค. VM์ผ๋ก ๋ค์ํ OS๋ฅผ ์ฌ์ฉํ๋ฉด์ ์์ ํ ๋ ๋ฆฝ๋ ๊ณต๊ฐ๊ณผ ์์คํ ์์์ ํ ๋น๋ฐ์ ์ฌ์ฉํ ์ ์๋ ์ ์ ์ฅ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๋ฐ๋์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ ํธ์คํธ์ ๋นํด ์ฑ๋ฅ์ ์์ค์ด ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ VM์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ด๋ฏธ์ง๋ก ๋ง๋ค์์ ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ ๋ํ ์ปค์ง๋๋ค. ์ด๋ฌํ ์ ์ VM์ ๋จ์ ์ ๋๋ค.
์ด์ ๋นํด ์ปจํ ์ด๋๋ ํ๋์ OS ์ปค๋์ ๊ณต์ ํ๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๋ ๋ฆฝ๋ ํ๊ฒฝ์์ ์คํํจ์ผ๋ก์จ ํ๋ก์ธ์ค ๋จ์์ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ์์ค์ด ๊ฑฐ์ ์์ต๋๋ค. ํ์ํ ๋ฆฌ์์ค๊ฐ ํฌ๊ฒ ๊ฒฝ๊ฐํ๊ณ ๊ทธ๋งํผ ๋น ๋ฅด๊ฒ ์คํํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๋จธ์ ์ ๋นํด ๋ ๋ง์ ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํ์ํฌ ์ ์์ต๋๋ค.
VM๊ณผ ์ปจํ ์ด๋์ ์ฐจ์ด์ ์ ์์๋ณด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ํ์ฌ ์ ์ปจํ ์ด๋๋ฅผ ์ด์ฉํ์ฌ ์๋น์ค๋ฅผ ์ด์ํ๋์ง ์ ์ ์์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ์ปจํ ์ด๋๋ ์ด๋ป๊ฒ ๋ง๋ค๊ณ ๊ด๋ฆฌํ ๊น์? ์ด ๋ ์ฐ์ด๋ ๊ฒ์ด ๋์ปค์ ๋๋ค. ๋์ปค ์ด์ธ์๋ ์ฌ๋ฌ ์ปจํ ์ด๋ ๋๊ตฌ๊ฐ ์์ผ๋, ํ์ฌ ํ์ ์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์ปจํ ์ด๋ ๋๊ตฌ๋ ๋์ปค์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด์ ๋์ปค์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋์ปค๋ ๋ฌด์์ผ๊น์?
๋์ปค๋ ์ปจํ ์ด๋ ํ๊ฒฝ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋๋ก ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋์์ฃผ๋ ์ปจํ ์ด๋ ๋๊ตฌ์ ๋๋ค. ๊ฒฉ๋ฆฌ ๋ฐ ๋ณด์ ๊ธฐ๋ฅ์ ํตํด ์ฃผ์ด์ง ํธ์คํธ์์ ๋ง์ ์ปจํ ์ด๋๋ฅผ ๋์์ ์คํํ ์ ์์ต๋๋ค. ์ด ๋, ์ปจํ ์ด๋๋ ๊ฐ๋ณ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ฏ๋ก ํธ์คํธ์ ์ค์น๋ ๊ฒ์ ์์กดํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ค์ ์ปจํ ์ด๋๋ฅผ ๊ณต์ ํ ์ ์์ผ๋ฉฐ ๊ณต์ ํ๋ ๋ชจ๋ ์ฌ๋์ด ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ๋์ผํ ์ปจํ ์ด๋๋ฅผ ์ป๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๋์ปค๋ ์ปจํ ์ด๋์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ซํผ๊ณผ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋์ปค ๊ตฌ์กฐ
๋์ปค ๊ตฌ์กฐ์ ๋ํด ์์๋ด ์๋ค. ๋์ปค๋ client-server ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Docker client๋ Docker daemon๊ณผ ๋ํํ๋ฉฐ, Docker daemon์ ์ปจํ ์ด๋๋ฅผ ๊ตฌ์ถ, ์คํ ๋ฐ ๋ฐฐํฌํ๋ ์์ ์ ์ํํฉ๋๋ค. Docker client์ daemon์ ๊ฐ์ ์์คํ ์์ ์คํํ๊ฑฐ๋ ์๊ฒฉ์ผ๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. Docker client์ daemon์ REST API๋ฅผ ์ฌ์ฉํ์ฌ UNIX ์์ผ์ด๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ก ํต์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Docker daemon์ด Docker client๋ก๋ถํฐ docker run์ด๋ผ๋ ๋ช ๋ น์ด๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ, ๋ก์ปฌ์ ์ด๋ฏธ์ง ์ ๋ณด๊ฐ ์๋ค๋ฉด API๋ฅผ ์ด์ฉํด Registry์์ ํด๋น ์ด๋ฏธ์ง๋ฅผ ์ฐพ์ pullํฉ๋๋ค. ์์ ๋งํ Docker daemon๊ณผ Docker client, Docker registry์ ๋ํด ์กฐ๊ธ ๋ ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค.
Docker daemon
Docker daemon์ Docker API ์์ฒญ์ ๋ฃ๊ณ ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋คํธ์ํฌ, ๋ณผ๋ฅจ๊ณผ ๊ฐ์ Docker ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๋ํ ๋์ปค ์๋น์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ค๋ฅธ daemon๋ค๊ณผ๋ ํต์ ํฉ๋๋ค.
Docker client
Docker client๋ ๋์ปค์ ๋ง์ ๋์ปค ์ ์ ๋ค์ด ์ํธ์์ฉํ๋ ๊ธฐ๋ณธ์ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๋ ํด๋ผ์ด์ธํธ๋ ๋ช ๋ น์ด๋ฅผ ์ํํ๊ธฐ ์ํด Docker daemon์ ๋ช ๋ น์ด๋ฅผ ๋ณด๋ ๋๋ค. ๋์ปค ๋ช ๋ น์ด๋ Docker API๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. Docker Client๋ ํ๋ ์ด์์ daemon๊ณผ ํต์ ํ ์ ์์ต๋๋ค.
Docker registries
Docker registry๋ ๋์ปค ์ด๋ฏธ์ง๋ค์ ์ ์ฅํ๊ณ ์์ต๋๋ค. Docker Hub๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๊ณ , ๋์ปค๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ฐพ๋ pulblic registry์ ๋๋ค. ๋ํ ๊ฐ์ธ์ docker hub์ ํธ์ํ ์ด๋ฏธ์ง๋ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ ์ปจํ ์ด๋์ ๋์ปค์ ๋ํด ์์๋ณด์์ต๋๋ค. ๋ค์์ ๋์ปค ์ด๋ฏธ์ง ๊ด๋ฆฌ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
'Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
04 Docker ์ปจํ ์ด๋ ๊ด๋ฆฌ (1) | 2024.10.22 |
---|---|
03 Docker ์ด๋ฏธ์ง ๊ด๋ฆฌ (1) | 2024.09.28 |
01 Docker ์ค์นํ๊ธฐ (1) | 2024.09.28 |