Docker

Docker ํ•ต์‹ฌ ๋ช…๋ น์–ด ๋ฐ ์˜๋ฏธ ์ •๋ฆฌ

9taetae9 2025. 4. 6. 00:24
728x90

๊ธฐ๋ณธ ๋ช…๋ น์–ด

  1. docker run - '์‹คํ–‰ํ•˜๋‹ค'
    • ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹œ์ž‘
    • ์˜ˆ: docker run nginx - Nginx ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰
  2. docker pull - '๋‹น๊ธฐ๋‹ค/๊ฐ€์ ธ์˜ค๋‹ค'
    • Docker Hub ๋˜๋Š” ๋‹ค๋ฅธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋กœ์ปฌ ์‹œ์Šคํ…œ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ
    • ์˜ˆ: docker pull ubuntu - Ubuntu ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ
  3. docker push - '๋ฐ€๋‹ค/์˜ฌ๋ฆฌ๋‹ค'
    • ๋กœ์ปฌ์—์„œ ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ Docker Hub๋‚˜ ๋‹ค๋ฅธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์—…๋กœ๋“œ
    • ์˜ˆ: docker push myusername/myapp - ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์—…๋กœ๋“œ
  4. docker build - '๊ตฌ์ถ•ํ•˜๋‹ค'
    • Dockerfile์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ Docker ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ
    • ์˜ˆ: docker build -t myapp . - ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ Dockerfile๋กœ 'myapp' ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ

๊ธฐ๋ณธ ๋ช…๋ น์–ด(์‘์šฉ)

  1. docker run --rm - '์‹คํ–‰ ํ›„ ์ž๋™ ์‚ญ์ œ'
    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ์ž๋™์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œ
    • ์˜ˆ: docker run --rm nginx - Nginx ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒ ์‹œ ์ž๋™ ์‚ญ์ œ
  2. docker run -v - '๋ณผ๋ฅจ ๋งˆ์šดํŠธ'
    • ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์™€ ์—ฐ๊ฒฐ
    • ์˜ˆ: docker run -v /host/path:/container/path nginx - ํ˜ธ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธ
  3. docker run -p - 'ํฌํŠธ ๋งคํ•‘'
    • ํ˜ธ์ŠคํŠธ์˜ ํฌํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐ
    • ์˜ˆ: docker run -p 8080:80 nginx - ํ˜ธ์ŠคํŠธ์˜ 8080 ํฌํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ 80 ํฌํŠธ์— ์—ฐ๊ฒฐ
  4. docker build --no-cache - '์บ์‹œ ์—†์ด ๋นŒ๋“œ'
    • ์ด์ „ ๋นŒ๋“œ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ
    • ์˜ˆ: docker build --no-cache -t myapp . - ์บ์‹œ ์—†์ด ์ƒˆ๋กœ ๋นŒ๋“œ

์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ

  1. docker ps - 'process status'์˜ ์•ฝ์ž
    • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก์„ ํ‘œ์‹œ
    • ์˜ˆ: docker ps -a - ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ(์ค‘์ง€๋œ ๊ฒƒ ํฌํ•จ)๋ฅผ ๋ณด์—ฌ์คŒ
  2. docker stop - '์ค‘์ง€ํ•˜๋‹ค'
    • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€
    • ์˜ˆ: docker stop my-container - 'my-container'๋ฅผ ์ค‘์ง€
  3. docker start - '์‹œ์ž‘ํ•˜๋‹ค'
    • ์ค‘์ง€๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘
    • ์˜ˆ: docker start my-container - ์ค‘์ง€๋œ 'my-container'๋ฅผ ์‹œ์ž‘
  4. docker restart - '์žฌ์‹œ์ž‘ํ•˜๋‹ค'
    • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘
    • ์˜ˆ: docker restart my-container - 'my-container'๋ฅผ ์žฌ์‹œ์ž‘
  5. docker exec - 'execute'์˜ ์•ฝ์ž, '์‹คํ–‰ํ•˜๋‹ค'
    • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด
    • ์˜ˆ: docker exec -it my-container bash - 'my-container' ๋‚ด์—์„œ bash ์…ธ์„ ์‹คํ–‰
    • -it - ๋‘ ๊ฐœ์˜ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๊ฒฐํ•ฉ๋œ ํ˜•ํƒœ
      • -i (interactive, ๋Œ€ํ™”ํ˜•): ํ‘œ์ค€ ์ž…๋ ฅ(STDIN)์„ ์—ด์–ด๋‘์–ด ํ‚ค๋ณด๋“œ๋กœ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ
      • -t (tty): ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„์„ ํ• ๋‹นํ•˜์—ฌ ๋ช…๋ น์–ด ํžˆ์Šคํ† ๋ฆฌ, ์ž๋™ ์™„์„ฑ, ํ…์ŠคํŠธ ํŽธ์ง‘ ๋“ฑ ์ผ๋ฐ˜์ ์ธ ํ„ฐ๋ฏธ๋„ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  6. docker rm - 'remove'์˜ ์•ฝ์ž, '์ œ๊ฑฐํ•˜๋‹ค'
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œ
    • ์˜ˆ: docker rm my-container - 'my-container'๋ฅผ ์‚ญ์ œ

