DockerStudy

[[Docker ๐Ÿณ] 2. CLI ์ตํžˆ๊ธฐ

์ด๊ทœํ˜„2026-01-16
[[Docker ๐Ÿณ] 2. CLI ์ตํžˆ๊ธฐ

์ด๋ฏธ์ง€ (Image)

์ด๋ฏธ์ง€(Image) ๋‹ค์šด๋กœ๋“œ

์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•  ๋•Œ Dockerhub๋ผ๋Š” ๊ณณ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด ๋ฐ›๋Š”๋‹ค.

  • ์ตœ์‹ ๋ฒ„์ „ (latest) ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ

    # docker pull ์ด๋ฏธ์ง€๋ช…
    $ docker pull nginx # docker pull nginx:latest์™€ ๋™์ผ
    

  • ํŠน์ • ๋ฒ„์ „ ์ด๋ฏธ์ง€ ํŠน์ • ๋ฒ„์ „์„ ๋‚˜ํƒœ๋Š” ์ด๋ฆ„์„ ํƒœ๊ทธ๋ช…์ด๋ผ๊ณ  ํ•œ๋‹ค. ํƒœ๊ทธ๋ช…์€ dockerhub์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    # docker pull ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ๋ช…
    $ docker pull nginx:stable-perl
    

์ด๋ฏธ์ง€ ์กฐํšŒ / ์‚ญ์ œ

์ด๋ฏธ์ง€ ์กฐํšŒ

[๋‹ค์šด๋ฐ›์€ ๋ชจ๋“  ์ด๋ฏธ์ง€ ์กฐํšŒ]

$ docker image ls

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

[ํŠน์ • ์ด๋ฏธ์ง€ ์‚ญ์ œ]

$ docker image rm [์ด๋ฏธ์ง€ ID ๋˜๋Š” ์ด๋ฏธ์ง€๋ช…]
  • rm : remove์˜ ์•ฝ์ž

  • ์ด๋ฏธ์ง€ ID๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ID ์ „๋ถ€ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์ผ๋ถ€๋งŒ ์ž…๋ ฅํ•ด๋„ ๋œ๋‹ค. (๋‹จ, ID ์ผ๋ถ€๋งŒ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ž…๋ ฅํ•œ ID์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€์ง„ ์ด๋ฏธ์ง€๊ฐ€ ๋‹จ 1๊ฐœ์—ฌ์•ผ ํ•œ๋‹ค.)

[์ค‘์ง€๋œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€ ๊ฐ•์ œ ์‚ญ์ œ]

$ docker image rm -f [์ด๋ฏธ์ง€ ID ๋˜๋Š” ์ด๋ฏธ์ง€๋ช…]
  • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€๋Š” ๊ฐ•์ œ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค.

[์ „์ฒด ์ด๋ฏธ์ง€ ์‚ญ์ œ]

# ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ์ด๋ฏธ์ง€๋งŒ ์ „์ฒด ์‚ญ์ œ
$ docker image rm $(docker images -q)

# ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ํฌํ•จํ•ด์„œ ์ „์ฒด ์ด๋ฏธ์ง€ ์‚ญ์ œ
$ docker image rm -f $(docker images -q)
  • docker images -q : ์‹œ์Šคํ…œ์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€์˜ ID๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ -q ์˜ต์…˜์€ quite๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ƒ์„ธ ์ •๋ณด ๋Œ€์‹ ์— ๊ฐ ์ด๋ฏธ์ง€์˜ ๊ณ ์œ ํ•œ ID๋งŒ ํ‘œ์‹œํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค.

์ปจํ…Œ์ด๋„ˆ (Container)

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

์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด ๋•Œ, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค์ง€๋Š” ์•Š๋Š”๋‹ค. (์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ๋งŒ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž˜ ์—†์–ด์„œ, ์ด ๋ช…๋ น์–ด๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.)

# docker create ์ด๋ฏธ์ง€๋ช…[:ํƒœ๊ทธ๋ช…]
$ docker create nginx

$ docker ps -a # ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

์ •์ง€๋˜์–ด ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.

# docker start ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID]
$ docker start ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID]

$ docker ps # ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ

# Nginx ์ปจํ…Œ์ด๋„ˆ ์ค‘๋‹จ ํ›„ ์‚ญ์ œํ•˜๊ธฐ
$ docker ps # ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ
$ docker stop {nginx๋ฅผ ์‹คํ–‰์‹œํ‚จ Contnainer ID} # ์ปจํ…Œ์ด๋„ˆ ์ค‘๋‹จ
$ docker rm {nginx๋ฅผ ์‹คํ–‰์‹œํ‚จ Contnainer ID} # ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
$ docker image rm nginx # Nginx ์ด๋ฏธ์ง€ ์‚ญ์ œ

์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ + ์‹คํ–‰

์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•œ ๋’ค, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰๊นŒ์ง€ ์‹œํ‚จ๋‹ค. (์ฒ˜์Œ์— ์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ, ์ด ๋ช…๋ น์–ด๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.)

ํฌ๊ทธ๋ผ์šด๋“œ(foreground)์™€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ(background)์˜ ์ฐจ์ด

ํฌ๊ทธ๋ผ์šด๋“œ๋Š” ๋‚ด๊ฐ€ ์‹คํ–‰์‹œํ‚จ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚ด์šฉ์ด ํ™”๋ฉด์—์„œ ์‹คํ–‰๋˜๊ณ  ์ถœ๋ ฅ๋˜๋Š” ์ƒํƒœ๋ฅผ ๋œปํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ํฌ๊ทธ๋ผ์šด๋“œ ์ƒํƒœ์—์„œ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์กฐ์ž‘ํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ๋Š” ๋‚ด๊ฐ€ ์‹คํ–‰์‹œํ‚จ ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™”๋ฉด์—์„œ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Ÿฐ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๋ ฅํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ์กฐ์ž‘ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

[์ปจํ…Œ์ด๋„ˆ๋ฅผ ํฌ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰]

# docker run ์ด๋ฏธ์ง€๋ช…[:ํƒœ๊ทธ๋ช…]
$ docker run nginx # ํฌ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ (์ถ”๊ฐ€์ ์ธ ๋ช…๋ น์–ด ์กฐ์ž‘์„ ํ•  ์ˆ˜๊ฐ€ ์—†์Œ)

# Ctrl + C๋กœ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Œ

  • ๋กœ์ปฌ ํ™˜๊ฒฝ์— ๋‹ค์šด๋ฐ›์€ ์ด๋ฏธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด Dockerhub์œผ๋กœ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด(docker pull)๋ฐ›์•„์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค.
  • Dockerhub์œผ๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กญ๊ฒŒ ๊ฐฑ์‹ ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด docker pull ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค.

[์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰]

# docker run -d ์ด๋ฏธ์ง€๋ช…[:ํƒœ๊ทธ๋ช…]
$ docker run -d nginx

# Nginx ์ปจํ…Œ์ด๋„ˆ ์ค‘๋‹จ ํ›„ ์‚ญ์ œํ•˜๊ธฐ
$ docker ps # ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ
$ docker stop {nginx๋ฅผ ์‹คํ–‰์‹œํ‚จ Contnainer ID} # ์ปจํ…Œ์ด๋„ˆ ์ค‘๋‹จ
$ docker rm {nginx๋ฅผ ์‹คํ–‰์‹œํ‚จ Contnainer ID} # ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
$ docker image rm nginx # Nginx ์ด๋ฏธ์ง€ ์‚ญ์ œ

[์ปจํ…Œ์ด๋„ˆ์— ์ด๋ฆ„ ๋ถ™์—ฌ์„œ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ]

# docker run -d --name [์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„] ์ด๋ฏธ์ง€๋ช…[:ํƒœ๊ทธ๋ช…]
$ docker run -d --name my-web-server nginx

# Nginx ์ปจํ…Œ์ด๋„ˆ ์ค‘๋‹จ ํ›„ ์‚ญ์ œํ•˜๊ธฐ
$ docker ps # ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ
$ docker stop {nginx๋ฅผ ์‹คํ–‰์‹œํ‚จ Contnainer ID} # ์ปจํ…Œ์ด๋„ˆ ์ค‘๋‹จ
$ docker rm {nginx๋ฅผ ์‹คํ–‰์‹œํ‚จ Contnainer ID} # ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
$ docker image rm nginx # Nginx ์ด๋ฏธ์ง€ ์‚ญ์ œ

[ํ˜ธ์ŠคํŠธ์˜ ํฌํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ]

# docker run -d -p [ํ˜ธ์ŠคํŠธ ํฌํŠธ]:[์ปจํ…Œ์ด๋„ˆ ํฌํŠธ] ์ด๋ฏธ์ง€๋ช…[:ํƒœ๊ทธ๋ช…]
$ docker run -d -p 4000:80 nginx

์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ/์ค‘์ง€/์‚ญ์ œ

[์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋“ค๋งŒ ์กฐํšŒ]

$ docker ps
  • ps : process status์˜ ์•ฝ์ž

[๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ (์ž‘๋™ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ + ์ž‘๋™์„ ๋ฉˆ์ถ˜ ์ปจํ…Œ์ด๋„ˆ)]

$ docker ps -a
  • -a : all์˜ ์•ฝ์ž

[์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€]

$ docker stop ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID]
$ docker kill ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID]
  • ์ง‘์— ์žˆ๋Š” ์ปดํ“จํ„ฐ๋กœ ๋น„์œ ํ•˜์ž๋ฉด stop์€ ์‹œ์Šคํ…œ ์ข…๋ฃŒ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ •์ƒ์ ์œผ๋กœ ์ปดํ“จํ„ฐ๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฑธ ์˜๋ฏธํ•˜๊ณ , kill์€ ๋ณธ์ฒด ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฌด์‹ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๋Š” ๊ฑธ ์˜๋ฏธํ•œ๋‹ค.

