Docker
Docker๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ๊ฐ์ํ ํ๋ซํผ์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ทธ ์ข ์์ฑ์ ํจ๊ป ํจํค์งํ์ฌ ์คํ ํ๊ฒฝ ๊ฐ ์ผ๊ด์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์๋ ์ผ๊ด๋๊ฒ ์คํํ ์ ์๊ณ , ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ ์ฌ์ด์ ์ฐจ์ด๋ก ์ธํ ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋ํ Docker Container๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ ํ์ฅ์ฑ์ด ์ข์์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Docker๋ ์ฃผ๋ก ๊ฐ์๋จธ์ ๊ณผ ๋น๊ต๋ฅผ ๋ง์ด ํ๋๋ฐ, ๊ธฐ์กด ๊ฐ์๋จธ์ ์ ๋ฌด๊ฒ๊ณ ๋๋ฆฌ์ง๋ง ๋์ปค ์ปจํ ์ด๋๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ์คํ๋๋ฉฐ ํธ์คํธ์ ์ด์์ฒด์ ์ ์ปค๋์ ๊ณต์ ํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ํ ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ๊ด๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ค๋ฌด์์๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌ, ์ด์ํ๋ฉฐ ์คํ ์ค์ผ์ผ๋ง, ์๋ ๋ฐฑ์ , ์ด์คํ ๋ฑ์ ์ ๊ณตํ๋ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ํ์ฉํฉ๋๋ค.
Docker์ ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ปจํ
์ด๋(Container)
์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์คํ ํ์ผ, ๊ทธ๋ฆฌ๊ณ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ๋ ๋ฆฝ ์คํ ํ๊ฒฝ์ ๋๋ค.- ๋ค๋ฅธ ์ปจํ ์ด๋ ๋ฐ ํธ์คํธ์ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํ๋ฉ๋๋ค.
- ๊ฐ์ ๋จธ์ ๋ณด๋ค ๊ฒฝ๋์ด๋ฉฐ, ํธ์คํธ์ ์ปค๋์ ๊ณต์ ํฉ๋๋ค.
- Docker ์์ง(Docker Engine)
Docker ์ปจํ ์ด๋๋ฅผ ๋น๋, ์คํ, ๋ฐฐํฌํ๊ธฐ ์ํ ํต์ฌ ์ํํธ์จ์ด์ ๋๋ค.- Docker Engine์ ํด๋ผ์ด์ธํธ, ๋ฐ๋ชฌ(์๋ฒ), REST API๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Docker CLI
๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ก Docker ๋ช ๋ น์ ์คํํฉ๋๋ค.
์: docker run, docker build, docker ps.
Docker Image
Docker ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ ํ๋ฆฟ์ ๋๋ค.
- ์ด๋ฏธ์ง๋ ๊ณ์ธต(layer) ๊ธฐ๋ฐ์ผ๋ก ์ ์ฅ๋๋ฉฐ, ๊ฐ ๊ณ์ธต์ ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค.
- ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋ ์คํ ์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ก๋๋๋ฉฐ, ์คํ ์์ ์๋ง ์ปจํ ์ด๋์ ์ฐ๊ธฐ ๊ฐ๋ฅํ ๊ณ์ธต์ด ์ถ๊ฐ๋ฉ๋๋ค.
์ฃผ์ ํน์ง
- Immutable
์ด๋ฏธ์ง๋ ๋ถ๋ณํ๋ฉฐ, ํ ๋ฒ ๋น๋๋๋ฉด ์์ ํ ์ ์์ต๋๋ค. ์์ ์ด ํ์ํ๋ฉด ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. - Layered Structure
- ์ด๋ฏธ์ง๋ ์ฌ๋ฌ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์: ๋ฒ ์ด์ค ์ด๋ฏธ์ง(Ubuntu) + ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ + ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ฝ๋.
- Dockerfile
์ด๋ฏธ์ง๋ ๋ณดํต Dockerfile์ด๋ผ๋ ์คํฌ๋ฆฝํธ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๋ฉ๋๋ค.
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3
COPY app.py /app/
CMD ["python3", "/app/app.py"]
Docker Container
Docker ์ปจํ ์ด๋๋ Docker ์ด๋ฏธ์ง๋ฅผ ์คํํ์ฌ ์์ฑ๋ ์คํ ๊ฐ๋ฅํ ํ๊ฒฝ์ ๋๋ค.
- ์ปจํ ์ด๋๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ, ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํ๋ฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ข ์์ฑ๋ง ํฌํจํ๋ฉฐ, ํธ์คํธ OS์ ์ปค๋์ ๊ณต์ ํฉ๋๋ค.
์ฃผ์ ํน์ง
- ๊ฒฉ๋ฆฌ์ฑ(Isolation)
๊ฐ ์ปจํ ์ด๋๋ ๋ณ๋์ ํ๋ก์ธ์ค ๋ค์์คํ์ด์ค์ ํ์ผ ์์คํ ์ ๊ฐ์ง๋๋ค. - ๊ฐ๋ฒผ์(Lightweight)
๊ฐ์๋จธ์ (VM)๋ณด๋ค ์ ์ ์์์ ์ฌ์ฉํ๋ฉฐ, ๋น ๋ฅด๊ฒ ์์/์ข ๋ฃ๋ฉ๋๋ค. - ์ ์ง ๊ฐ๋ฅ์ฑ(Maintainability)
์ปจํ ์ด๋๋ ์ํ๋ฅผ ๊ฐ์ง์ง ์๋(stateless) ํน์ฑ์ด ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ฝ๊ฒ ์ข ๋ฃ ๋ฐ ์ฌ์์ฑํ ์ ์์ต๋๋ค.
โ ๋์ปค ์ด๋ฏธ์ง์ ์ปจํ ์ด๋์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ฉด, ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค์ ๊ฐ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ์ฝ๋์ ๋์์ด ์ ์๋ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด ์ ์๋ ๋๋ก ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ผ๊ฐ์ ์คํ์ํ์ธ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ํ๊ฒฝ์ด ์ ์๋ ์ด๋ฏธ์ง(ํ๋ก๊ทธ๋จ)์ ์คํ์ํค๋ฉด ์คํ์ํ์ธ ์ปจํ ์ด๋(ํ๋ก์ธ์ค)๊ฐ ๋ฉ๋๋ค.
Docker Registry
Docker Registry๋ Docker ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ค์ ์ ์ฅ์์ ๋๋ค.
- ๊ฐ๋ฐ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋ํ๊ณ , ํ์ ์ ๋ค์ด๋ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฃผ์ ์์
- Docker Hub
- Docker์์ ๊ธฐ๋ณธ ์ ๊ณตํ๋ ํผ๋ธ๋ฆญ ๋ ์ง์คํธ๋ฆฌ์ ๋๋ค.
- ์ ์ธ๊ณ์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์: nginx, mysql๊ณผ ๊ฐ์ ์ธ๊ธฐ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
docker pull nginx
- Private Registry
๊ธฐ์ ๋๋ ๊ฐ์ธ์ด ๊ด๋ฆฌํ๋ ํ๋ผ์ด๋น ๋ ์ง์คํธ๋ฆฌ์ ๋๋ค.- Docker Registry๋ฅผ ์ง์ ํธ์คํ ํ๊ฑฐ๋ AWS ECR, Google Container Registry ๋ฑ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
- ์ด๋ฏธ์ง ์ด๋ฆ ๊ท์น
- repository:tag ํ์์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์๋ณํฉ๋๋ค.
- ์: myapp:1.0, nginx:latest.
- Push & Pull
- docker push: ์ด๋ฏธ์ง๋ฅผ ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋.
- docker pull: ์ด๋ฏธ์ง๋ฅผ ๋ ์ง์คํธ๋ฆฌ์์ ๋ค์ด๋ก๋.
Docker์ ์ ์ฒด ์์ ํ๋ฆ
- Dockerfile ์์ฑ
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํ์ํ ํ๊ฒฝ์ ์ ์ํ Dockerfile ์์ฑ.
- ์ด๋ฏธ์ง ๋น๋
docker build -t myapp:1.0 .
- ์ปจํ
์ด๋ ์คํ
docker run -d --name mycontainer -p 8080:80 myapp:1.0
- ์ด๋ฏธ์ง ๋ฐฐํฌ
- Docker Registry์ ์ ๋ก๋ํ์ฌ ๋ค๋ฅธ ํ๊ฒฝ์์ ์ฌ์ฉ ๊ฐ๋ฅ.
docker tag myapp:1.0 myregistry.com/myapp:1.0 docker push myregistry.com/myapp:1.0
โ ๋์ปค๋ฅผ ์ ํด๋ณด์ง ์์ ์ฌ๋๋ค์๊ฒ ์ถ์ฒํ๋ ๋ฐฉ๋ฒ์ ๋์ปค๋ฅผ ์ค์นํ๊ณ docker run --rm -d -p 8080:80 nginx ๋ช ๋ น์ด๋ฅผ ๋ฌด์์ ์คํํด๋ณด๋ ๊ฒ์ ๋๋ค. nginx๋ผ๋ ์ด๋ฏธ์ง๊ฐ ๋ก์ปฌ์ ์๊ธฐ ๋๋ฌธ์ ๋์ปค ํ๋ธ์์ nginx ์ด๋ฏธ์ง๋ฅผ Pullํด์ ๊ฐ์ ธ์ฌ ๊ฒ์ด๊ณ ์ปจํ ์ด๋๋ฅผ ์คํํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ docker ps๋ฅผ ์ ๋ ฅํด๋ณด๊ณ , localhost:8080์ผ๋ก ์น ์๋ฒ๊ฐ ๋์ํ๋์ง ์ฒดํฌํด๋ณด์ธ์.
Docker๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์ผ๊ด๋ ํ๊ฒฝ ์ ๊ณต
- ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ ํ๊ฒฝ์ ์ฐจ์ด๋ก ์ธํ ๋ฌธ์ ๋ฅผ ์ต์ํ.
- ํจ์จ์ฑ
- ๋น ๋ฅธ ์์๊ณผ ์์ ํจ์จ์ฑ์ ์ ๊ณต(๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ผ๋ก ๋ฒ์ /์ข ์์ฑ ์ ๊ฒฝ ์์จ๋ ๋จ)
- ํ์ฅ์ฑ
- Kubernetes์ ๊ฐ์ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ฅผ ํตํด ๋๊ท๋ชจ ์ปจํ ์ด๋ ๊ด๋ฆฌ ๊ฐ๋ฅ.
- MSA์ ๊ฐ์ํ
- ๋ฆฌ์์ค ์ฌ์ฉ๋ ์์ธก ๊ฐ๋ฅ ๋ฐ ์์ ์ฌ์ฉ ํจ์จ์ฑ ์ฆ๊ฐ
- Kubernetes์ ๊ฐ์ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ฅผ ํตํด ๋๊ท๋ชจ ์ปจํ ์ด๋ ๊ด๋ฆฌ ๊ฐ๋ฅ.
๋์ปค ์ํคํ ์ฒ
Docker๋ ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋, ๋ฐฐํฌ, ์คํ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ตฌ์ฑ๋ ๋ค์ํ ์ปดํฌ๋ํธ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.ํด๋ผ์ด์ธํธ์ docker host๋ ๋ก์ปฌ ํ๊ฒฝ์ ์กด์ฌํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ๋ ๋จ๋ค์ด ๋ง๋ค์ด ๋์ Docker hub์ Repository ๋ชจ์์ ๋๋ค.
Docker Client
Docker Client๋ ์ฌ์ฉ์๊ฐ Docker๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค์ ๋๋ค.
- ์ญํ
- ์ฌ์ฉ์์ ๋ช ๋ น(docker run, docker build, docker pull)์ ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์.
- Docker Server(Daemon)์ ํต์ ํ์ฌ ์ค์ ์์ ์ ์ํ.
- ์๋ ๋ฐฉ์
- Docker Client๋ REST API๋ฅผ ํตํด Docker Daemon๊ณผ ์ํธ์์ฉํฉ๋๋ค.
- CLI(Command Line Interface)์ GUI ๋๊ตฌ(์: Docker Desktop)๋ฅผ ํฌํจ.
Docker Daemon (Server)
Docker Daemon์ Docker์ ํต์ฌ ์ปดํฌ๋ํธ๋ก, Docker ์ปจํ ์ด๋์ ์ด๋ฏธ์ง๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ์ญํ
- ์ปจํ ์ด๋ ๋น๋, ์คํ, ๋คํธ์ํฌ ์ค์ ๋ฑ ๋ชจ๋ ์์ ์ํ.
- Docker ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๊ด๋ฆฌ.
- ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ช ๋ น์ ๋ฐ๊ณ ์ด๋ฅผ ์ฒ๋ฆฌ.
- ์๋ ๋ฐฉ์
- ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ฉฐ REST API ์์ฒญ์ ์ฒ๋ฆฌ.
- ์ฃผ๋ก dockerd ํ๋ก์ธ์ค๊ฐ ์ด๋ฅผ ๋ด๋น.
Docker Engine
Docker Engine์ Docker ์ํคํ ์ฒ์ ์ค์ฌ์ผ๋ก, ์๋ ์ธ ๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- Docker Daemon: ์ค์ ๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ์ปจํ ์ด๋๋ฅผ ์คํ.
- Docker CLI: ์ฌ์ฉ์๊ฐ ๋ช ๋ น์ ์คํํ ์ ์๋ ์ธํฐํ์ด์ค.
- REST API: Docker Daemon๊ณผ ํด๋ผ์ด์ธํธ๊ฐ ํต์ ํ๋ ๋ฐฉ์.
Docker Command
- Docker build
- ์ด๋ฏธ ์ ์๋ Dockerfile๋๋ก ์ด๋ฏธ์ง๋ฅผ ๋ง๋ญ๋๋ค.
- Docker pull
- ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ ๋ง๋ค์ด์ง ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ ์ต๋๋ค.
- Docker run
- ์ด๋ฏธ์ง(ํ๋ก๊ทธ๋จ)๋ฅผ ์คํ์์ผ์ ์ปจ๋ค์ด๋(ํ๋ก์ธ์ค)๋ก ๋ง๋ญ๋๋ค.
docker build ์์ธ
docker build ๋ช ๋ น์ด๋ Dockerfile์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ ํ์
docker build [OPTIONS] PATH | URL | -
์ฃผ์ ์ต์
์ต์ | ์ค๋ช |
-t, --tag | ์์ฑํ ์ด๋ฏธ์ง์ ์ด๋ฆ๊ณผ ํ๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค. (์: myimage:1.0) |
--build-arg KEY=VALUE | Dockerfile์์ ์ฌ์ฉํ ๋น๋ ํ์ ๋ณ์ ๊ฐ์ ์ง์ ํฉ๋๋ค. |
--no-cache | ์บ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค. |
--pull | ๋น๋ ์ ์ต์ ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ ํญ์ ๋ค์ด๋ก๋ํฉ๋๋ค. |
--file, -f | ์ฌ์ฉํ Dockerfile์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ ๋๋ ํ ๋ฆฌ์ Dockerfile์ ๋๋ค. |
--progress | ๋น๋ ์งํ ์ํฉ ํ์ ์คํ์ผ์ ์ค์ ํฉ๋๋ค. (auto, plain, tty) |
--build-context | ๋น๋ ์ ์ฌ์ฉํ ์ปจํ ์คํธ๋ฅผ ์ง์ ํฉ๋๋ค. |
--target | ๋ฉํฐ์คํ ์ด์ง ๋น๋์์ ํน์ ์คํ ์ด์ง๋ฅผ ์ง์ ํฉ๋๋ค. |
--platform | ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ํ๋ซํผ์ ์ง์ ํฉ๋๋ค. (์: linux/amd64, linux/arm64) |
์์
- ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๋น๋:
docker build -t myimage:1.0 .
- ํน์ Dockerfile ๊ฒฝ๋ก ์ง์ :
docker build -f ./path/to/Dockerfile -t myimage:1.0 .
- ์บ์ ์์ด ๋น๋:
docker build --no-cache -t myimage:1.0 .
- ๋น๋ ์ธ์ ์ ๋ฌ:
docker build --build-arg ENV=production -t myimage:prod .
docker run ์์ธ
docker run ๋ช ๋ น์ด๋ Docker ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ ํ์
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
์ฃผ์ ์ต์
์ต์ | ์ค๋ช |
-d, --detach | ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํฉ๋๋ค. |
-i, --interactive | ์ปจํ ์ด๋์์ ์ํธ์์ฉ์ ์ ์งํฉ๋๋ค. (์ฃผ๋ก -t์ ํจ๊ป ์ฌ์ฉ) |
-t, --tty | ๊ฐ์ ํฐ๋ฏธ๋์ ํ ๋นํฉ๋๋ค. |
--name | ์ปจํ ์ด๋ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. |
-p, --publish | ํธ์คํธ์ ์ปจํ ์ด๋ ๊ฐ ํฌํธ๋ฅผ ๋งคํํฉ๋๋ค. (์: -p 8080:80) |
-P, --publish-all | ์ปจํ ์ด๋์ ๋ชจ๋ ๋ ธ์ถ๋ ํฌํธ๋ฅผ ๋๋ค์ผ๋ก ํธ์คํธ์ ๋งคํํฉ๋๋ค. |
-v, --volume | ํธ์คํธ์ ์ปจํ ์ด๋ ๊ฐ์ ๋ณผ๋ฅจ์ ๋ง์ดํธํฉ๋๋ค. (์: -v /host/path:/container/path) |
--env, -e | ํ๊ฒฝ ๋ณ์๋ฅผ ์ปจํ ์ด๋์ ์ ๋ฌํฉ๋๋ค. (์: -e ENV=production) |
--env-file | ํ๊ฒฝ ๋ณ์ ํ์ผ์ ์ฌ์ฉํฉ๋๋ค. (์: --env-file ./env.list) |
--rm | ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค. |
--network | ์ปจํ ์ด๋๊ฐ ์ฌ์ฉํ ๋คํธ์ํฌ๋ฅผ ์ง์ ํฉ๋๋ค. (์: --network my_network) |
--cpu-shares | CPU ์ฌ์ฉ๋ ์ฐ์ ์์๋ฅผ ์ค์ ํฉ๋๋ค. |
--memory | ์ปจํ ์ด๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํ๋๋ฅผ ์ค์ ํฉ๋๋ค. (์: --memory 512m) |
--restart | ์ปจํ ์ด๋ ์ฌ์์ ์ ์ฑ ์ ์ง์ ํฉ๋๋ค. (no, always, on-failure, unless-stopped) |
--entrypoint | ๊ธฐ๋ณธ ์ด๋ฏธ์ง์ ENTRYPOINT๋ฅผ ๋ฎ์ด์๋๋ค. |
--privileged | ์ปจํ ์ด๋์ ์ถ๊ฐ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. |
--detach-keys | ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋ณด๋ผ ๋จ์ถํค๋ฅผ ์ค์ ํฉ๋๋ค. |
์์
- ๊ธฐ๋ณธ ์ปจํ
์ด๋ ์คํ:
docker run -it ubuntu
- ํฌํธ ๋งคํํ์ฌ ์คํ:
docker run -d -p 8080:80 nginx
- ํ๊ฒฝ ๋ณ์ ์ ๋ฌ:
docker run -e ENV=production -it ubuntu
- ๋ณผ๋ฅจ ๋ง์ดํธ:
docker run -v /host/data:/container/data -it ubuntu
- ์ข
๋ฃ ํ ์ปจํ
์ด๋ ์ ๊ฑฐ:
docker run --rm -it ubuntu
- ๋คํธ์ํฌ ์ง์ :
docker run --network my_network -it ubuntu
'์๋น์ค & ํด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] 3. ๋์ปค ์ปดํฌ์ฆ(Docker compose) (0) | 2025.01.06 |
---|---|
[Docker] 2. ๋์ปค ๋คํธ์ํฌ์ ๋์ปค ์คํ ๋ฆฌ์ง (0) | 2025.01.02 |
[Metric] ํ๋ก๋ฉํ ์ฐ์ค + ๊ทธ๋ผํ๋ (0) | 2024.12.23 |
[๋ฉ์ธ์ง ๋ธ๋ก์ปค] RabbitMQ vs Apache KafKa (0) | 2024.12.16 |
[git] Git rebase(๋ฆฌ๋ฒ ์ด์ค)๋? (0) | 2023.08.10 |
๋๊ธ