๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ!
- ๋์ปค (Docker)
- ๊ฐ์ํ vs ์ปจํ ์ด๋
โ๏ธ ๋์ปค (Docker)
- ๋ค์ํ ์ข ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๋ ์ํํธ์จ์ด ํ๋ซํผ
- ํ๋์จ์ด์ ์์์ ๋ชจ๋ ๊ฐ์ํ ํ์ง ์๊ณ ํ๋ก์ธ์ค๋ค๋ง์ ๊ฒฉ๋ฆฌ์์ผ ๋น ๋ฅด๊ฒ ํ๊ฒฝ์ ๊ตฌ์ถ ๊ฐ๋ฅ
โ ์คํ ํ๊ฒฝ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ๊ฐ๋ฅ
โ ๋์ปค์ ์ฅ์
- ์์กด์ฑ ์ถฉ๋ ๋ฌธ์ ํด๊ฒฐ
โ ์ปจํ ์ด๋์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ๊ณ ์ ์ ์์กด์ฑ ๊ฐ์ง- ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ ํ๊ฒฝ์ ์ผ์น์ํด
- ์ํ ํ์ฅ์ ์ฝ๊ฒ ํด์ค
- ๊ฐ ์๋ฒ์ ์๋ก์ด ๋ด์ฉ์ ๋ฐฐํฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ค
๐ก A ํ๋ก๊ทธ๋จ์ ์คํํด์ผํ ๋ B ํ๋ก๊ทธ๋จ์ด ๋ฐ๋์ ํ์ํ ๊ฒฝ์ฐ,
ํ๋ก๊ทธ๋จ A๋ ํ๋ก๊ทธ๋จ B์ ์์กด ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ผ๊ณ ๋ง ํ ์ ์๋ค.
Ex. ์๋์ฐ์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๋ฉด ์๋์ฐ ์ด์์ฒด์ ๊ฐ ํ์ํ๋ฏ
But, A1 / A2 ํ๋ก๊ทธ๋จ์ด ์๋ค๊ณ ํ ๋,
A1 / A1 ๋ชจ๋ B์ ๋ํด ์์กด ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ ๊ฐ๊ฐ ํ์ํ B์ ๋ฒ์ ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ
์ด B๋ ์ปดํจํฐ์ ํ๋๋ง ๊น๋ฆฌ๊ธฐ ๋๋ฌธ์ A1 / A2 ๋ ์ค ํ๋๋ ์ ๋๋ก๋ ์คํ ๋ณด์ฅ X
( ์์กด์ฑ์ด ์ถฉ๋ํ๋ค๊ณ ํจ )
โ ์ปจํ ์ด๋๋ฅผ ์ด์ฉํ๋ฉด ์คํ ํ๊ฒฝ์ด ๊ฒฉ๋ฆฌ๋๊ธฐ ๋๋ฌธ์
A1 / A2๋ฅผ ๊ฐ๊ฐ์ ์คํ ํ๊ฒฝ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ์์ผ ๊ฐ๊ฐ ํ์ํ B ๋ฒ์ ์ ๋ฌ๋ฆฌ ๋ฐ์ ์ ์์
- ํ ๋์ ์ปดํจํฐ์ ์ฌ๋ฌ ๋์ ์ปจํ
์ด๋๊ฐ ์กด์ฌํ๊ณ ,
์ด ์ปจํ ์ด๋๋ค๋ก ๊ฐ๊ฐ์ ๊ฒฉ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ด ๊ฐ๋ฅ
( ๊ฐ์ ๋จธ์ ๊ณผ ๋น์ทํ ์์ค์ ๊ฒฉ๋ฆฌ์ฑ ์ ๊ณต ) - OS์ ์๊ด์์ด ์ฆ์ ์ ํ๋ฆฌ์ผ์ด์
์คํ ํ๊ฒฝ ๋ง๋ค๊ธฐ ๊ฐ๋ฅ
- ๊ฐ๋ฐ์ ์ปจํ
์ด๋ ์์์ ์งํํ ๊ฒฝ์ฐ, ๋ชจ๋ ๊ฐ๋ฐํ์ด ๋์ผํ ์คํ ํ๊ฒฝ์ผ๋ก ๊ฐ๋ฐ ๊ฐ๋ฅ
โ ๋์ปค ์์ฒด๋ฅผ ์ด๋ฏธ์งํ ํด์ ํ๊ทธ๊น์ง ๋ถ์ฌ์ ๋ ์ง์คํธ๋ฆฌ์ ์ฌ๋ ค ๋๊ณ ๊ทธ๊ฑธ pull ํด์ ์๋ก์ด ์๋ฒ์ ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋๋ก ์คํํ๊ณ , ๋ก๋ ๋ฐธ๋ฐ์์ ์ด ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋จ
(AWS๊ฐ ์๋ฒ ์์ฑ/์ญ์ ๋ ์๋์ผ๋ก ํด์ค )
Ex. ๊ฐ๋ฐ ์์ ์๋ก์ ํ๋ก๊ทธ๋จ ๋ฒ์ ์ด๋ ํ๊ฒฝ์ ๋น์ทํ๊ฒ ๋ง์ถ๊ธฐ ์ํด
Docker๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๋ น์ด๋ก ์ฆ์ ์ค์น ๋ฐ ์คํ ๊ฐ๋ฅ
Ex. ๋ฐฐํฌ ์์๋ EC2 ์์ ๋์ปค๋ฅผ ์ค์นํ๊ณ ,
๋์ปค ์ปจํ ์ด๋๋ฅผ EC2 ์๋ฒ์์ ์คํํ ์ ์๊ฒ ํ๋ ์๋น์ค์ธ ECS๋ฅผ ์ด์ฉํ์ฌ ํจ์ฌ ์ฝ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ๊ฐ๋ฅ
Ex. ์ด๋ฅผ ์์ฉํ์ฌ, ์๋ก์ด ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์๋ฒ ์ค ๋ช ๋์๋ง ์ด์ํ์ฌ ํ ์คํธํ๋ ๋ฐฉ๋ฒ๋ ๊ฐ๋ฅ
โ ๋ฏธ๋ฆฌ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ํ์ธํ์ฌ ๋ณด์ ๊ฐ๋ฅ
- Docker Compose ํด๋ก ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ฑ ์์ฒด๊ฐ ์ปจํ
์ด๋ํ๋๋ฉด,
YAML ํ์ผ ํ๋ + ๋ช ๋ น์ด ํ๋๋ก ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ ๊ตฌ์ฑ์ด ์๋ฃ๋จ
โ ์ปจํ ์ด๋์ ํธ์คํธ PC
CPU
โ ๊ณต์๋ฉ๋ชจ๋ฆฌ
โ ๊ณต์๋ฆฌ๋ ์ค ์ปค๋
โ ๊ณต์- โญ
๋คํธ์ํฌ
โ ๊ฒฉ๋ฆฌ- ์ปจํ ์ด๋๋ง๋ค ๊ฐ๊ฐ์ IP ์ฃผ์ ๊ฐ์ง = ๋คํธ์ํฌ๋ ๊ฒฉ๋ฆฌ๋์ด ์์
- โญ
ํ๋ก์ธ์ค
โ ๊ฒฉ๋ฆฌ- ํน์ ์ปจํ ์ด๋์์ ์๋ํ๋ ํ๋ก์ธ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ ์ปจํ ์ด๋ ์์์๋ง ์ก์ธ์ค ๊ฐ๋ฅ
- ์ปจํ ์ด๋ ์์์ ์คํ๋๋ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ์ปจํ ์ด๋์ ํ๋ก์ธ์ค์๊ฒ ์ํฅ X
- โญ
ํ์ผ ์์คํ
โ ๊ฒฉ๋ฆฌ- ์ปจํ
์ด๋ ์์์ ์ฌ์ฉ๋๋ ํ์ผ ์์คํ
์ ๊ตฌํํ๋์ด ์์
โ ํด๋น ์ปจํ ์ด๋์์์ ๋ช ๋ น์ด๋ ํ์ผ ๋ฑ์ ์ก์ธ์ค ์ ํ ๊ฐ๋ฅ
- ์ปจํ
์ด๋ ์์์ ์ฌ์ฉ๋๋ ํ์ผ ์์คํ
์ ๊ตฌํํ๋์ด ์์
โ๏ธ ๊ฐ์ ๋จธ์ (Virtual Machine / VM)
- ํ๋์ ํธ์คํธ ์ปดํจํฐ ์์ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์ปดํจํฐ๊ฐ ์๋ํ ์ ์๊ฒ ํ๋ ๊ธฐ์
Ex. VMware, VirtualBox, Parallels ๋ฑ
( ์ด๊ฑธ ํตํด์ ํ ์ปดํจํฐ ์์ ์ฌ๋ฌ ์ด์์ฒด์ ๋ฅผ ๋์ธ ์ ์์ )
- ๋์ปค๋ฅผ ๋น๋กฏํ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ์ ๊ณผ๋ ์กฐ๊ธ ๋ค๋ฆ
โ๏ธ ๊ฐ์ํ
- ๋ด ์ปดํจํฐ ์์ ๋ ผ๋ฆฌ์ ์ธ ๋ ๋ค๋ฅธ ์ปดํจํฐ๋ค์ ์ฌ๋ฆฌ๋ ๊ฒ
- ํธ์คํธ ํผ์จ์ ํ๋์จ์ด์ ์ธ ์คํ์ ๋์ง ๋ชปํจ
Ex. ์ ์ฅ ๊ณต๊ฐ / cpu ์ฑ๋ฅ
โ๏ธ ๊ฐ์ํ vs ์ปจํ ์ด๋
( โฌ๏ธ ์ผ์ชฝ์ด VM / ์ค๋ฅธ์ชฝ์ด Docker )
โ๏ธ VM (Virture Machine)
- ๊ตฌ์ฑ ์์์ OS ์กด์ฌ
โ ๊ฐ VM๋ค์ด ๊ฐ์์ OS ์ฌ์ฉ ( ๋ฐ๋์ ๊ฐ์ ์ค์น )
โ๏ธ Docker
- ๊ตฌ์ฑ ์์์ OS ์กด์ฌ๊ฐ ์กด์ฌํ์ง ์๊ณ ,
๋์ปค๋ผ๋ ํ๋ซํผ ์์ ์ปจํ ์ด๋๋ค์ด ์ฌ๋ผ๊ฐ ์๊ณ , ๊ทธ ์๋ host OS๊ฐ ์กด์ฌ
โ โ
โ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ํํด์ ์คํํ๋ ๋ฐ์ ์ฃผ ๋ชฉ์ ์ด ์์ผ๋ฏ๋ก,
๊ฐ ์ปจํ ์ด๋๋ค์ด host OS์ ์ปค๋ ๊ณต์
( host OS ์ ์ฅ์์๋ ์ปจํ ์ด๋๊ฐ ํ๋์ ํ๋ก์ธ์ค์ ๋ถ๊ณผํจ )
๐ก ์ปค๋ (Kernerl)
- ์์คํ ์ฝ๊ณผ ๊ฐ์ด OS์ ํต์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ ํ๋ก๊ทธ๋จ
๐ก ํ์ดํผ๋ฐ์ด์ (Hypervisor)
- VM์ ์์ฑํ๊ณ ๊ตฌ๋ํ๋ ์ํํธ์จ์ด
Ex. VMware, VirtualBox
โ๏ธ Docker ํต์ฌ ํค์๋
โ๏ธ ์ปจํ ์ด๋
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์กด์ฑ, ๋คํธ์ํฌ ํ๊ฒฝ, ํ์ผ ์์คํ ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ , ๋์ปค๋ผ๋ ๊ธฐ์ ์์ ์คํ๋ ์ ์๋๋ก ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์์
โ๏ธ ์ด๋ฏธ์ง
- ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ฑ์ ํจ๊ป ๋ด์๋์ ํ
ํ๋ฆฟ
( ๋์ปค๋ฅผ ์ด๋ฏธ์งํ ์ํจ ๊ฒ ) - ๋์ปค ์ด๋ฏธ์ง๋ (์ด์์ฒด์ ์ด๋ฏธ์ง๋ ์กด์ฌํ์ง๋ง) ๋ณดํต ์ ํ๋ฆฌ์ผ์ด์ ๋จ์๋ก ๋ง๋ค์ด์ ธ ์์
- ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด ์ฆ์ ์ฌ๋ฌ๊ฐ์ ์ปจํ ์ด๋ ์์ฑ ๊ฐ๋ฅ
- ์ด๋ฏธ์ง ํ๋๋ฅผ ๋ฐํ์ผ๋ก ์คํ๋๋ ๋ชจ๋ ์ปจํ
์ด๋๋ค์ด ์์ฑ๋จ
โ ์ด๋ฏธ์ง ์ฌ๋ฌ๊ฐ๋ฅผ ํ๋์ ์ปจํ ์ด๋์์ ์คํํ๋ ๊ฒ๋ ๊ฐ๋ฅ - ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ์ฅ ๊ฐ๋ฅ
- ๊ธฐ๋ณธ ์ด๋ฏธ์ง(base image)์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐ/์ปค๋ฐํด์ ๋ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ๊ฐ๋ฅ
Ex. ์คํ๋ง๋ถํธ ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฏธ์ง๋ก ๋ง๋ค๊ณ ์ถ์ ๊ฒฝ์ฐ,
์คํ๋ง๋ถํธ ์ด๊ธฐ ์ธํ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ก ์ผ๊ณ ๋ด๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐํด ๋ฃ๊ณ , ์ด๋ฏธ์งํํ ์ ์์
โ๏ธ ๋ ์ง์คํธ๋ฆฌ (Registry)
- ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฅผ ๊ด๋ฆฌํ๋ ๊ณณ
Ex. Docker Hub, Amazon ECR
- ํน๋ณํ ๋ค๋ฅธ ๊ฒ์ ์ง์ ํ์ง ์๋๋ค๋ฉด, ๋์ปค ํ๋ธ(Docker Hub)๋ฅผ ๊ธฐ๋ณธ ๋ ์ง์คํธ๋ฆฌ๋ก ์ค์ [Docker Hub]
- Docker Hub, Private Docker Hub, ํ์ฌ ๋ด๋ถ์ฉ ๋ ์ง์คํธ๋ฆฌ ๋ฑ์ผ๋ก ๋๋ ์ ์์
โ๏ธ ๋ ํฌ์งํ ๋ฆฌ (Repository)
- ๋ ์ง์คํธ๋ฆฌ ๋ด์ ๋์ปค ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
( GitHub์ ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฌํ๊ฒ ์๊ฐํ๋ฉด ๋จ ) - ์ด๋ฏธ์ง ์ด๋ฆ์ด ์ฌ์ฉ๋๊ธฐ๋ ํจ
โ๏ธ ํ๊ทธ (Tag)
- ํด๋น ์ด๋ฏธ์ง๋ฅผ ์ค๋ช
ํ๋ ๋ฒ์ ์ ๋ณด๋ฅผ ์ฃผ๋ก ์
๋ ฅ
( ๊ฐ์ ์ด๋ฏธ์ง์ฌ๋ ๋ฒ์ ๋ณ๋ก ์์ ๋ด์ฉ ์ข ๋ค๋ฅผ ์ ์์ ) - ํน๋ณํ ๋ค๋ฅธ ๊ฒ์ ์ง์ ํ์ง ์๋๋ค๋ฉด,
latest
ํ๊ทธ๋ฅผ ๋ถ์ธ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ด
Ex. docker/whalesay:latest
โ Docker Hub๋ผ๋ ๋ ์ง์คํธ๋ฆฌ์์
โ docker๋ผ๋ ์ ์ ๊ฐ ๋ฑ๋กํ whalesay ์ด๋ฏธ์ง or ๋ ํฌ์งํ ๋ฆฌ์์
โ latest ํ๊ทธ๋ฅผ ๊ฐ์ง ์ด๋ฏธ์ง
โ
[docker/whalesay ์ด๋ฏธ์ง ์ฐธ๊ณ ]
โ๏ธ ๋ณผ๋ฅจ (Volume)
- ํ์ผ๋ค๊ณผ ๋๋ ํ ๋ฆฌ๋ค์ ์ ์ฅํ๋ ๋ฐ์ดํฐ ์ ์ฅ์
( == ๋๋ผ์ด๋ธ(drive) )
โ๏ธ ๋ง์ดํธ (Mount)
- ์ ์ฅ ๊ณต๊ฐ์ ๋ค๋ฅธ ์ฅ์น์์ ์ ๊ทผํ ์ ์๋๋ก ๊ฒฝ๋ก๋ฅผ ํ์ฉํด์,
๋ง์น ํ๋์ ์ ์ฅ ๊ณต๊ฐ์ ์ด์ฉํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ์์ - ๋ณผ๋ฅจ์ ์ปดํจํฐ๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ์ ์ฉํ๋ ๊ณผ์
๐ก ๋ณผ๋ฅจ(Volume)์ ๋ง์ดํธ(Mount)ํ๋ค.
โ ๋์ปค์์ ์์ ํ ๋ด์ฉ์ ๋ก์ปฌ์๋ ๊ฐ์ด ์ ์ฅํ๋ค๋ ์๋ฏธ
๐ ์ค์ต
( ์ ์ดํด๋์ค Section4 - [Cloud] ๋ฐฐํฌ ์ปจํ ์ด๋ - ์ค์ต ๋ถ๋ถ ์ฐธ๊ณ )
๐ก ์ฐธ๊ณ ๋ก 8080:80 ์ด๋ ๊ฒ ์ฐ์ฌ์๋ ํฌํธ์ ์๋ฏธ๋
โ ๋ฐ์์ ๋ค์ด๊ฐ ๋๋ 8080ํฌํธ๋ก ๋ค์ด๊ฐ์, ์์์ ๋์ฌ ๋๋ 80 ํฌํธ์์ ๋์จ๋ค.
๐ ๋๋์
์ค๋์ ๊ฐ๋
์ ๊ฝค ์ดํดํ๊ธฐ ์ฌ์ ๋๋ฐ ์ค์ต์ ๊ฒ์ ํฐ๋ฏธ๋ ํ๋ฉด์ผ๋ก ์งํํ๋ค๋ณด๋
์๋๋ณด๋ค ๋ ์ด๋ ต๊ฒ ๋๊ปด์ง๋.. ๊ทธ๋ฐ ๋๋์ด์๋ค !!
๊ทธ๋๋ ํ์ด๋์ด ๋ง์ด ์๋ ค์ฃผ์
์ ์ค์ต์ ์๋ฌ๋ ๋ง์ด ์๋ง๋๊ณ ์์ํ๊ฒ ์ ๋๋ฌ๊ณ
์๊ฐ๋ ๋ง์ด ๋จ์์ ๋ค๋ฅธ ๊ฑฐ ํ ์ ์์๋ค ใ
ใ
๐
์ค๊ฐ ์ค๊ฐ ๋ฏธ๋ ๊ฒ์๋ ํ ์ ์์์ด์ ๋ ์ฌ๋ฏธ์์๋ ์ค์ต !!
( ํ์ง๋ง ํผ์ ํ๋ผ๋ฉด ํ ์ ์์๊น ..? ํ๋ ์ค์ต .. ใ
)
( ๋ณธ ๊ฒ์๋ฌผ์ 2022/12/07์ ์์ฑํ ๊ธ์ ์ฎ๊ธด ๊ธ์ ๋๋ค. ์๋ฌธ์ ์๊ธฐ์ ์์! )
'โข CodeStates BootCamp > Section 4' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ [Section4] 13. [Cloud] ์ด์ ์ ๋ต (0) | 2023.04.13 |
---|---|
๐ [Section4] 12. [Cloud] ๋ฐฐํฌ ์๋ํ (0) | 2023.04.13 |
๐ [Section4] 10. [Cloud] ์ด์ ํ๊ฒฝ ๊ตฌ์ฑ (0) | 2023.04.13 |
๐ [Section4] 9. [Spring WebFlux] Spring WebFlux (1) | 2023.04.13 |
๐ [Section4] 8. [Spring WebFlux] Project Reactor (2) | 2023.04.13 |