[์ค‘์ง€๋˜์–ด ์žˆ๋Š” ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ]

$ docker rm ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID]
  • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ค‘์ง€ํ•œ ํ›„์—๋งŒ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

[์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ]

$ docker rm **-f** ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID]

[์ค‘์ง€๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ]

$ docker rm $(docker ps -qa)

[์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ]

$ docker rm **-f** $(docker ps -qa)

์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ์กฐํšŒ

[ํŠน์ • ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชจ๋“  ๋กœ๊ทธ ์กฐํšŒ]

# docker logs [์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ช…]

$ docker run -d nginx
$ docker logs [nginx๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ID]

[์ตœ๊ทผ ๋กœ๊ทธ 10์ค„๋งŒ ์กฐํšŒ]

# dokcer logs --tail [๋กœ๊ทธ ๋๋ถ€ํ„ฐ ํ‘œ์‹œํ•  ์ค„ ์ˆ˜] [์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ช…]
$ dokcer logs --tail 10 [์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ช…]

[๊ธฐ์กด ๋กœ๊ทธ ์กฐํšŒ + ์ƒ์„ฑ๋˜๋Š” ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ]

# docker logs -f [์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ช…]

# Nginx์˜ ์ปจํ…Œ์ด๋„ˆ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์Œ“์ด๋Š” ๋กœ๊ทธ ํ™•์ธํ•˜๊ธฐ
$ docker run -d -p 80:80 nginx
$ docker logs -f
  • -f : follow์˜ ์•ฝ์–ด

