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