๐ณ Docker๋ ๋ฌด์์ธ๊ฐ
Docker ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ, ํน์ง ์์๋ณด๊ธฐ
docker
๐ณ Docker๋ ๋ฌด์์ธ๊ฐ
1. Docker์ ์ ์
Docker(๋์ปค) ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋๋ผ๋ ๋จ์๋ก ํจํค์งํ์ฌ ์ด๋์๋ ๋์ผํ ํ๊ฒฝ์์ ์คํํ ์ ์๋๋ก ๋์์ฃผ๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ํ๋ซํผ์ด๋ค.
ํ๊ฒฝ ์ฐจ์ด๋ก ์ธํ ๋ฌธ์ ๋ฅผ ์์ ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ์ ํ์คํํด์ฃผ๋ ๋๊ตฌ
2. Docker๊ฐ ๋ฑ์ฅํ ๋ฐฐ๊ฒฝ
๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์คํ ํ๊ฒฝ์ด ๋ฌ๋ผ ๋ฐ์ํ๋ ๋ํ์ ์ธ ๋ฌธ์ ๋ค:
- ๋ก์ปฌ์์๋ ์ ๋๋๋ฐ ์๋ฒ์์๋ ์ ๋จ
- ํ์๋ง๋ค OS, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฒ์ ์ด ๋ค๋ฆ
- ์๋ฒ์ ์ง์ ์ค์นํ๋ค๊ฐ ํ๊ฒฝ์ด ๋ง๊ฐ์ง
- ๋ฐฐํฌํ ๋๋ง๋ค ์ค์ ์ ๋ค์ ํด์ผ ํจ
Docker๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ค์ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ + ์คํ์ ํ์ํ ๋ชจ๋ ์์กด์ฑ์ ํ๋์ ์ด๋ฏธ์ง(Image) ๋ก ๋ฌถ์
- ์ด๋์ ์คํํ๋ ๋์ผํ ๊ฒฐ๊ณผ ๋ณด์ฅ
3. Docker์ ํต์ฌ ๊ฐ๋
3.1 ์ปจํ ์ด๋
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ทธ ์คํ ํ๊ฒฝ์ ํจ๊ป ๋ด์ ์คํ ๋จ์
- OS ์ ์ฒด๋ฅผ ๊ฐ์ํํ์ง ์๊ณ , ํ๋ก์ธ์ค ๋จ์๋ก ๊ฒฉ๋ฆฌ
- ๊ฐ๋ณ๊ณ ์คํ ์๋๊ฐ ๋น ๋ฆ
๐ ํน์ง
- ๋ ๋ฆฝ์ ์ธ ํ์ผ ์์คํ
- ๋ ๋ฆฝ์ ์ธ ๋คํธ์ํฌ
- ํธ์คํธ OS ์ปค๋์ ๊ณต์
3.2 ์ด๋ฏธ์ง(Image)
- ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค๊ณ๋
- ์คํ ํ๊ฒฝ + ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ฏธ ์ ์๋์ด ์์
- ๋ถ๋ณ(Immutable) โ ์์ ์ ์ ์ด๋ฏธ์ง ์์ฑ
์์:
- node:20-alpine
- mysql:8.0
- nginx:latest
3.3 Dockerfile
- ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ค์ ํ์ผ
- ์ด๋ค ํ๊ฒฝ์์, ์ด๋ค ๋ช ๋ น์ ์คํํ ์ง ์ฝ๋๋ก ์ ์
FROM node:20-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]
๐ ์๋ฏธ
โ "์ด ์ ํ๋ฆฌ์ผ์ด์ ์ Node 20 ํ๊ฒฝ์์ ์ด๋ ๊ฒ ์คํ๋๋ค"
3.4 Docker Engine
- Docker์ ํต์ฌ ์คํ ์์ง
- ์ด๋ฏธ์ง ๋ค์ด๋ก๋, ์ปจํ ์ด๋ ์์ฑ/์คํ/์ญ์ ๋ฅผ ๋ด๋น
- ๋ณดํต docker ๋ช ๋ น์ด๋ฅผ ํตํด ์ ์ด
4. Docker vs ๊ฐ์๋จธ์ (VM)
| ๊ตฌ๋ถ | Docker (Container) | VM |
|---|---|---|
| ๊ฐ์ํ ๋์ | ํ๋ก์ธ์ค | OS ์ ์ฒด |
| ์๋ | ๋งค์ฐ ๋น ๋ฆ | ๋๋ฆผ |
| ์ฉ๋ | ๊ฐ๋ฒผ์ | ๋ฌด๊ฑฐ์ |
| ์คํ ํ๊ฒฝ | ํธ์คํธ ์ปค๋ ๊ณต์ | ๋ ๋ฆฝ ์ปค๋ |
| ํ์ฉ | ๋ง์ดํฌ๋ก์๋น์ค, ๋ฐฐํฌ | ์๋ฒ ๊ฒฉ๋ฆฌ |
๐ Docker๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ๋ฐฐํฌ์ ์ต์ ํ๋ ๋ฐฉ์
5. Docker์ ์ฅ์
- โ ๊ฐ๋ฐ/์ด์ ํ๊ฒฝ ์ผ๊ด์ฑ ๋ณด์ฅ
- โ ๋น ๋ฅธ ์คํ ๋ฐ ๋ฐฐํฌ
- โ ์ค์ ์ ์ฝ๋๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ (Infrastructure as Code)
- โ ๋ก์ปฌ โ ์๋ฒ โ CI/CD ํ๊ฒฝ ํต์ผ
- โ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์ ํฉ
6. Docker์ ํ๊ณ ๋ฐ ์ฃผ์์
- OS ์ปค๋์ ๊ณต์ ํ๋ฏ๋ก ์์ ํ OS ๊ฒฉ๋ฆฌ๋ ์๋
- ๋ณด์ ์ค์ ์ ์ ๋๋ก ํ์ง ์์ผ๋ฉด ์ํ
- ์ปจํ
์ด๋ ์๊ฐ ๋ง์์ง๋ฉด ๊ด๋ฆฌ ๋ณต์ก๋ ์ฆ๊ฐ
โ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Docker Compose, Kubernetes ๋ฑ์ฅ
7. ์ธ์ Docker๋ฅผ ์ฌ์ฉํ๋๊ฐ
- ๊ฐ๋ฐ ํ๊ฒฝ์ ํ์ ๊ฐ ๋์ผํ๊ฒ ๋ง์ถ๊ณ ์ถ์ ๋
- ๋ก์ปฌ์์ ์๋ฒ ํ๊ฒฝ์ ๊ทธ๋๋ก ์ฌํํ๊ณ ์ถ์ ๋
- CI/CD ํ์ดํ๋ผ์ธ์์ ๋์ผํ ์คํ ํ๊ฒฝ์ด ํ์ํ ๋
- ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์กฐ๋ก ์๋น์ค๋ฅผ ์ด์ํ ๋