Docker
[Docker] 1. ๋์ปค ๊ธฐ๋ณธ
yeonii
2024. 1. 30. 14:59
๐ ๋์ปค(Docker)๋ ๋ฌด์์ธ๊ฐ?
์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฉํ๋ก๊ทธ๋จ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ณ ๋ฐฐํฌํ๊ณ ์คํํ ์ ์๋๋ก ์ค๊ณ๋ ๋๊ตฌ์ด๋ฉฐ,
์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ์ด๋ฉฐ ์ํ๊ณ์ด๋ค.
โ๏ธ ์ปจํ ์ด๋(Container)
์ฝ๋์ ๋ชจ๋ ์ข ์์ฑ์ ํจํค์งํํ์ฌ ์์ฉํ๋ก๊ทธ๋จ์ด ํ ์ปดํจํ ํ๊ฒฝ์์ ๋ค๋ฅธ ์ปดํจํ ํ๊ฒฝ์ผ๋ก ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์คํ๋๋๋ก ํ๋ ์ํํธ์จ์ด ํ์ค ๋จ์์ด๋ค.
→ ์ปจํ ์ด๋ ์์ ๋ค์ํ ํ๋ก๊ทธ๋จ, ์คํ ํ๊ฒฝ์ ์ปจํ ์ด๋๋ก ์ถ์ํํ๊ณ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋จ์ํ๊ฒ ํด์ค๋ค.
โ๏ธ ๋์ปค ์ด๋ฏธ์ง
์ฝ๋, ๋ฐํ์, ์์คํ ๋๊ตฌ, ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ค์ ๊ณผ ๊ฐ์ ์์ฉํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ๊ฐ๋ณ๊ณ ๋ ๋ฆฝ์ ์ด๋ฉฐ ์คํ ๊ฐ๋ฅํ ์ํํธ์จ์ด ํจํค์ง์ด๋ค.
→ ์ฆ, ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ , ๋์ปค ์ปจํ
์ด๋๋ฅผ ์ด์ฉํด ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ์ด๋ค.
๐ ๋์ปค๋ฅผ ์ฌ์ฉํ ๋์ ํ๋ฆ
- ๋์ปค ํด๋ผ์ด์ธํธ์ ์ปค๋งจ๋๋ฅผ ์ ๋ ฅํ๋ฉด, ํด๋ผ์ด์ธํธ์์ ๋์ปค ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ธ๋ค.
- ์๋ฒ์์ hello-world๋ผ๋ ์ด๋ฏธ์ง๊ฐ ์ด๋ฏธ ๋ก์ปฌ์ cache ๋์ด ์๋์ง ํ์ธํ๋ค.
- ํ์ฌ๋ ์ด๋ฏธ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์, Unable to find image 'hello-world:latest' locally ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ํ์๋๋ค.
- ๊ทธ๋ฌ๋ฉด Docker Hub๋ผ๋ ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋์ด ์๋ ๊ณณ์์ ํด๋น ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๋ก์ปฌ์ cache๋ก ๋ณด๊ดํ๋ค.
- ์ดํ์๋ ๋ก์ปฌ์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ ๊ทธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ค.
๐ ์ด๋ฏธ์ง๋ก ์ปจํ
์ด๋ ๋ง๋ค๊ธฐ
์ด๋ฏธ์ง๋ ์์ฉํ๋ก๊ทธ๋จ์ ์คํํ๋๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๊ณ ์๋ค.
- ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ๋ช ๋ น์ด ex) run kakaotalk
- ํ์ผ ์ค๋
์ท ex) ์นด์นด์คํก ํ์ผ ์ค๋
์ท (์นด์นด์คํก์ ์คํํ๋๋ฐ ํ์ํ ํ์ผ)
โ๏ธ ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋ ๋ง๋๋ ์์
- Docker ํด๋ผ์ด์ธํธ์ docker run <์ด๋ฏธ์ง>๋ฅผ ์ ๋ ฅํ๋ค.
- ๋์ปค ์ด๋ฏธ์ง์ ์๋ ํ์ผ ์ค๋ ์ท์ ์ปจํ ์ด๋ ํ๋ ๋์คํฌ์ ์ฎ๊ฒจ์ค๋ค.
- ์ด๋ฏธ์ง์์ ๊ฐ์ง๊ณ ์๋ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ์นด์นด์คํก์ ์คํ์์ผ์ค๋ค.
๐ C-group & Namespace
๋์ปค๋ ์ปจํ ์ด๋๋ฅผ ๊ฒฉ๋ฆฌ์ํค๊ธฐ ์ํด ๋ฆฌ๋ ์ค ์ปค๋์ 2๊ฐ์ง ๊ธฐ๋ฅ์ ์ด์ฉํ๋ค.
C-Group : CPU, ๋ฉ๋ชจ๋ฆฌ, Network Bandwidth๋ฑ ํ๋ก์ธ์ค์ ๊ทธ๋ฃน์ ๊ด๋ฆฌ
Namespace : ํ๋์ ์์คํ ์์ ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌ์ํฌ ์ ์๋ ๊ฐ์ํ ๊ธฐ์