2. docker-cli

Docker CLI๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.

Docker CLI ์ •๋ฆฌ

  • docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    • -a, --all-tags: ์ด๋ฏธ์ง€์˜ ๋ชจ๋“  ํƒœ๊ทธ ๋‹ค์šด๋กœ๋“œ

    • --disable-content-trust: ์ด๋ฏธ์ง€์˜ content trust ๋น„ํ™œ์„ฑํ™”

    • --platform: ํŠน์ • ํ”Œ๋žซํผ์˜ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ

    • docker pull ubuntu

    • docker pull ubuntu:20.04

    • docker pull --platform linux/arm64 ubuntu

  • docker images

  • docker rmi [image id or name]

  • docker build [OPTIONS] PATH | URL | -

    • -f, --file: ์‚ฌ์šฉํ•  Dockerfile์˜ ๊ฒฝ๋กœ ์ง€์ •. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ Dockerfile ์‚ฌ์šฉ

    • --build-arg: ๋นŒ๋“œ ์‹œ์— ์‚ฌ์šฉํ•  ๋นŒ๋“œ ์ธ์ˆ˜ ์„ค์ •

    • -t, --tag: ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€์— ํƒœ๊ทธ ์ง€์ •(<์ด๋ฏธ์ง€_์ด๋ฆ„>:<ํƒœ๊ทธ> ํ˜•์‹์œผ๋กœ ์ง€์ •)

    • --target: ๋ฉ€ํ‹ฐ์Šคํ…Œ์ด์ง€ ๋นŒ๋“œ์—์„œ ๋ชฉํ‘œ ๋นŒ๋“œ ์Šคํ…Œ์ด์ง€ ์ง€์ •

    • --network: ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์ง€์ •

    • --compress: ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ „์†กํ•  ๋•Œ ์••์ถ• ์‚ฌ์šฉ

    • --progress: ๋นŒ๋“œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ• ์ง€์ •

    • --no-cache: ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋นŒ๋“œ๋ฅผ ์ง„ํ–‰

    • --pull: ๋นŒ๋“œ ์ „์— ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ํ•ญ์ƒ ์—…๋ฐ์ดํŠธ

    • docker build -t node-local:0.1 -f ./docker/Dockerfile.local .

  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    • -d, --detach: ์ปจํ…Œ์ด๋„ˆ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰

    • --name: ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์ง€์ •

    • -p, --publish: ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํฌํŠธ ๋งคํ•‘ ์„ค์ •(ํฌํŠธํฌ์›Œ๋”ฉ)

    • -v, --volume: ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ

    • -e, --env: ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

    • --network: ์ปจํ…Œ์ด๋„ˆ ํŠน์ • ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ

    • --rm: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ์‚ญ์ œ

    • -it: ๋Œ€ํ™”ํ˜• ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰

    • --restart: ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ ์ •์ฑ… ์„ค์ •

    • --privileged: ์ปจํ…Œ์ด๋„ˆ์— ๋ชจ๋“  ๊ถŒํ•œ ๋ถ€์—ฌ

    • docker run -it --name backend-local -p 3000:3000 node-local:0.1

    • docker run -d --name api-local -p 3000:3000 node-local

  • docker rm [container id or name]

  • docker start [container id or name]

  • docker stop [container id or name]

  • docker ps

  • docker ps -a

  • docker ps -q

  • docker ps -a -q

  • docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

    • -d, --detach: ๋ช…๋ น์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰

    • -i, --interactive: ๋ช…๋ น์˜ ํ‘œ์ค€ ์ž…๋ ฅ ์—ฐ๊ฒฐ

    • -t, --tty: ์˜์‚ฌ TTY๋ฅผ ํ• ๋‹นํ•˜๊ณ , ๋ช…๋ น์„ ์ƒํ˜ธ์ž‘์šฉ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก

    • --user: ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์‚ฌ์šฉ์ž ์ง€์ •

    • --privileged: ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํŠน๊ถŒ ๋ชจ๋“œ๋กœ ์‹คํ–‰

    • --workdir: ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ •

    • docker exec -it my-container bash

    • docker exec -d my-container ls -l

    • docker exec --user myuser my-container whoami

    • docker exec --workdir /app my-container ls -l

    • docker exec -it node-local bash

    • docker exec -it node-local /bin/sh

  • docker network ls

  • docker network create my-network

  • docker network inspect my-network

  • docker network rm my-network

  • docker image prune: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด๋ฏธ์ง€ ์‚ญ์ œ

  • docker container prune: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

  • docker volume prune: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณผ๋ฅจ ์‚ญ์ œ

  • docker network prune: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋„คํŠธ์›Œํฌ ์‚ญ์ œ

  • docker system prune: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด๋ฏธ์ง€, ๋ณผ๋ฅจ, ๋„คํŠธ์›Œํฌ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

  • docker system prune -a: ๋ชจ๋“  ์ด๋ฏธ์ง€์™€ ์ค‘๋‹จ๋œ ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œ

  • docker system prune -f: ๊ฐ•์ œ๋กœ ๋ชจ๋‘ ์‚ญ์ œ

  • docker system prune --volume: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณผ๋ฅจ ์‚ญ์ œ


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

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

