Docker
์ปจํ
์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ํ๋ซํผ
์ํํธ์จ์ด๋ฅผ ์ปจํ
์ด๋์ ๋ด์ ๋ค์ํ ํ๊ฒฝ์์๋ ๋์ผํ๊ฒ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์
Docker๋?
Docker๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐ, ๋ฐฐํฌ, ์คํํ๊ธฐ ์ํ ์คํ์์ค ํ๋ซํผ์
๋๋ค. Docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ ์ธํ๋ผ์์ ๋ถ๋ฆฌํ์ฌ ์ํํธ์จ์ด๋ฅผ ์ ์ํ๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค.
Docker์ ์ฃผ์ ํน์ง
์ฃผ์ ํน์ง | ์ค๋ช
|
์ด์์ฑ | ์ด๋ค ํ๊ฒฝ์์๋ ๋์ผํ๊ฒ ์คํ ๊ฐ๋ฅ |
๊ฐ๋ฒผ์ | ์ปจํ
์ด๋๋ ๊ฐ์ ๋จธ์ ๋ณด๋ค ์์์ ์ ๊ฒ ์ฌ์ฉ |
๊ฒฉ๋ฆฌ์ฑ | ๊ฐ ์ปจํ
์ด๋๋ ๋
๋ฆฝ๋ ํ๊ฒฝ์์ ์คํ |
ํ์ฅ์ฑ | ์์ฝ๊ฒ ์ ํ๋ฆฌ์ผ์ด์
ํ์ฅ ๊ฐ๋ฅ |
Docker์ ์ฃผ์ ๊ตฌ์ฑ ์์
๊ตฌ์ฑ ์์ | ์ค๋ช
|
Docker ์์ง | ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํ๋ ํต์ฌ ๊ธฐ์ |
Docker ์ด๋ฏธ์ง | ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ทธ ์์กด์ฑ์ ํฌํจํ ํจํค์ง |
Docker ์ปจํ
์ด๋ | ์ด๋ฏธ์ง์ ์คํ ๊ฐ๋ฅํ ์ธ์คํด์ค |
Docker Hub | ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ ์ ์๋ ํด๋ผ์ฐ๋ ์ ์ฅ์ |
Docker์ ์ฅ์
์ฅ์ | ์ค๋ช
|
๊ฐ๋ฐ ํ๊ฒฝ ํ์คํ | ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๋ฉด์ ๋ฐ์ํ๋ ์ด์ ํด๊ฒฐ |
์ ์ํ ๋ฐฐํฌ | ์ด๋ฏธ์ง ๊ธฐ๋ฐ ๋ฐฐํฌ๋ก ์๊ฐ ์ ์ฝ |
์์ ํจ์จ์ฑ | ํ๋์จ์ด ์์์ ํจ์จ์ ์ผ๋ก ํ์ฉ |
๋ฒ์ ๊ด๋ฆฌ | ์ด๋ฏธ์ง ๋ฒ์ ๊ด๋ฆฌ๋ก ๋กค๋ฐฑ ์ฉ์ด |
Docker์ ๋จ์
๋จ์ | ์ค๋ช
|
๋ณด์ ์ด์ | ์ปจํ
์ด๋๋ ํธ์คํธ OS์ ์ปค๋์ ๊ณต์ ํ๋ฏ๋ก ๋ณด์ ์ทจ์ฝ์ ์ด ๋ฐ์ํ ์ ์์ |
GUI ์ ํ๋ฆฌ์ผ์ด์
์ ํ | ๊ทธ๋ํฝ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์คํ์ ์ถ๊ฐ ์ค์ ํ์ |
์ฑ๋ฅ ์ค๋ฒํค๋ | ๊ฐ์ํ ๋ ์ด์ด๋ก ์ธํ ๊ฒฝ๋ฏธํ ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ์ฑ |
๋ฐ์ดํฐ ์ง์์ฑ | ์ปจํ
์ด๋๊ฐ ์ ๊ฑฐ๋๋ฉด ๋ด๋ถ ๋ฐ์ดํฐ๋ ์์ค๋จ(๋ณผ๋ฅจ ๋ง์ดํธ๋ก ํด๊ฒฐ ๊ฐ๋ฅ) |
Docker ํ์ต ์์
ํ์ต ์์ | ๋ด์ฉ |
๊ธฐ๋ณธ ๊ฐ๋
| Docker ์ด๋ฏธ์ง, ์ปจํ
์ด๋, ๋ณผ๋ฅจ, ๋คํธ์ํฌ์ ๊ฐ๋
์ดํด |
๋ช
๋ น์ด | docker run, build, pull, push ๋ฑ ๊ธฐ๋ณธ ๋ช
๋ น์ด ํ์ต |
Dockerfile | ์ด๋ฏธ์ง ์์ฑ์ ์ํ Dockerfile ์์ฑ๋ฒ ์ต๋ |
Docker Compose | ๋ค์ค ์ปจํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ฐ ์คํ ๋ฐฉ๋ฒ |
๋ณผ๋ฅจ ๊ด๋ฆฌ | ๋ฐ์ดํฐ ์ง์์ฑ์ ์ํ ๋ณผ๋ฅจ ์ค์ ๋ฐ ๊ด๋ฆฌ |
๋คํธ์ํน | ์ปจํ
์ด๋ ๊ฐ ํต์ ๋ฐ ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฐฉ๋ฒ |
์ค์ผ์คํธ๋ ์ด์
| Kubernetes, Docker Swarm ๋ฑ ์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
๋๊ตฌ |
Docker ํ์ต ์์ ๊ฐ์ด๋
์ด ๊ฐ์ด๋๋ Docker๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ๋ถ๋ค์ ์ํ ๋จ๊ณ๋ณ ํ์ต ์์๋ฅผ ์ ์ํฉ๋๋ค.
โข
์ ์ ํ์ต ์์
โข
ํ์ต ์์
์ ์ ํ์ต ์์
Docker๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ฐฐ์ฐ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์์๋๋ฉด ์ข์ ์ ์ ์ง์๋ค์
๋๋ค.
์ ์ ํ์ต ์์ | ์ค์๋ | ๋ด์ฉ |
Linux ๊ธฐ๋ณธ ๋ช
๋ น์ด | ๋์ | ls, cd, mkdir, rm ๋ฑ ๊ธฐ๋ณธ ์ ๋ช
๋ น์ด์ ํ์ผ ์์คํ
๊ตฌ์กฐ ์ดํด |
๊ฐ์ํ ๊ฐ๋
| ์ค๊ฐ | ๊ฐ์ํ์ ๊ธฐ๋ณธ ์๋ฆฌ์ ํ์ดํผ๋ฐ์ด์ , ์ปจํ
์ด๋์ ์ฐจ์ด์ ์ดํด |
๋คํธ์ํฌ ๊ธฐ์ด | ์ค๊ฐ | IP, ํฌํธ, HTTP/HTTPS ํ๋กํ ์ฝ, DNS ๋ฑ์ ๊ธฐ๋ณธ ๊ฐ๋
์ดํด |
Git ๊ธฐ์ด | ๋ฎ์ | ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ๊ฐ๋จํ ๋ช
๋ น์ด ์ดํด |
YAML ๋ฌธ๋ฒ | ์ค๊ฐ | Docker Compose ๋ฐ ์ค์ ํ์ผ ์์ฑ์ ์ํ YAML ํ์ ์ดํด |
์น ์๋น์ค ์ํคํ
์ฒ | ๋ฎ์ | ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ, ๋ง์ดํฌ๋ก์๋น์ค ๋ฑ์ ๊ธฐ๋ณธ ๊ฐ๋
์ดํด |
์ด๋ฌํ ์ ์ ์ง์์ด ์์ด๋ Docker ํ์ต์ ์์ํ ์ ์์ง๋ง, ํนํ Linux ๋ช
๋ น์ด์ ๋คํธ์ํฌ ๊ธฐ์ด ์ง์์ Docker๋ฅผ ์ฌ์ฉํ๋ ๊ณผ์ ์์ ๋ง์ ๋์์ด ๋ฉ๋๋ค.
ํ์ต ์์
1. ๊ธฐ์ด ๊ฐ๋ ์ดํด
Docker์ ๊ธฐ๋ณธ ๊ฐ๋
| ์ปจํ
์ด๋, ์ด๋ฏธ์ง, ๋ณผ๋ฅจ ๋ฑ์ ํต์ฌ ๊ฐ๋
์ดํดํ๊ธฐ |
Docker์ ๊ฐ์๋จธ์ ์ ์ฐจ์ด์ | ๊ธฐ์กด ๊ฐ์ํ ๊ธฐ์ ๊ณผ Docker์ ์ฐจ์ด์ ํ์
ํ๊ธฐ |
Docker ์ค์น | ์์ ์ ์ด์์ฒด์ ์ ๋ง๊ฒ Docker ์ค์น ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ |
2. ๊ธฐ๋ณธ ๋ช ๋ น์ด ์ต๋
์ปจํ
์ด๋ ๊ด๋ฆฌ | docker run, start, stop, rm ๋ฑ์ ๋ช
๋ น์ด ํ์ตํ๊ธฐ |
์ด๋ฏธ์ง ๊ด๋ฆฌ | docker pull, push, images, rmi ๋ฑ์ ๋ช
๋ น์ด ์ตํ๊ธฐ |
Docker Hub ํ์ฉ | ๊ณต๊ฐ ์ด๋ฏธ์ง ์ ์ฅ์ ํ์ ๋ฐ ํ์ฉํ๊ธฐ |
3. Dockerfile ์์ฑ
Dockerfile ๋ฌธ๋ฒ | FROM, RUN, COPY, ADD, EXPOSE ๋ฑ์ ์ง์์ด ํ์ตํ๊ธฐ |
์ด๋ฏธ์ง ๋น๋ | docker build ๋ช
๋ น์ด๋ก ์ปค์คํ
์ด๋ฏธ์ง ์์ฑํ๊ธฐ |
์ด๋ฏธ์ง ์ต์ ํ | ๋ ์ด์ด ๊ฐ๋
์ดํด ๋ฐ ํจ์จ์ ์ธ Dockerfile ์์ฑ๋ฒ ์ตํ๊ธฐ |
4. ๋ฐ์ดํฐ ๊ด๋ฆฌ
๋ณผ๋ฅจ ์ฌ์ฉ๋ฒ | ๋ฐ์ดํฐ ์ง์์ฑ์ ์ํ ๋ณผ๋ฅจ ์์ฑ ๋ฐ ๊ด๋ฆฌํ๊ธฐ |
๋ฐ์ธ๋ ๋ง์ดํธ | ํธ์คํธ์ ์ปจํ
์ด๋ ๊ฐ ํ์ผ ๊ณต์ ๋ฐฉ๋ฒ ์ตํ๊ธฐ |
๋ฐ์ดํฐ ๋ฐฑ์
๋ฐ ๋ณต๊ตฌ | ์ปจํ
์ด๋ ๋ฐ์ดํฐ ๋ณด์กด ์ ๋ต ์๋ฆฝํ๊ธฐ |
5. ๋คํธ์ํน
๋คํธ์ํฌ ์ ํ | bridge, host, overlay ๋ฑ ๋ค์ํ ๋คํธ์ํฌ ๋ชจ๋ ์ดํดํ๊ธฐ |
์ปจํ
์ด๋ ๊ฐ ํต์ | ์ฌ๋ฌ ์ปจํ
์ด๋ ๊ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๊ตฌ์ฑํ๊ธฐ |
ํฌํธ ๋งคํ | ํธ์คํธ์ ์ปจํ
์ด๋ ๊ฐ ํฌํธ ์ฐ๊ฒฐ ์ค์ ํ๊ธฐ |
6. Docker Compose
YAML ๋ฌธ๋ฒ | Docker Compose ํ์ผ ํ์ ํ์ตํ๊ธฐ |
๋ค์ค ์ปจํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
| ์ฌ๋ฌ ์๋น์ค๋ก ๊ตฌ์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ๊ธฐ |
ํ๊ฒฝ ๋ณ์ ๋ฐ ์ค์ | ๋ค์ํ ํ๊ฒฝ์ ๋ง๋ ์ค์ ๊ด๋ฆฌํ๊ธฐ |
7. ์ค์ ํ๋ก์ ํธ
์น ์ ํ๋ฆฌ์ผ์ด์
์ปจํ
์ด๋ํ | ๊ฐ๋จํ ์น ์๋น์ค Docker๋ก ๊ตฌ์ถํ๊ธฐ |
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ | MySQL, MongoDB ๋ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ
์ด๋ ๊ตฌ์ฑํ๊ธฐ |
CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ | GitHub Actions, Jenkins ๋ฑ๊ณผ Docker ์ฐ๋ํ๊ธฐ |
8. ๊ณ ๊ธ ์ฃผ์
Docker Swarm | ๊ธฐ๋ณธ์ ์ธ ์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
๋๊ตฌ ํ์ตํ๊ธฐ |
Kubernetes ์
๋ฌธ | ์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
์ ํ์ค ๋๊ตฌ ์ดํด๋ณด๊ธฐ |
๋ณด์ ๊ด๋ จ ๊ณ ๋ ค์ฌํญ | Docker ์ปจํ
์ด๋ ๋ณด์ ๊ฐํ ๋ฐฉ๋ฒ ์ตํ๊ธฐ |
์ด ํ์ต ๊ฒฝ๋ก๋ ๊ฐ์ธ์ ํ์ต ์๋์ ๋ฐฐ๊ฒฝ์ง์์ ๋ฐ๋ผ ์กฐ์ ๋ ์ ์์ต๋๋ค. ๊ฐ ๋จ๊ณ๋ณ๋ก ์ค์ต์ ์ถฉ๋ถํ ์งํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.