์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ(์‹ฌํ™”)

  1. docker stats - 'ํ†ต๊ณ„ ๋ณด๊ธฐ'
    • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰(CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ) ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ
    • ์˜ˆ: docker stats - ๋ชจ๋“  ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰ ํ‘œ์‹œ
  2. docker inspect - '๊ฒ€์‚ฌํ•˜๋‹ค'
    • ์ปจํ…Œ์ด๋„ˆ๋‚˜ ์ด๋ฏธ์ง€์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ JSON ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ
    • ์˜ˆ: docker inspect my-container - ์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ ๋ชจ๋“  ์„ค์ • ํ™•์ธ
  3. docker cp - 'copy'์˜ ์•ฝ์ž, '๋ณต์‚ฌํ•˜๋‹ค'
    • ์ปจํ…Œ์ด๋„ˆ์™€ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ๊ฐ„ ํŒŒ์ผ ๋ณต์‚ฌ
    • ์˜ˆ: docker cp my-container:/app/data.txt ./local/ - ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ˜ธ์ŠคํŠธ๋กœ ํŒŒ์ผ ๋ณต์‚ฌ
  4. docker commit
    • ์ปจํ…Œ์ด๋„ˆ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ƒˆ ์ด๋ฏธ์ง€๋กœ ์ €์žฅ
    • ์˜ˆ: docker commit my-container my-new-image - ๋ณ€๊ฒฝ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ ์ด๋ฏธ์ง€๋กœ ์ƒ์„ฑ
  5. docker update 
    • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ์ž์› ์ œํ•œ ์„ค์ •์„ ๋ณ€๊ฒฝ
    • ์˜ˆ: docker update --memory 2G my-container - ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์„ 2G๋กœ ๋ณ€๊ฒฝ
  6. docker diff - 'difference'์˜ ์•ฝ์ž, '์ฐจ์ด์ '
    • ์ปจํ…Œ์ด๋„ˆ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ‘œ์‹œ
    • ์˜ˆ: docker diff my-container - ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋œ ์ดํ›„ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ๋ชฉ๋ก ํ‘œ์‹œ

์ด๋ฏธ์ง€ ๊ด€๋ฆฌ

  1. docker images - '์ด๋ฏธ์ง€๋“ค'
    • ๋กœ์ปฌ์— ์ €์žฅ๋œ Docker ์ด๋ฏธ์ง€ ๋ชฉ๋ก์„ ํ‘œ์‹œ
    • ์˜ˆ: docker images - ๋ชจ๋“  ๋กœ์ปฌ ์ด๋ฏธ์ง€๋ฅผ ๋‚˜์—ด
  2. docker rmi - 'remove image'์˜ ์•ฝ์ž
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œ
    • ์˜ˆ: docker rmi nginx - nginx ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œ
  3. docker tag - 'ํƒœ๊ทธ ๋ถ™์ด๋‹ค'
    • ์ด๋ฏธ์ง€์— ํƒœ๊ทธ๋ฅผ ์ง€์ •(์ด๋ฆ„๊ณผ ๋ฒ„์ „ ๋“ฑ)
    • ์˜ˆ: docker tag myapp myusername/myapp:1.0 - myapp ์ด๋ฏธ์ง€์— ์ƒˆ ํƒœ๊ทธ๋ฅผ ๋ถ€์—ฌ