-a, --all-tags: ์ด๋ฏธ์ง€์˜ ๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
--disable-content-trust: ์ด๋ฏธ์ง€์˜ content trust๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
--platform: ํŠน์ • ํ”Œ๋žซํผ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

docker pull ubuntu
docker pull ubuntu:20.04
docker pull --platform linux/arm64 ubuntu

docker images: ๋„์ปค ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ

docker images

docker build - ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ

docker build [OPTIONS] PATH | URL | -

-f, --file:
  - ์‚ฌ์šฉํ•  Dockerfile์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” Dockerfil ์‚ฌ์šฉ

--build-arg: ๋นŒ๋“œ ์‹œ์— ์‚ฌ์šฉํ•  ๋นŒ๋“œ ์ธ์ˆ˜๋ฅผ ์„ค์ •

-t, --tag: ์ƒ์„ฑ๋˜๋Š” ์ด๋ฏธ์ง€์— ํƒœ๊ทธ๋ฅผ ์ง€์ •(<์ด๋ฏธ์ง€_์ด๋ฆ„>:<ํƒœ๊ทธ> ํ˜•์‹์œผ๋กœ ์ง€์ •)

--target: ๋ฉ€ํ‹ฐ์Šคํ…Œ์ด์ง€ ๋นŒ๋“œ์—์„œ ๋ชฉํ‘œ ๋นŒ๋“œ ์Šคํ…Œ์ด์ง€๋ฅผ ์ง€์ •

--network: ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ์ง€์ •

--compress: ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ „์†กํ•  ๋•Œ ์••์ถ• ์‚ฌ์šฉ

--progress: ๋นŒ๋“œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ• ์ง€์ •

--no-cache: ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋นŒ๋“œ๋ฅผ ์ง„ํ–‰

--pull: ๋นŒ๋“œ ์ „์— ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ํ•ญ์ƒ ์—…๋ฐ์ดํŠธ

docker build -t node-local:0.1 -f ./docker/Dockerfile.local .

docker rmi: ๋„์ปค ์ด๋ฏธ์ง€ ์‚ญ์ œ(์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€ ์ƒํƒœ์—์„œ)

docker rmi <image id or name>

Docker container

docker run: ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d, --detach: ์ปจํ…Œ์ด๋„ˆ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
--name: ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์ง€์ •
-p, --publish: ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํฌํŠธ ๋งคํ•‘์„ ์„ค์ •(ํฌํŠธํฌ์›Œ๋”ฉ)
-v, --volume: ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ
-e, --env: ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
--network: ์ปจํ…Œ์ด๋„ˆ ํŠน์ • ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ
--rm: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ์‚ญ์ œ
-it: ๋Œ€ํ™”ํ˜• ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰
--restart: ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ ์ •์ฑ… ์„ค์ •
--privileged: ์ปจํ…Œ์ด๋„ˆ์— ๋ชจ๋“  ๊ถŒํ•œ ๋ถ€์—ฌ

