Docker镜像相关的命令
官方文档:https://docs.docker.com/reference/
获取镜像
docker pull 镜像名称
示例:
$ docker pull redis:6
注:镜像名称后面可以指定 tag 标签信息,来拉取指定的版本, 如果不声明 tag 镜像标签信息则默认拉取 latest 版本。
查看本地镜像
方式1:
docker images
方式2:
docker image ls
示例:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 6 bc8d70f9ef6c 4 days ago 105MB
redis latest bc8d70f9ef6c 4 days ago 105MB
nginx latest 8a2fb25a19f5 4 days ago 16M
- REPOSITORY: 镜像在仓库中的名称
- TAG: 镜像标签
- IMAGE ID: 镜像ID
- CREATED: 镜像的创建日期(不是获取该镜像的日期)
- SIZE: 镜像大小
使用 -q
参数列出所有镜像的id
$ docker images -q
311b8e6ce7a
1311b8e6ce7a
13c0a7ac4e4c
7ef0d2051128
a86b7d59e091
搜索镜像
docker search 镜像名称
示例:
$ sudo docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 9448 [OK]
bitnami/redis Bitnami Redis Docker Image 180 [OK]
sameersbn/redis 83 [OK]
grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0, 6.2 78
rediscommander/redis-commander Alpine image for redis-commander - Redis man… 58 [OK]
redislabs/redisearch Redis With the RedisSearch module pre-loaded… 34
redislabs/redis Clustered in-memory database engine compatib… 30
redislabs/redisinsight RedisInsight - The GUI for Redis 30
oliver006/redis_exporter Prometheus Exporter for Redis Metrics. Supp… 25
- NAME: 镜像名称
- DESCRIPTION: 镜像的描述
- STARS: 点赞数目,反映一个镜像的受欢迎程度
- OFFICIAL: 是否为官方构建
- AUTOMATED: 自动构建,表示该镜像由 Docker Hub 自动构建流程创建的
删除镜像
可以使用镜像ID,镜像名(仓库名:标签)来删除镜像
docker rmi 镜像ID
# docker rmi 仓库名:标签
或者:
docker image rm 镜像ID
# docker image rm 仓库名:标签
参数:
-f
: 强制删除镜像,即使有容器在使用该镜像
--no-prune
: 不清理未带标签的父镜像
示例:
$ docker image rm mongo:latest
Untagged: mongo:latest
Untagged: mongo@sha256:8b35c0a75c2dbf23110ed2485feca567ec9ab743feee7a0d7a148f806daf5e86
Deleted: sha256:07630e791de3ceb87d39543799438e118753246d19dcfd6529bd4d27ff1b83bd
Deleted: sha256:4a66f19e9d76939e792729b76a29d272779492806307f81e7a000815206fdcec
Deleted: sha256:13dcbb5d78f44fd2197f2107de111604c96602f238fc6c9b106abc1e1586073d
Deleted: sha256:6a9ec91fc2a1e84877840a47a4a76e25be748cca6f828d0a4f33db1cd0b3058e
Deleted: sha256:f633e79fbfe93d8750cb22cfa13708ac74838113bff5b054ea8a788f1ef522cd
Deleted: sha256:f7113b27f3a2d69a87eee7cf778c813dfd229f8fcd3e9619728226fcf99301b9
Deleted: sha256:8ec2a7a02aaca5c75168922c58048474dbcb62bcba488d46272b8e6b9586f39b
Deleted: sha256:95558bd5c3398f4a0d176bb6e3f580158b7e1d29143951f0eb79582a59a0cfe1
Deleted: sha256:d99356a78f13510683e69464045da3e6a2d9577c57b9d9889aa2e30f81d6c8b6
Deleted: sha256:03f5eb78fae16679a5641a35ead4819f2f719a7f08498ed2906515dda760be15
Deleted: sha256:5683b8d625d1dfa13fd9bf36bd007876a10ba7b9d0159e5b751c2e555056b1a4
Deleted: sha256:e40721a5f7d83ef5475788aa771a9cc75312998fb206ba8c2cf4294f9594f46e
Deleted: sha256:5153e1acaabce0d87adbf4a717bdc5e26cf86d851330830589a6b2bf5ede30ee
结合 docker images 命令删除指定的镜像
docker image rm $(docker images -q redis)
添加镜像标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 6 bc8d70f9ef6c 6 weeks ago 105MB
redis latest bc8d70f9ef6c 6 weeks ago 105MB
minio/minio latest 305cf2390a4e 2 months ago 184MB
$ docker tag redis:latest redis:v1
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 6 bc8d70f9ef6c 6 weeks ago 105MB
redis latest bc8d70f9ef6c 6 weeks ago 105MB
redis v1 bc8d70f9ef6c 6 weeks ago 105MB
minio/minio latest 305cf2390a4e 2 months ago 184MB
- 可以看到成功新增了一条 TAG 记录,但是 IMAGE ID 没有变化,可以看出他们是同一个镜像。
- 如果没有指定tag,则默认是latest标签。
镜像的导入导出
镜像导出:将镜像保存为tar文件
docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS:
- -o: 输出到的文件
示例:
docker save -o redis-latest.tar redis:latest
docker save -o redis-v1.tar redis:v1
查看保存后的tar文件:
$ ls -al
-rw------- 1 root root 108803072 6月 25 11:02 redis-latest.tar
-rw------- 1 root root 108803072 6月 25 11:05 redis-v1.tar
镜像导入:导入使用docker save命令导出的镜像
docker load [OPTIONS]
OPTIONS:
- -i: 指定要导入的文件
- -q: 精简输出
示例:
$ docker load -i ./redis-v1.tar
Loaded image: redis:v1