[๐Ÿ‹Docker] ๊ธฐ๋ณธ ๊ฐœ๋… (Docker Image, Container, System Usage)

vincaยท2023๋…„ 11์›” 30์ผ
0
post-thumbnail

๋„์ปค๋Š” ์‚ฌ์‹ค ์ƒ๋‹นํžˆ ๋„“์€ ๊ฐœ๋…์ด๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์ด๊ธฐ๋„ ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ด๊ธฐ๋„ ํ•˜๋‹ค.

์ฆ‰, ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„์ปค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ฌด์—‡์ผ๊นŒ?

์ปจํ…Œ์ด๋„ˆ

์ปจํ…Œ์ด๋„ˆ๋ž€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SW)์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ, ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด OS์— ์ข…์† ๋ฐ›์ง€ ์•Š๊ณ , ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„์ปค์˜ ์—ญํ• ์€?

๋„์ปค๋Š” ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๋„๊ตฌ์ด์ž ๊ด€๋ฆฌํ•ด ์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.
์ด ๊ณ ๋ž˜๊ฐ€ ๋„์ปค ์—”์ง„(์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„)์ด๊ณ  ์œ„์— ๋„ค๋ชจ๋‚œ ๊ฒƒ๋“ค์ด ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค.

๋„์ปค ์ด๋ฏธ์ง€

๋„์ปค ์ด๋ฏธ์ง€๋ž€ ์„œ๋น„์Šค ์šด์˜์— ํ•„์š”ํ•œ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ, ์†Œ์Šค ์ฝ”๋“œ, ์ปดํŒŒ์ผ๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ๋ฌถ์€ ํ˜•ํƒœ์ด๋‹ค.

์ด๋Ÿฌํ•œ ๋„์ปค ์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด์— ๋“ค์–ด๊ฐ€๋Š” ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์‚ฌ์šฉ ๋œ๋‹ค.

๋„์ปค๋กœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋ฐฐํฌ๋œ ์‹ค์ œ ์ด๋ฏธ์ง€์˜ ์ •๋ณด ํ™•์ธํ•ด๋ณด์ž.

์ด๋ฏธ์ง€ ์ •๋ณด ํ™•์ธ

# ์šฐ๋ถ„ํˆฌ ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰
docker run -it --name=temp_ubuntu ubuntu:latest /bin/bash
# ์ƒ์„ฑ๋œ ๋„์ปค ์ด๋ฏธ์ง€์˜ ์ƒ์ œ ์ •๋ณด ํ™•์ธ
docker image inspect ubuntu

๋„์ปค ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰

๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ GUI / CLI ๋‘˜ ๋‹ค ๊ฐ€๋Šฅํ•˜๋‹ค.

1. ๋„์ปค ๋ฐ์Šคํฌํ†ฑ์—์„œ ๊ฒ€์ƒ‰

๋„์ปค ๋ฐ์Šคํฌํ†ฑ์„ ์„ค์น˜ํ•˜๊ณ  ๋„์ปค ๋ฐ์Šคํฌํ†ฑ์˜ ๋ฉ”์ธํ™”๋ฉด์˜ ๋งจ ์œ„์— ๊ฒ€์ƒ‰์ฐฝ์„ ํ†ตํ•ด์„œ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€๋Š” PULL ๋˜๋Š” RUN์„ ํ†ตํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์˜ค๊ฑฐ๋‚˜, ์ฆ‰์‹œ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

2. CLI์—์„œ Docker Search ๋ช…๋ น์–ด ์‚ฌ์šฉ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธ์ ์œผ๋กœ search ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•„ํ„ฐ๋ฅผ ๊ฑธ์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

# ์ „์ฒด ubuntu ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰
docker search ubuntu
# ๊ณต์‹ ubuntu ์ด๋ฏธ์ง€๋งŒ ๊ฒ€์ƒ‰
docker search ubuntu --filter is-official=true
# star ์ˆ˜๊ฐ€ 100๊ฐœ ์ด์ƒ์ธ ubuntu๋งŒ ๊ฒ€์ƒ‰
docker search ubuntu --filter is-official=true --filter stars=100

๋„์ปค ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ

pull

์ฐพ์€ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋„์ปค ํ—ˆ๋ธŒ์—์„œ pull ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๋‚ด ๋กœ์ปฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

docker image pull nginx:latest

run

run ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ด(pull)๊ณผ ๋™์‹œ์— ์ด๋ฅผ ๋ฐฐํฌํ•˜๊ณ , ์‹คํ–‰, ์ ‘์†๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค.

docker container run -it --name "ubt_test1" ubuntu:lastest /bin/bash 

ls ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฆฌ๋ˆ…์Šค์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ๋“ค์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์‹ค์ œ "๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ"์ด ์ž˜ ๋ฐฐํฌ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„์ปค ๋ฐ์Šคํฌํ†ฑ์—์„œ์˜ ์‹ค์ œ ๋ฐฐํฌ๋œ ์ด๋ฏธ์ง€ ํ™•์ธ

์ด์ฒ˜๋Ÿผ ์ปจํ…Œ์ด๋„ˆ์—๋Š” ubuntu์™€ ๊ฐ™์€ OS ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ nginx๋‚˜ golang๋“ฑ ๋‹ค๋ฅธ ์›น ํ™˜๊ฒฝ์˜ ์ด๋ฏธ์ง€ ๋˜ํ•œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๐ŸŽˆTip
๋‹ค๋งŒ, ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋Š” ์‹ค์ œ๋กœ ์šด์˜์ฒด์ œ๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ธฐ์— ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ์˜ OS ์ปค๋„์„ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ์ผ๋ฐ˜์ ์ธ ๊ฐ€์ƒํ™”๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ  ๊ฒฝ๋Ÿ‰ํ™” ๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ธ๋ฐ, ๋งŒ์•ฝ ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์— WSL์ด ์„ค์น˜๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์šฐ๋ถ„ํˆฌ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ด€๋ จ ๊ธ€

๋„์ปค ์ด๋ฏธ์ง€ ํ™•์ธ

# ๋กœ์ปฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ €์žฅ๋œ ๋„์ปค ์ด๋ฏธ์ง€ ํ™•์ธ
docker images
# ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ
docker ps -a

์ด๋ฏธ์ง€ ์‚ญ์ œ

์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด๋Š” rm์„ํ†ตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹จ,์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€ ์‚ญ์ œ๋ฅผ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ธฐ์กด์— ์ด๋ฏธ ์ •์ง€๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

docker image rm [OPTIONS] IMAGE [IMAGE ์ด๋ฆ„]
docker image rm [OPTIONS] IMAGE [IMAGE AMI ID]

์ด์™€ ๊ฐ™์ด ์ด๋ฏธ์ง€ AMI ID๋ฅผ ํ†ตํ•ด์„œ๋„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

prune -a : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด๋ฏธ์ง€ ์ œ๊ฑฐ

docker image prune -a

image prune -a ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ด์ง€ ์•Š์€ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ „์ฒด ๋‹ค ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ์Šคํ…œ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ

docker system df

Docker ์‹œ์Šคํ…œ์˜ ์ „์ฒด ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰ ์ •๋ณด๋ฅผ ์š”์•ฝํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค. ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ, ์บ์‹œ์˜ ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ์šฉ๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ์‹œ์Šคํ…œ์˜ ์šฉ๋Ÿ‰์ด ์ฐจ์ง€๋์„ ๋•Œ, ํ˜„์žฌ ์šฉ๋Ÿ‰์ด ์–ผ๋งŒํผ ๋‚จ์•˜๊ณ , ๊ฐ ์š”์†Œ๊ฐ€ ์–ด๋Š ์ •๋„์˜ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋Š” ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ƒ์„ธ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ

-v ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋”์šฑ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

docker system df -v

  • IMAGE: ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„
  • CONTAINER: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„
  • LOCAL VOLUMES: ๋กœ์ปฌ ๋ณผ๋ฅจ์ด ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„
  • BUILD CACHE: ๋นŒ๋“œ ์บ์‹œ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„

์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ž์› ์ œ๊ฑฐ

docker system prune

docker system prune์€ Docker์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ž์›๋“ค์„ ์ •๋ฆฌํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ํ•œ๋ฒˆ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ž์›๋“ค์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ชจ๋“  ์ค‘์ง€๋œ ์ปจํ…Œ์ด๋„ˆ๋“ค
  • ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋„คํŠธ์›Œํฌ๋“ค
  • ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”(dangling) ๋ชจ๋“  ์ด๋ฏธ์ง€๋“ค
  • ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”(dangling) ๋ชจ๋“  ๋นŒ๋“œ ์บ์‹œ๋“ค
profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€