728x90
๐ ๋ชฉ์ฐจ
- ๋์ปค๋?
- ํต์ฌ ๊ฐ๋
- VM๊ณผ Docker ์ฐจ์ด
- ๋ฐฐํฌํ๋ค๊ณ ๊ฐ์ ํ ๋
- ๊ธฐ๋ณธ ๋ช ๋ น์ด
- ์ฐธ๊ณ ๋งํฌ
๐ ๋์ปค๋?
- ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ๋๊ตฌ (2013๋ ๋ฑ์ฅ)
- ๋ฆฌ๋ ์ค์ ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ ๊ธฐ์ ์ ํ์ฉํด ์ฑ ์คํ ํ๊ฒฝ์ ์ปจํ ์ด๋๋ก ๊ด๋ฆฌ
- OS ์ ์ฒด๋ฅผ ๋์ฐ๋ VM(๊ฐ์๋จธ์ )๊ณผ ๋ฌ๋ฆฌ ๊ฐ๋ณ๊ณ ๋น ๋ฆ
- ์ด๋ค ํ๊ฒฝ(๋ก์ปฌ, AWS, Azure ๋ฑ)์์๋ ๋์ผํ๊ฒ ์คํ ๊ฐ๋ฅ → ํ๊ฒฝ ์์กด์ฑ ๋ฌธ์ ํด๊ฒฐ
๐ฆ ํต์ฌ ๊ฐ๋
์ปจํ ์ด๋ (Container)
- ์ ๋ฐ ์ปจํ ์ด๋์ฒ๋ผ ๊ท๊ฒฉํ๋ ์คํ ๋จ์
- ์ฑ + ์คํ์ ํ์ํ ํ๊ฒฝ(์์กด์ฑ, ์ค์ )์ ํ๋๋ก ๋ฌถ์ด ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์์ ์คํ
- ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง๋ก๋ถํฐ ์์ฑ๋จ
์ด๋ฏธ์ง (Image)
- ์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ์ค๊ณ๋/ํ ํ๋ฆฟ
- Dockerfile๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์์
- Docker Hub์์ ๊ณต์ ์ด๋ฏธ์ง ๋ค์ด๋ก๋ ๊ฐ๋ฅ
- URL ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌ: ubuntu:14.04 ์ฒ๋ผ ์ด๋ฆ:ํ๊ทธ ํ์
Dockerfile
- ์ด๋ฏธ์ง ์์ฑ ๊ณผ์ ์ ์ฝ๋๋ก ์์ฑํ๋ ํ์ผ
- ์๋ฒ ์ค์ /์ค์น ๊ณผ์ ์ ๋ฌธ์ ๋์ ์ฝ๋๋ก ๊ด๋ฆฌ
- docker build -t {์ด๋ฏธ์ง๋ช } . ์ผ๋ก ์ด๋ฏธ์ง ์์ฑ
Docker Compose
- ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ํ ๋ฒ์ ์ ์ํ๊ณ ๊ด๋ฆฌํ๋ ๋๊ตฌ
- docker-compose.yml ํ์ผ์ ์๋น์ค ๊ตฌ์ฑ์ ์ ์ธ
- ์น ์๋ฒ + DB + ์บ์ ์๋ฒ์ฒ๋ผ ๋ฉํฐ ์ปจํ ์ด๋ ์ฑ์ ํ์
๐ฅ๏ธ VM๊ณผ Docker ์ฐจ์ด
[ VM ]
ํธ์คํธ OS
โโโ ํ์ดํผ๋ฐ์ด์ (VMware, VirtualBox ๋ฑ)
โโโ Guest OS (Windows, Linux...) ← OS ์ ์ฒด๋ฅผ ๋์
โ โโโ ์ฑ
โโโ Guest OS
โโโ ์ฑ
[ Docker ]
ํธ์คํธ OS
โโโ Docker Engine
โโโ ์ปจํ
์ด๋ (์ฑ + ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง) ← OS ์์!
โโโ ์ปจํ
์ด๋
ํต์ฌ ์ฐจ์ด๋ Guest OS ์ ๋ฌด์ด๋ค.
- VM → ๊ฐ์ ํ๋์จ์ด ์์ OS๋ฅผ ํต์งธ๋ก ์ฌ๋ฆผ → ๋ฌด๊ฒ๊ณ ๋๋ฆผ
- Docker → ํธ์คํธ OS์ ์ปค๋์ ๊ณต์ ํด์ ์ฐ๊ณ , ์ฑ ์คํ์ ํ์ํ ๊ฒ๋ง ํจํค์ง → ๊ฐ๋ณ๊ณ ๋น ๋ฆ
๊ทธ๋์ ๋์ปค๋ "๊ฐ์ ๋จธ์ "์ด ์๋๋ผ ์ปจํ ์ด๋ ๊ฐ์ํ๋ผ๊ณ ๋ฐ๋ก ๋ถ๋ฅธ๋ค. VM์ฒ๋ผ ์์ ํ ์ปดํจํฐ๋ฅผ ํ๋ด ๋ด๋ ๊ฒ ์๋๋ผ, ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๐ ๋ฐฐํฌํ๋ค๊ณ ๊ฐ์ ํ ๋
[ ๊ฐ๋ฐ ์๋ฃ ]
๋ฐฑ์๋ (Spring Boot)
ํ๋ก ํธ์๋ (React)
DB (MySQL)
↓
[ ๊ฐ๊ฐ Dockerfile ์์ฑ ]
↓
[ docker-compose.yml ๋ก ๋ฌถ๊ธฐ ]
↓
[ ์๋ฒ์์ docker-compose up ํ ๋ฐฉ! ]
์๋ฒ์ ๋์ปค๋ง ์ค์น๋์ด ์์ผ๋ฉด Java ๋ฒ์ , Node.js ๋ฒ์ ๊ฐ์ ๊ฑฐ ์ ๊ฒฝ ์ ์จ๋ ๋๊ณ , ๋ช ๋ น์ด ํ๋๋ก ์ ์ฒด ์๋น์ค๊ฐ ๋จ๋ ๊ฒ์ด๋ค.
โจ๏ธ ๊ธฐ๋ณธ ๋ช ๋ น์ด
ํ๊ฒฝ ํ์ธ
docker -v # ๋์ปค ๋ฒ์ ํ์ธ
์ด๋ฏธ์ง ๊ด๋ จ
docker pull {์ด๋ฏธ์ง๋ช
}:{ํ๊ทธ} # ์ด๋ฏธ์ง ๋ค์ด๋ก๋
# ์: docker pull python:3
docker images # ๋ก์ปฌ ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ
docker rmi {์ด๋ฏธ์ง id} # ์ด๋ฏธ์ง ์ญ์
docker rmi -f {์ด๋ฏธ์ง id} # ์ปจํ
์ด๋ ์์ด๋ ๊ฐ์ ์ญ์
docker build -t {์ด๋ฏธ์ง๋ช
} . # Dockerfile๋ก ์ด๋ฏธ์ง ๋น๋ โญ
์ปจํ ์ด๋ ์์ฑ & ์คํ
docker create {์ต์
} {์ด๋ฏธ์ง๋ช
}:{ํ๊ทธ} # ์ปจํ
์ด๋ ์์ฑ
# ์: docker create -it python
docker start {์ปจํ
์ด๋ id ๋๋ ์ด๋ฆ} # ์ปจํ
์ด๋ ์์
docker attach {์ปจํ
์ด๋ id ๋๋ ์ด๋ฆ} # ์ปจํ
์ด๋ ๋ด๋ถ ์ง์
# โญ ์ 3๊ฐ๋ฅผ ํ ๋ฒ์: pull + create + start + attach
docker run {์ด๋ฏธ์ง๋ช
}:{ํ๊ทธ}
# ์: docker run -it python:3
docker run ์ฃผ์ ์ต์
| ์ต์ | ์ค๋ช |
| -d | ๋ฐฑ๊ทธ๋ผ์ด๋(๋ฐ๋ชฌ)์ผ๋ก ์คํ |
| -it | CLI ์ ์ถ๋ ฅ ๊ฐ๋ฅํ๋๋ก (bash ์ ๊ทผ) |
| --name {์ด๋ฆ} | ์ปจํ ์ด๋ ์ด๋ฆ ์ง์ |
| -p {ํธ์คํธํฌํธ}:{์ปจํ ์ด๋ํฌํธ} | ํฌํธ ์ฐ๊ฒฐ |
| --rm | ์ปจํ ์ด๋ ์ข ๋ฃ ์ ์๋ ์ญ์ |
| -v {ํธ์คํธ ๋๋ ํ ๋ฆฌ}:{์ปจํ ์ด๋ ๋๋ ํ ๋ฆฌ} | ๋๋ ํ ๋ฆฌ(๋ณผ๋ฅจ) ์ฐ๊ฒฐ |
์ปจํ ์ด๋ ๊ด๋ฆฌ
docker ps # ์คํ ์ค์ธ ์ปจํ
์ด๋ ๋ชฉ๋ก โญ
docker ps -a # ๋ชจ๋ ์ปจํ
์ด๋ ๋ชฉ๋ก (์ค์ง ํฌํจ)
docker restart {์ปจํ
์ด๋ id ๋๋ ์ด๋ฆ} # ์ปจํ
์ด๋ ์ฌ์์
docker rm {์ปจํ
์ด๋ id ๋๋ ์ด๋ฆ} # ์ปจํ
์ด๋ ์ญ์
docker rm `docker ps -a -q` # ๋ชจ๋ ์ปจํ
์ด๋ ์ญ์ โญ
์ปจํ ์ด๋ ์ ์กฐ์
exit # ์ปจํ
์ด๋ ์ข
๋ฃํ๋ฉฐ ๋น ์ ธ๋์ค๊ธฐ
Ctrl + D # ๋์ผ
Ctrl + P, Q # ์ปจํ
์ด๋ ์ข
๋ฃ ์์ด ๋น ์ ธ๋์ค๊ธฐ
์ ์ฒด ์ด๊ธฐํ
# โญ ๋ชจ๋ ์ปจํ
์ด๋ ์ค์ง + ๋์ปค ์์ ์ ์ฒด ์ญ์ (์ค์ต ์ด๊ธฐํ ์ ์ ์ฉ)
docker stop $(docker ps -aq)
docker system prune -a
# → ํ์ธ ์ง๋ฌธ์ y ์
๋ ฅ
Docker Compose
docker-compose up # ์ปดํฌ์ฆ ์คํ โญ
docker-compose up -d # ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ๋ชฌ์ผ๋ก ์คํ
๐ ์ฐธ๊ณ ๋งํฌ
728x90
'๐ CS & Infra > Infrastructure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Infrastructure] Spring Boot ร Docker ร AWS ๋ฐฐํฌ ํ๋ฆ ํ ๋ฒ์ ์ดํดํ๊ธฐ (1) | 2026.05.08 |
|---|