๐ ์ด ๊ธ์ 12์ ์ํฐ๋์์ ์งํํ๋ ํ๋ฆฌ์จ๋ณด๋ฉ BE ์ฑ๋ฆฐ์ง๋ฅผ ์ฐธ์ฌํ๊ฒ ๋์ด ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ง์ฝ ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์! ๊ฐ์ฌํฉ๋๋ค. ๐โ๏ธ
๐น ์ปจํ ์ด๋(Container) ๊ธฐ์ ์ด๋ ?
- ์ปจํ ์ด๋ ๊ธฐ์ ์ด๋ ๊ฐ์ํ ๊ธฐ์ ์ค ํ๋์ด๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ฆฝ๋ ํ๊ฒฝ์์ ์คํํ๋ ๊ธฐ์ ์ด๋ค.
- ๋ค๋ฅธ ์๋ฒ ๋ฐ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋๋ก ํ๋ ๊ธฐ์ ์ด๋ค.
๐น ์ปจํ ์ด๋ ๊ธฐ์ ์ ํน์ง
- ๊ธฐ์กด Virtual Machines ๋ชจ๋ธ๋ค๊ณผ ๋ฌ๋ฆฌ ๋ณ๋์ guest OS ์์ด ๊ฐ๋ฒผ์ด ๊ฐ์ํ ๊ธฐ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
๐น ๋์ปค(Docker)๋ ?
- ๋์ปค๋ ์ปจํ
์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ๋๊ตฌ์ด๋ค.
- ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ์ ์ธ LXC(Linux Containers) ๊ธฐ๋ฐ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋๋ผ๋ ๋จ์๋ก ๊ฒฉ๋ฆฌํ์ฌ ์คํํ๊ณ ๋ฐฐํฌํ๋ ๊ธฐ์ ์ด๋ค.
- ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฝ๊ฒ ๋น๋, ๋ฐฐํฌ, ๊ด๋ฆฌํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ์ ๊ธฐ๋ฅ๋ค์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ณ , ํจ์จ์ ์ผ๋ก ๋ฐฐํฌ, ๊ด๋ฆฌํ ์ ์๋ค.
๐น Docker Architecture
- ๋์ปค๋ ๋ด๋ถ์ ์ผ๋ก ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.
- ๋์ปค๋ Docker daemon์ ์คํํ์ฌ ์ปจํ ์ด๋์ ๊ด๋ จ๋ ๋ชจ๋ ์์ฒญ(๋น๋, ์คํ ๋ฑ)์ ์ฒ๋ฆฌํ๋ค.
- ๋์ปค์ ๊ธฐ๋ณธ CLI ํด๋ผ์ด์ธํธ๋ UNIX ์์ผ(default) ํน์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋์ปค ๋ฐ๋ชฌ์ผ๋ก REST API ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ค.
โฝ Docker daemon(dockerd)
- Docker API ์์ฒญ์ ์์ ํ๊ณ ,
- ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๋ฑ์ ๋์ปค ์ค๋ธ์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ค.
โฝ Docker Client
- Docker์ ์ํธ์์ฉํ๋ค.
- ๋ช ๋ น์ด๋ฅผ REST API Call์ผ๋ก ๋ณํํ์ฌ ๋์ปค ๋ฐ๋ชฌ์ผ๋ก ์ ์กํ๋ค.
โฝ Docker Registries
- ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ์ฅํ๋ ์ ์ฅ์์ ์ญํ ์ ํ๋ค.
- Docker Hub : ๋ํดํธ ๋ ์ง์คํธ๋ฆฌ, ๋๊ตฌ๋ ์ ๊ทผ ๊ฐ๋ฅํ ๊ณต๊ฐํ ์ ์ฅ์์ด๋ค.
โฝ Docker objects
- Docker Images
- ๋์ปค ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ฝ๊ธฐ ์ ์ฉ ํ ํ๋ฆฟ
- Docker container
- ํ ๋์ปค ์ด๋ฏธ์ง์ ์คํ ๊ฐ๋ฅํ ์ธ์คํด์ค
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํ ๋ชจ๋ ํ์ผ๊ณผ ์ค์ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํจํค์ง
๐น ๋์ปค ํ์ผ, ๋์ปค ์ด๋ฏธ์ง, ๋์ปค ์ปจํ ์ด๋์ ๊ด๊ณ
โฝ ๋์ปค ํ์ผ(Dockerfile)
- ์ปจํ ์ด๋์ ์ค์นํด์ผ ํ๋ ํจํค์ง, ์์ค์ฝ๋, ๋ช ๋ น์ด, ํ๊ฒฝ๋ณ์, ์ค์ ๋ฑ์ ๊ธฐ๋กํ ํ์ผ์ด๋ค.
- ๋์ปค ํ์ผ์ ๋น๋ํ๋ฉด ์๋์ผ๋ก ๋์ปค ์ด๋ฏธ์ง๊ฐ ์์ฑ๋๋ค.
[ ๋์ปค ํ์ผ ์ฃผ์ ๋ฌธ๋ฒ ]
๊ตฌ๋ฌธ | ์ค๋ช |
# | ์ฝ๋ฉํธ |
FROM | ๋ฒ ์ด์ค ์ด๋ฏธ์ง(Base Image) ์ง์ |
MAINTAINER | ๋ช ๋ น ๋ฐ ์ปจํ ์ด๋ ์คํ ์ ์ ์ฉํ ์ ์ ์ค์ (๊ธฐ๋ณธ : root) |
WORKDIR | work directory ์ง์ |
RUN | ์ปจํ ์ด๋ ๋น๋๋ฅผ ์ํ ์คํ ๋ช ๋ น์ด |
COPY | ์ปจํ ์ด๋ ๋น๋ ์ ํธ์คํธ ํ์ผ ๋ณต์ฌ |
ADD | ์ปจํ ์ด๋ ๋น๋ ์ ํธ์คํธ์(tar, url) ๋ณต์ฌ |
ENV | ํ๊ฒฝ ๋ณ์ |
USER | ๋ช ๋ น ๋ฐ ์ปจํ ์ด๋ ์คํ ์ ์ ์ฉํ ์ ์ ์ค์ (๊ธฐ๋ณธ : root) |
โฝ ๋์ปค ์ด๋ฏธ์ง(Docker Image)
- ๋์ปค ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ค.
โฝ ๋์ปค ์ปจํ ์ด๋(Docker Container)
- ๋์ปค ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋๋ก ํ๋ ๊ณต๊ฐ์ด๋ค.
๐ reference
'Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Docker CLI (0) | 2023.12.16 |
---|