๐Ÿ› ๏ธ Docker ๋ช…๋ น ๋งˆ์Šคํ„ฐํ•˜๊ธฐ: ๋‹น์‹ ์˜ ์ผ์ผ ํˆดํ‚ท

๋ฐœํ–‰: (2025๋…„ 12์›” 8์ผ ์˜คํ›„ 12:13 GMT+9)
6 min read
์›๋ฌธ: Dev.to

Source: Dev.to

Cover image for ๐Ÿ› ๏ธ Mastering Docker Commands: Your Daily Toolkit

Docker ์•„ํ‚คํ…์ฒ˜์™€ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๋ฌด์—‡, ์™œ, ์–ด๋–ป๊ฒŒ๋ฅผ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋งค์ผ Docker์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋ช…๋ น๋“ค์„ ์‹ค์ „์—์„œ ํ™œ์šฉํ•ด ๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, Docker ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๋ช…๋ น๋“ค์„ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” Docker ์‹œ์Šคํ…œ ๋ฐ ์ •๋ณด ๋ช…๋ น

๋ช…๋ น์„ค๋ช…์˜ˆ์‹œ
docker --versionDocker ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.docker --version
docker infoDocker ์„ค์น˜์— ๋Œ€ํ•œ ์‹œ์Šคํ…œ ์ „์ฒด ์ •๋ณด๋ฅผ ์ž์„ธํžˆ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.docker info
docker system dfDocker ๊ฐ์ฒด(์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ)์˜ ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.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 inspectDocker ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ƒ์„ธ 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์˜ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ํšจ์œจ์ ์ธ ๋ช…๋ น ์ž‘์„ฑ ์—ฐ์Šต์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

์ปจํ…Œ์ด๋„ˆ์—์„œ WebAssembly๊นŒ์ง€: ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜์˜ ๋‹ค์Œ ์ง„ํ™”

Docker๊ฐ€ ์ฒ˜์Œ ๋“ฑ์žฅํ–ˆ์„ ๋•Œ, ๋งˆ๋ฒ•๊ณผ๋„ ๊ฐ™์€ ๋А๋‚Œ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ๋•Œ ํ•€ํ…Œํฌ ์Šคํƒ€ํŠธ์—…์—์„œ ์ผํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ์ปจํ…Œ์ด๋„ˆ๋Š” ์ฆ‰์‹œ ์•…๋ช… ๋†’์€ โ€œ๋‚ด ๋จธ์‹ ์—์„œ๋Š” ๋™์ž‘ํ•œ๋‹คโ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

DevOps๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์†Œ๊ฐœ ์˜จ๋ผ์ธ์—์„œ โ€œWhat is DevOps?โ€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋ณต์žกํ•œ ์ •์˜๊ฐ€ ๋งŽ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” DevOps๋ฅผ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. DevOps = De...

์™„์ „ ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Blue-Green Deployment์™€ Nginx ๋ฐ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ๊ฐ€์ด๋“œ

์†Œ๊ฐœ ์ด ํฌ๊ด„์ ์ธ ๊ฐ€์ด๋“œ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. Blueโ€‘Green Deployment๋Š” Netflix, Amazon, Facebook๊ณผ ๊ฐ™์€ ๊ธฐ์—…๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐฐํฌ ์ „๋žต์ž…๋‹ˆ๋‹ค...

Docker ์ด๋ฏธ์ง€ ์ถ•์†Œ ๋ฐ ๋ณด์•ˆ์„ ์œ„ํ•œ ์ƒ์œ„ 5๊ฐ€์ง€ ํŒ

๋‚˜๋Š” ๊ณผ๊ฑฐ์— GB ๋‹จ์œ„๋กœ ํฌ๊ธฐ๊ฐ€ ๋งค์šฐ ํฐ Docker ์ด๋ฏธ์ง€์— ์•ˆ์ฃผํ•˜๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๊ณ , ์ด๋Š” ๋ฐฐํฌ ์†๋„์™€ c...