์ด๋ฏธ์ง€ ๊ด€๋ฆฌ(์‹ฌํ™”)

  1. docker history
    • ์ด๋ฏธ์ง€์˜ ๋ ˆ์ด์–ด ํžˆ์Šคํ† ๋ฆฌ ํ‘œ์‹œ
    • ์˜ˆ: docker history nginx - nginx ์ด๋ฏธ์ง€์˜ ๊ฐ ๋ ˆ์ด์–ด ์ƒ์„ฑ ๊ณผ์ • ํ™•์ธ
  2. docker save
    • ์ด๋ฏธ์ง€๋ฅผ tar ํŒŒ์ผ๋กœ ์ €์žฅํ•˜์—ฌ ๋ฐฑ์—…
    • ์˜ˆ: docker save -o nginx.tar nginx - nginx ์ด๋ฏธ์ง€๋ฅผ tar ํŒŒ์ผ๋กœ ์ €์žฅ
  3. docker load - '๋ถˆ๋Ÿฌ์˜ค๋‹ค'
    • ์ €์žฅ๋œ tar ํŒŒ์ผ์—์„œ ์ด๋ฏธ์ง€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
    • ์˜ˆ: docker load -i nginx.tar - tar ํŒŒ์ผ์—์„œ ์ด๋ฏธ์ง€ ๋กœ๋“œ
  4. docker prune - '์ •๋ฆฌํ•˜๋‹ค'
    • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” Docker ๊ฐ์ฒด(์ปจํ…Œ์ด๋„ˆ, ์ด๋ฏธ์ง€, ๋ณผ๋ฅจ ๋“ฑ)๋ฅผ ์ •๋ฆฌ
    • ์˜ˆ: docker image prune -a - ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€ ์‚ญ์ œ
  5. docker buildx - 'ํ™•์žฅ ๋นŒ๋“œ'
    • ๋‹ค์ค‘ ์•„ํ‚คํ…์ฒ˜ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๊ธฐ๋Šฅ
    • ์˜ˆ: docker buildx build --platform linux/amd64,linux/arm64 -t myapp . - ์—ฌ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜์šฉ ์ด๋ฏธ์ง€ ๋นŒ๋“œ

์‹œ์Šคํ…œ ๊ด€๋ฆฌ

  1. docker info
    • Docker ์‹œ์Šคํ…œ ์ „์ฒด ์ •๋ณด๋ฅผ ํ‘œ์‹œ
    • ์˜ˆ: docker info - Docker ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์คŒ
  2. docker logs
    • ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ ์ถœ๋ ฅ์„ ํ‘œ์‹œ
    • ์˜ˆ: docker logs my-container - 'my-container'์˜ ๋กœ๊ทธ๋ฅผ ๋ณด์—ฌ์คŒ
  3. docker network
    • Docker ๋„คํŠธ์›Œํฌ๋ฅผ ๊ด€๋ฆฌ
    • ์˜ˆ: docker network create my-network - 'my-network'๋ผ๋Š” ์ƒˆ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑ
  4. docker volume - ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ
    • Docker ๋ณผ๋ฅจ(๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ)์„ ๊ด€๋ฆฌ
    • ์˜ˆ: docker volume create my-volume - 'my-volume'์ด๋ผ๋Š” ์ƒˆ ๋ณผ๋ฅจ์„ ์ƒ์„ฑ
  5. docker-compose - '๊ตฌ์„ฑํ•˜๋‹ค'
    • ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ์„ฑ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰
    • ์˜ˆ: docker-compose up - docker-compose.yml ํŒŒ์ผ์— ์ •์˜๋œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘

์‹œ์Šคํ…œ ๊ด€๋ฆฌ(์‹ฌํ™”)

 

  1. docker context
    • ์—ฌ๋Ÿฌ Docker ํ˜ธ์ŠคํŠธ ๊ฐ„ ์ „ํ™˜์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๊ด€๋ฆฌ
    • ์˜ˆ: docker context use production - ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ ์ปจํ…์ŠคํŠธ ์ „ํ™˜
  2. docker events
    • Docker ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ํ‘œ์‹œ
    • ์˜ˆ: docker events - ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘/์ค‘์ง€, ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋“ฑ์˜ ์ด๋ฒคํŠธ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
  3. docker system df - '๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰'
    • Docker๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„ ํ™•์ธ
    • ์˜ˆ: docker system df - ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„ ํ‘œ์‹œ
  4. docker network inspect - '๋„คํŠธ์›Œํฌ ๊ฒ€์‚ฌ'
    • Docker ๋„คํŠธ์›Œํฌ์˜ ์ƒ์„ธ ์ •๋ณด ํ™•์ธ
    • ์˜ˆ: docker network inspect bridge - ๊ธฐ๋ณธ ๋ธŒ๋ฆฌ์ง€ ๋„คํŠธ์›Œํฌ์˜ ์ƒ์„ธ ์ •๋ณด ํ™•์ธ
  5. docker secret
    • ๋น„๋ฐ€๋ฒˆํ˜ธ, API ํ‚ค ๋“ฑ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌ
    • ์˜ˆ: docker secret create db_password password.txt - ๋น„๋ฐ€ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

 

728x90