docker run -it --name backend-local -p 3000:3000 node-local:0.1
docker run -d --name api-local -p 3000:3000 node-local

docker rm: ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

docker rm <container id or name>

docker ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰/์ค‘์ง€

docker start <container id or name>
docker stop <container id or name>

docker ์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์ŠคํŠธ ํ™•์ธ

docker ps
docker ps -a
docker ps -q
docker ps -a -q

docker exec: ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ถ”๊ฐ€์ ์ธ ์ž‘์—… ๋˜๋Š” ๋””๋ฒ„๊น…

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

-d, --detach: ๋ช…๋ น์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰
-i, --interactive: ๋ช…๋ น์˜ ํ‘œ์ค€ ์ž…๋ ฅ์„ ์—ฐ๊ฒฐ
-t, --tty: ์˜์‚ฌ TTY๋ฅผ ํ• ๋‹นํ•˜๊ณ , ๋ช…๋ น์„ ์ƒํ˜ธ์ž‘์šฉ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก
--user: ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์‚ฌ์šฉ์ž๋ฅผ ์ง€์ •
--privileged: ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํŠน๊ถŒ ๋ชจ๋“œ๋กœ ์‹คํ–‰
--workdir: ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •

# ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ Bash ์…ธ ์‹คํ–‰ํ•˜๊ธฐ
docker exec -it my-container bash

# ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ช…๋ น ์‹คํ–‰ํ•˜๊ธฐ
docker exec -d my-container ls -l

# ํŠน์ • ์‚ฌ์šฉ์ž๋กœ ๋ช…๋ น ์‹คํ–‰ํ•˜๊ธฐ
docker exec --user myuser my-container whoami

# ํŠน์ • ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ช…๋ น ์‹คํ–‰ํ•˜๊ธฐ
docker exec --workdir /app my-container ls -l

# ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
docker exec -it node-local bash
docker exec -it node-local /bin/sh

Docker network

docker network ls
docker network create my-network
docker network inspect my-network
docker networkd rm my-network

Docker [image/container/volume/network] prune

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋ช…๋ น์–ด

  • docker system prune: ๋„์ปค ์‹œ์Šคํ…œ ์ „์ฒด ์ •๋ฆฌ

    • docker system prune -a

    • docker system prune -f

    • docker system prune --volumes

  • docker container prune

  • docker image prune

  • docker volume prune

  • docker network prune

docker top [container id or name]

์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅ

docker ps ์˜ ์˜ต์…˜๋“ค

  • -a: ์ข…๋ฃŒ๋œ ์ปจํ…Œ์ด๋„ˆ๋„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ‘œ์‹œ

  • -f, --filter:

    • ์ง€์ •๋œ ์กฐ๊ฑด์— ๋งž๋Š” ์ปจํ…Œ์ด๋„ˆ๋งŒ ํ‘œ์‹œ

    • ์˜ˆ๋ฅผ ๋“ค์–ด, --filter "status=running"์€ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋งŒ ํ‘œ์‹œ

  • --format

    • ์ถœ๋ ฅ ํ˜•์‹ ์ง€์ •

    • ํŠน์ • ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ •์˜ ํ˜•์‹์„ ์ง€์ •

  • -n, --last n: ์ตœ๊ทผ์— ์ƒ์„ฑ๋œ N๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋งŒ ํ‘œ์‹œ

  • --no-trunc: ์ปจํ…Œ์ด๋„ˆ ID๋ฅผ ์ž๋ฅด์ง€ ์•Š๊ณ  ์ „์ฒด ๊ธธ์ด๋กœ ํ‘œ์‹œ

  • -q, --quiet: ์ปจํ…Œ์ด๋„ˆ ID๋งŒ ํ‘œ์‹œ

  • -s, --size: ์ปจํ…Œ์ด๋„ˆ์˜ ์‚ฌ์šฉ ์ค‘์ธ ๋””์Šคํฌ ๊ณต๊ฐ„ ํฌ๊ธฐ๋ฅผ ํ‘œ์‹œ

  • --help: ๋„์›€๋ง ํ‘œ์‹œ

Last updated