Docker

[Docker] 기본 명령어

콩스프 2025. 3. 2. 19:25

1. docker  CLI 기본 형태

docker 명령 옵션 선택자(이미지ID/컨테이너 등)
  • image는 생략 가능

 


 

2. docker search

  • Docker Hub에서 이미지 검색
docker search [OPTIPONS] TERM

 

✅  옵션 

  •  -f, --filter : 출력 결과 필터링
  • --format : Go 템플릿을 활용하여 원하는 형식으로 데이터 출력
  • --limit : 검색 결과의 개수 제한
  • --no-tunc : 출력 내용을 생략하지 않고 전체 표시

 

 📎 예제 

1. 이름에 'busybox'가 포함된 도커 이미지 검색

$ docker search busybox

NAME                             DESCRIPTION                                     STARS     OFFICIAL
busybox                          Busybox base image.                             316       [OK]
progrium/busybox                                                                 50
radial/busyboxplus               Full-chain, Internet enabled, busybox made...   8
odise/busybox-python                                                             2
azukiapp/busybox                 This image is meant to be used as the base...   2
ofayau/busybox-jvm               Prepare busybox to install a 32 bits JVM.       1
shingonoide/archlinux-busybox    Arch Linux, a lightweight and flexible Lin...   1
odise/busybox-curl                                                               1
ofayau/busybox-libc32            Busybox with 32 bits (and 64 bits) libs         1
peelsky/zulu-openjdk-busybox                                                     1
skomma/busybox-data              Docker image suitable for data volume cont...   1
elektritter/busybox-teamspeak    Lightweight teamspeak3 container based on...    1
socketplane/busybox                                                              1
oveits/docker-nginx-busybox      This is a tiny NginX docker image based on...   0
ggtools/busybox-ubuntu           Busybox ubuntu version with extra goodies       0
nikfoundas/busybox-confd         Minimal busybox based distribution of confd     0
openshift/busybox-http-app                                                       0
jllopis/busybox                                                                  0

 


 

3. docker image pull

  • 레지스트리에서 이미지 다운로드
  • image는 생략 가능
docker [image] pull [OPTIONS] NAME[:TAG|@DIGEST]
  • 태그를 지정하지 않으면 기본적으로 :latest 태그가 적용됨
  • 이미지는 여러 개의 계층(layer)으로 구성되어 있어, 다운로드 할 때 여러 계층이 병렬로 가져옴

 

✅  옵션

  • -a, --all-tags : 저장소의 모든 태그 이미지를 다운로드
  • --disable-content-trust (default:true) : 이미지 검증을 생략
  • --platform : 서버가 멀티 플랫폼 지원시 특정 플랫폼 지정
  • -q, --quiet : 출력 내용을 최소화

 

📎  예제

1. 이미지 다운로드

$ docker image pull debian

Using default tag: latest
latest: Pulling from library/debian
e756f3fdd6a3: Pull complete
Digest: sha256:3f1d6c17773a45c97bd8f158d665c9709d7b29ed7917ac934086ad96f92e4510
Status: Downloaded newer image for debian:latest
  • latest 태그를 기본값으로 사용
  • 여러 계층(layer)을 다운로드하여 완성

 

2. 특정 태그가 있는 이미지 다운로드

docker pull ubuntu:24.04
  • ubuntu:24.04이라는 특정 태그의 이미지를 다운로드

 

3. 이미지 다이제스트(고유 식별자)로 다운로드

docker pull ubuntu@sha256:2e863c44b718727c860746568e1d54afd13b2fa71b160f5cd9058fc436217b30
  • 특정 버전에 고정(Pin)하려면 다이제스트를 사용
  • 보안 또는 일관성 유지에 유용
 

4. 특정 레지스트리에서 이미지 다운로드

docker pull myregistry.local:5000/testing/test-image
  • myregistry.local:5000이라는 로컬 프라이빗 레지스트리에서 이미지 가져오기
 

5. 다운로드 취소

  • CTRL + C 를 누르면 중단됨

 


 

4. docker image ls

  • 다운로드 받은 이미지 목록 확인
docker image ls [OPTIONS] [REPOSITORY[:TAG]]
  • Aliases
docker image list
docker images

 

