Docker ๋ ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ
์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ํ๊ฒฝ์ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๊ณ ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ๋์์ฃผ๋ ํ๋ซํผ
Container ๋?
- ๋ฆฌ์์ค๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก(๋ฌผ๋ฆฌ์ ์ด ์๋๋ผ!) ๊ตฌ๋ถํ์ฌ ๋ณ๋์ ์๋ฒ์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์ ์ด๋ค.
- ์์ ๋จ์, ๋ ๋ฆฝ์ ์ธ ๋ฐฐํฌ์ ์คํ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์ผ์ข ์ ๊ฐ์ ๋จธ์ ์ด๋ค.
- ์ํํธ์จ์ด ์๋น์ค๋ฅผ ์คํํ๋๋ฐ ํ์ํ ํน์ ๋ฒ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐํ์ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ ์ข ์ ํญ๋ชฉ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํจ๊ป ํฌํจํ๋ ๊ฒฝ๋ ํจํค์ง๋ก ๋น ๋ฅธ ๋น๋์ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- Traditional Deployment
ํ ๋ฌผ๋ฆฌ ์๋ฒ์์ ๋ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ด๊ณ , ์๋ฒ ์ข ๋ฃ ์ ์คํ ์ค์ธ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋๋ค.
- Virtualized Deployment
๊ฐ์ํ๋ฅผ ์ฌ์ฉํ์ฌ ํ ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค ๊ฐ์ ๋จธ์ ์ผ๋ก ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฆฌ์์ค๋ฅผ ํ์ํ๋งํผ ํ ๋นํ์ฌ ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค.
- Container Deployment
๊ฐ์ํ ๋ฐฉ์์์๋ ๊ฐ์ ๋จธ์ ์ผ๋ก ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ ๋ ๊ฐ VM๋ง๋ค OS๋ฅผ ๊ฐ๋๋ค. ์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ OS๋ฅผ ๊ณต์ ํ๋ค. VM๋ณด๋ค ๊ฐ๋ณ๊ณ ํ์ฅ์ฑ์ด ์ข๋ค.
๊ฐ์ ๋จธ์ ๊ณผ ์ปจํ ์ด๋์ ์ฐจ์ด
- ๊ฐ์ ๋จธ์ (VM)
๊ฐ VM ๋ง๋ค ๋
๋ฆฝ๋ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. ์ต์ GB ๋จ์์ ๊ณต๊ฐ์ด ํ์ํ๋ฉฐ VM ์์ ๋น๋กํด ๋์ด๋๋ค.
- ์ปจํ
์ด๋
ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์์ค์์ ์ด๋ฃจ์ด์ง๋ ๊ฐ์ํ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ํฌ๊ธฐ๊ฐ MB ๋จ์์ด๊ณ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ๋ณ๋๋ก ํ ๋นํ ํ์๊ฐ ์์ด ํจ์จ์ ์ด๊ณ ๋์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. VM์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๊ฐ๊ฐ์ VM์ด ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์์ง๋ง ์ปจํ
์ด๋๋ ๋ณด์์ ์ทจ์ฝํ๋ค.
→ ์ปจํ
์ด๋๋ ํ OS๋ฅผ ๊ณต์ ํ๋ ๊ตฌ์กฐ์ด๊ณ , VM์ ๊ฐ๊ฐ์ OS๋ฅผ ํฌํจํ๋ ๊ตฌ์กฐ์ด๋ค.
Docker
๋์ปค๋ Go ์ธ์ด๋ก ์์ฑ๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ์ด๋ค. ์ฆ, ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด๋์ ํ๋ก๊ทธ๋จ์ด๋ค. ์ค์ ๋ก ์ฌ๋ฌ OS ๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์๋๋ฏ๋ก ์ฉ๋์ด ์ ๊ณ ์คํ ์๋๊ฐ ๋น ๋ฅด๋ค.
๋์ปค์์ ์ปจํ ์ด๋๋ ์ํํธ์จ์ด ์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจ(์ฝ๋, ๋ฐํ์, ์์คํ ๋๊ตฌ, ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ)ํ๋ ์์ ํ ํ์ผ ์์คํ ์ด๋ค.
๋์ปค ์ด๋ฏธ์ง
์ปจํ ์ด๋ ์คํ์ ํ์ํ ํ์ผ๊ณผ ์ค์ ๊ฐ ๋ฑ์ ํฌํจํ๊ณ ์๋ ๊ฒ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ ๊ธฐ๋ณธ์ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ํ(์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋์ ๋ด์ ์คํ) ๋ผ๊ณ ๋ณผ ์ ์์ผ๋ ๊ฐ์ ์ด๋ฏธ์ง์์ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ ์ ์๋ค.
๋์ปค ๋ ์ด์ด
๋์ปค ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋ ์คํ์ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ด ์ฉ๋์ด ํฐ๋ฐ ์ฌ๊ธฐ์ ํ์ผ ํ๋๊ฐ ์ถ๊ฐ๋์๋ค๊ณ ๋ค์ ๋ค์ด ๋ฐ๋๋ค๋ฉด ํจ์จ์ฑ์ด ๋จ์ด์ง๋ค. ๊ทธ๋์ ๋ ์ด์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํด ์ฝ๊ธฐ ์ ์ฉ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋ ์ด๋ฏธ์ง์ ํ์ผ์ด ์ถ๊ฐ๋๊ฑฐ๋ ์์ ๋๋ฉด ์๋ก์ด ๋ ์ด์ด๋ฅผ ์ถ๊ฐํ๋ค.
๋์ปค ์์ํ๊ธฐ
- ์ค์น (root ๊ถํ)
curl -fsSL https://get.docker.com/ | sudo shโ
- ์ปจํ ์ด๋ ์คํ
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
- ์ปจํ ์ด๋ ๋ชฉ๋ก ํ์ธ
docker ps [OPTIONS]
- ์ปจํ ์ด๋ ์ค์ง
docker stop [OPTIONS] CONTAINER [CONTAINER...]
- ์ปจํ ์ด๋ ์ ๊ฑฐ
docker rm [OPTIONS] CONTAINER [CONTAINER...]
- ์ปจํ ์ด๋ ๋ก๊ทธ ๋ณด๊ธฐ
docker logs [OPTIONS] CONTAINER
- ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ
docker images [OPTIONS] [REPOSITORY[:TAG]]
- ์ด๋ฏธ์ง ๋ค์ด๋ก๋
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- ์ด๋ฏธ์ง ์ญ์
docker rmi [OPTIONS] IMAGE [IMAGE...]
์ฐธ๊ณ ์๋ฃ ๋ฐ ์ถ์ฒ ๐โ๏ธ
https://cloud.google.com/learn/what-are-containers?hl=ko
https://notepad96.tistory.com/entry/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88Container%EB%9E%80
https://daaa0555.tistory.com/464
https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/
'๊ฐ๋ฐ ํ > ์๋น์ค & ์ํคํ ์ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DevOps (0) | 2022.03.23 |
---|---|
ํ๋์จ์ด ๊ฐ์ํ ์ข ๋ฅ (0) | 2022.03.22 |
SOA (Service Oriented Architecture) (0) | 2022.03.08 |
MSA (MicroService Architecture) (0) | 2022.03.08 |
TDD (Test-Driven-Development) (0) | 2022.03.07 |
๋๊ธ