[๊ธฐ์กด ๋กœ๊ทธ๋Š” ์กฐํšŒํ•˜์ง€ ์•Š๊ธฐ + ์ƒ์„ฑ๋˜๋Š” ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ]

$ docker logs --tail 0 -f [์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ช…]

์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ ‘์†ํ•˜๊ธฐ

# docker exec -it ์ปจํ…Œ์ด๋„ˆ๋ช…[๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ID] bash

$ docker run -d nginx
$ docker exec -it [Nginx๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ID] bash
$ ls # ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํŒŒ์ผ ์กฐํšŒ
$ cd /etc/nginx
$ cat nginx.conf

  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋‚˜์˜ค๋ ค๋ฉด Ctrl + D ๋˜๋Š” exit์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
  • bash : ์‰˜(Shell)์˜ ์ผ์ข…
  • -it : -it์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. -it์˜ต์…˜์„ ์ ์ง€ ์•Š์œผ๋ฉด ๋ช…๋ น์–ด๋ฅผ 1๋ฒˆ๋งŒ ์‹คํ–‰์‹œํ‚ค๊ณ  ์ข…๋ฃŒ๋˜์–ด ๋ฒ„๋ฆฐ๋‹ค. ์ฆ‰, -it ์˜ต์…˜์„ ์ ์–ด์•ผ ๊ณ„์†ํ•ด์„œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.