✅  옵션

  •  -a, --all : 모든 이미지 표시 (중간 레이어 포함)
  • --digests : 이미지 다이제스트 표시
  • -f, --filter : 특정 조건을 만족하는 이미지 필터링
  • --format : 특정 조건을 만족하는 이미지 필터링
  • --no-trunc : ID를 생략하지 않고 전체 표시
  • -q, --quiet : 이미지 ID만 출력
  • --tree : 다중 플랫폼 이미지를 트리 형태로 출력

 

📎 예제

1. 가장 최근에 생성된 이미지 목록 조회

$ docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              77af4d6b9913        19 hours ago        1.089 GB
committ                   latest              b6fa739cedf5        19 hours ago        1.089 GB
<none>                    <none>              78a85c484f71        19 hours ago        1.089 GB
docker                    latest              30557a29d5ab        20 hours ago        1.089 GB
<none>                    <none>              5ed6274db6ce        24 hours ago        1.089 GB
postgres                  9                   746b819f315e        4 days ago          213.4 MB
postgres                  9.3                 746b819f315e        4 days ago          213.4 MB
postgres                  9.3.5               746b819f315e        4 days ago          213.4 MB
postgres                  latest              746b819f315e        4 days ago          213.4 MB

2. 특정 이름 또는 태그로 이미지 검색

docker images java:8

 


3. 필터링

 

⭐️ 지원되는 필터 목록 

  • dangling
    • 불필요한 이미지 필터링
    • dangling=true : 태그가 없는 (<none>:<none>) 이미지만 조회
    • dangling=false : 태그가 있는 정상적인 이미지만 조회
docker images --filter "dangling=true"
  • label
    • 특정 라벨을 가진 이미지만 조회
    • label=<키> : 해당 키가 있는 이미지 조회
$ docker images --filter "label=com.example.version"

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
match-me-1          latest              eeae25ada2aa        About a minute ago   188.3 MB
match-me-2          latest              dea752e4e117        About a minute ago   188.3 MB
  • label=<키>=<값> : 특정 값과 일치하는 라벨을 가진 이미지 조회
$ docker images --filter "label=com.example.version=1.0"

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
match-me            latest              511136ea3c5a        About a minute ago   188.3 MB
  • before
    • 특정 이미지보다 이전에 생성된 이미지만 조회
    • 이미지 이름, 태그, ID, 다이제스트를 사용 가능
docker images --filter "before=nginx:latest"
docker images --filter "before=abc123456789"
docker images --filter "before=nginx@sha256:abcd..."
  • since
    • 특정 이미지보다 이후에 생성된 이미지만 조회
    • before와 동일한 형식 사용
docker images --filter "since=nginx:latest"
docker images --filter "since=abc123456789"
docker images --filter "since=nginx@sha256:abcd..."
  • reference
    • 특정 패턴과 일치하는 이미지 목록 조회
    • * (와일드 카드)를 사용해 검색 가능
docker images --filter "reference=ubuntu:*"
docker images --filter "reference=busy*:*libc"

4. 출력 포맷 지정

$ docker images --format "{{.Repository}}:{{.Tag}} {{.Size}}"

IMAGE ID            REPOSITORY                TAG
77af4d6b9913        <none>                    <none>
b6fa739cedf5        committ                   latest
78a85c484f71        <none>                    <none>
30557a29d5ab        docker                    latest
5ed6274db6ce        <none>                    <none>
746b819f315e        postgres                  9
746b819f315e        postgres                  9.3
746b819f315e        postgres                  9.3.5
746b819f315e        postgres                  latest

 


 

5. docker image rm

  • 하나 이상의 docker 이미지를 삭제하는 명령어
  • 특정 태그만 제거할 수 있음
docker image rm [OPTITONS] IMAGE [IMAGE...]
  • Aliases
docker images remove
docker rmi

 

✅  옵션

  • -f, --force : 강제 삭제 (이미 실행 중인 컨테이너가 있어도 삭제 가능)
  • --no-prune : 부모 이미지가 태그가 없더라도 삭제하지 않음

 

📎 예제

$ docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)

$ docker rmi -f fd484f19954f

Untagged: test1:latest
Untagged: test:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8

 


 

참고문헌

1) dockerdocs