๐ ๏ธ Docker ๋ช ๋ น ๋ง์คํฐํ๊ธฐ: ๋น์ ์ ์ผ์ผ ํดํท
Source: Dev.to

Docker ์ํคํ ์ฒ์ ํ์ผ์์คํ ์ ๋ฌด์, ์, ์ด๋ป๊ฒ๋ฅผ ๋ฐฐ์ ์ต๋๋ค. ์ด์ ๋งค์ผ Docker์ ์ํธ์์ฉํ ๋ ์ฌ์ฉํ ๋ช ๋ น๋ค์ ์ค์ ์์ ํ์ฉํด ๋ณผ ์ฐจ๋ก์ ๋๋ค. ์ด ๊ธ์ ์ด๋ฏธ์ง, ์ปจํ ์ด๋, Docker ํ๊ฒฝ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํต์ฌ ๋ ํผ๋ฐ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค.
ํ์ํ ๋ช ๋ น๋ค์ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์ ๋ฆฌํ์ต๋๋ค.
๐ Docker ์์คํ ๋ฐ ์ ๋ณด ๋ช ๋ น
| ๋ช ๋ น | ์ค๋ช | ์์ |
|---|---|---|
docker --version | Docker ํด๋ผ์ด์ธํธ ๋ฒ์ ์ ํ์ํฉ๋๋ค. | docker --version |
docker info | Docker ์ค์น์ ๋ํ ์์คํ ์ ์ฒด ์ ๋ณด๋ฅผ ์์ธํ ์ ๊ณตํฉ๋๋ค. | docker info |
docker system df | Docker ๊ฐ์ฒด(์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋ณผ๋ฅจ)์ ๋์คํฌ ์ฌ์ฉ๋์ ๋ณด์ฌ์ค๋๋ค. | docker system df |
docker system prune | ์ฌ์ฉ๋์ง ์๋ Docker ๋ฐ์ดํฐ(์ค์ง๋ ์ปจํ ์ด๋, ์ฌ์ฉ๋์ง ์๋ ๋คํธ์ํฌ, ๋ ๋์ด ์ด๋ฏธ์ง)๋ฅผ ์ ๊ฑฐํฉ๋๋ค. | docker system prune |
๐ผ๏ธ ์ด๋ฏธ์ง ๊ด๋ฆฌ ๋ช ๋ น
| ๋ช ๋ น | ์ค๋ช | ์์ |
|---|---|---|
docker pull | ๋ ์ง์คํธ๋ฆฌ(๊ธฐ๋ณธ์ Docker Hub)์์ ์ด๋ฏธ์ง๋ฅผ ๋ก์ปฌ ๋จธ์ ์ผ๋ก ๋ค์ด๋ก๋ํฉ๋๋ค. | docker pull ubuntu:latest |
docker images / docker image ls | ๋ก์ปฌ์ ์ ์ฅ๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋์ดํฉ๋๋ค. | docker images |
docker search | ํค์๋๋ฅผ ๊ธฐ์ค์ผ๋ก Docker Hub์์ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํฉ๋๋ค. | docker search nginx |
docker inspect | Docker ๊ฐ์ฒด์ ๋ํ ์์ธ JSON ์ค์ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. | docker inspect nginx:latest |
docker rmi | ํ๋ ์ด์์ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํฉ๋๋ค. | docker rmi ubuntu:latest |
๐ข ์ปจํ ์ด๋ ๋ผ์ดํ์ฌ์ดํด ๋ช ๋ น
| ๋ช ๋ น | ์ค๋ช | ์์ |
|---|---|---|
docker run | ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ ์์ํฉ๋๋ค. | docker run -it --name my-alpine alpine sh |
docker create | ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ง๋ง ์์ํ์ง๋ ์์ต๋๋ค. | docker create --name my-db postgres |
docker start | ํ๋ ์ด์์ ์ค์ง๋ ์ปจํ ์ด๋๋ฅผ ์์ํฉ๋๋ค. | docker start my-db |
docker stop | ํ๋ ์ด์์ ์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ์ฐ์ํ๊ฒ ์ค์งํฉ๋๋ค. | docker stop my-web-server |
docker restart | ํ๋ ์ด์์ ์ปจํ ์ด๋๋ฅผ ์ฌ์์ํฉ๋๋ค. | docker restart my-db |
docker kill | ํ๋ ์ด์์ ์คํ ์ค์ธ ์ปจํ
์ด๋๋ฅผ ๊ฐ์ ๋ก ์ข
๋ฃํฉ๋๋ค(SIGKILL ์ ์ก). | docker kill my-db |
docker ps / docker container ls | ์คํ ์ค์ธ ์ปจํ
์ด๋๋ฅผ ๋์ดํฉ๋๋ค. -a/--all ์ต์
์ ์ถ๊ฐํ๋ฉด ๋ชจ๋ ์ปจํ
์ด๋๋ฅผ ํ์ํฉ๋๋ค. | docker ps -a |
docker rm | ํ๋ ์ด์์ ์ค์ง๋ ์ปจํ
์ด๋๋ฅผ ์ญ์ ํฉ๋๋ค. ์คํ ์ค์ธ ์ปจํ
์ด๋๋ฅผ ๊ฐ์ ๋ก ์ญ์ ํ๋ ค๋ฉด -f ์ต์
์ ์ฌ์ฉํฉ๋๋ค. | docker rm my-alpine |
โจ docker run ์ต์
(ํ๋๊ทธ)
| ์ต์ | ์๋ฏธ | ์ฌ์ฉ ์์ |
|---|---|---|
-it | ์ธํฐ๋ํฐ๋ธ ๋ชจ๋(-i ์ธํฐ๋ํฐ๋ธ, -t TTY). ์ ์ ๊ทผ์ ํ์์ ์
๋๋ค. | docker run -it alpine sh |
-d | ๋ํ์น๋ ๋ชจ๋. ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํฉ๋๋ค. | docker run -d nginx |
-p <hostPort>:<containerPort> | ํฌํธ ๋งคํ. ์ปจํ ์ด๋ ํฌํธ๋ฅผ ํธ์คํธ ํฌํธ์ ๊ณต๊ฐํฉ๋๋ค. | docker run -p 8080:80 nginx |
--name <name> | ์ปจํ ์ด๋์ ๊ธฐ์ตํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. | docker run --name my-app โฆ |
--rm | ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋ ๋ ์๋์ผ๋ก ์ญ์ ํฉ๋๋ค. ์ผ์์ ์ธ ์์ ์ ์ ์ฉํฉ๋๋ค. | docker run --rm alpine โฆ |
-v <hostPath>:<containerPath> | ๋ณผ๋ฅจ ๋ง์ดํธ. ๋ฐ์ดํฐ ์์์ฑ์ ์ํด ํธ์คํธ ๊ฒฝ๋ก๋ ๋ช ๋ช ๋ ๋ณผ๋ฅจ์ ๋ง์ดํธํฉ๋๋ค. | docker run -v my-data:/data โฆ |
๐ฌ ์ปจํ ์ด๋ ์ํธ์์ฉ ๋ฐ ๋ชจ๋ํฐ๋ง ๋ช ๋ น
| ๋ช ๋ น | ์ค๋ช | ์์ |
|---|---|---|
docker exec | ์คํ ์ค์ธ ์ปจํ ์ด๋ ๋ด๋ถ์์ ๋ช ๋ น์ ์คํํฉ๋๋ค. | docker exec -it my-app sh |
docker logs | ์ปจํ
์ด๋์ ๋ก๊ทธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. -f ์ต์
์ ์ฌ์ฉํ๋ฉด ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. | docker logs -f my-web-server |
docker top | ์ปจํ ์ด๋ ๋ด๋ถ์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ํ์ํฉ๋๋ค. | docker top my-web-server |
docker stats | ์คํ ์ค์ธ ์ปจํ ์ด๋๋ค์ ๋ฆฌ์์ค ์ฌ์ฉ๋(CPU, ๋ฉ๋ชจ๋ฆฌ, I/O)์ ์ค์๊ฐ ์คํธ๋ฆผ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. | docker stats |
docker cp | ์ปจํ ์ด๋์ ๋ก์ปฌ ํ์ผ ์์คํ ๊ฐ์ ํ์ผ/ํด๋๋ฅผ ๋ณต์ฌํฉ๋๋ค. | docker cp my-app:/app/config.ini . |
docker attach | ํฐ๋ฏธ๋์ ์คํ ์ค์ธ ์ปจํ ์ด๋์ ์คํธ๋ฆผ์ ์ฐ๊ฒฐํฉ๋๋ค(์ฌ์ฉ ์ ์ฃผ์). | docker attach my-alpine |
์ด์ ์ปจํ ์ด๋์ ์ ์ฒด ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๊ฐ๋ ฅํ ํดํท๊ณผ ๋ ํผ๋ฐ์ค๊ฐ ์ค๋น๋์์ต๋๋ค.
๋ค์ ๊ธ์์๋ ์ด ์ปค๋งจ๋ ๋ผ์ธ ์ง์์ ํ์ฉํด ๋ง์ถคํ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃฐ ์์ ์ ๋๋ค. Dockerfile์ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๊ณ ํจ์จ์ ์ธ ๋ช ๋ น ์์ฑ ์ฐ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค!