Docker - image 命令

255 阅读2分钟

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

镜像命令

docker images 查看本地主机上的镜像

# docker images [OPTIONS] [REPOSITORY[:TAG]]

列出本地镜像

$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   5 months ago   13.3kB

参数说明

参数解释
REPOSITORY镜像的仓库源
TAG镜像的版本
IMAGE ID镜像ID
CREATED镜像的创建时间
SIZE镜像的大小

常用可选项:

可选项解释
-a列出所有镜像
-q只显示镜像ID

根据名称列出镜像

$ docker images hello-world
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   5 months ago   13.3kB

根据名称和版本列出镜像

$ docker images hello-world:latest 
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   5 months ago   13.3kB

列出所有镜像

$ docker images -a
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   5 months ago   13.3kB

列出镜像ID

docker images hello-world -q
d1165f221234

列出所有镜像ID

docker images -aq
d1165f221234

docker search 搜索镜像命令

# docker search [OPTIONS] TERM

根据名称搜索镜像

$ docker search java
NAME               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
node               Node.js is a JavaScript-based platform for s…   10431     [OK]       
tomcat             Apache Tomcat is an open source implementati…   3099      [OK]       
openjdk            OpenJDK is an open-source implementation of …   2881      [OK]       
java               Java is a concurrent, class-based, and objec…   1976      [OK]       
ghost              Ghost is a free and open source blogging pla…   1403      [OK]       
lwieske/java-8     Oracle Java 8 Container - Full + Slim - Base…   49                   [OK]

参数说明

参数解释
NAME镜像名称
DESCRIPTION镜像的描述
STARS镜像获取的星星
OFFICIAL是否为官方的镜像
AUTOMATED是否自动化

常用可选项

可选项解释
-f过滤搜索镜像镜像

搜索镜像名为 java STARS>=3000 的镜像

$ docker search java -f=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
node      Node.js is a JavaScript-based platform for s…   10431     [OK]       
tomcat    Apache Tomcat is an open source implementati…   3099      [OK] 

docker pull 下载/拉取镜像

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

下载最新版本

$ docker pull redis
Using default tag: latest # 如果不写 tag,默认就是latest
latest: Pulling from library/redis
e1acddbe380c: Pull complete # 分层下载,docker images 的核心 联合文件系统
a31098369fcc: Pull complete 
4a49b0eba86d: Pull complete 
fddf1399efac: Pull complete 
5c6658b59b72: Pull complete 
0b88638a5b77: Pull complete 
Digest: sha256:66ce9bc742609650afc3de7009658473ed601db4e926a5b16d239303383bacad # 签名
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest # 真实地址

# docker pull redis 等价于 docker pull docker.io/library/redis:latest

下载指定版本

$ docker pull redis:6.0
6.0: Pulling from library/redis
e1acddbe380c: Already exists # 是因为和前面有一部分公用了,就不需要下载了
a31098369fcc: Already exists 
4a49b0eba86d: Already exists 
dc4d12107f30: Pull complete 
b73450606956: Pull complete 
d5a5903a5288: Pull complete 
Digest: sha256:e605e529de4175f6ed80e4d3f25d4fa3e5fe513784c5b9092bac25067f835c07
Status: Downloaded newer image for redis:6.0
docker.io/library/redis:6.0

# 列出下载后的镜像
$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         6.0       dca52f4b96b0   3 days ago     104MB
redis         latest    ddcca4b8a6f0   3 days ago     105MB
hello-world   latest    d1165f221234   5 months ago   13.3kB

docker rmi 删除镜像

# docker rmi [OPTIONS] IMAGE [IMAGE...]

根据镜像ID删除

# 先列出镜像
$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         6.0       dca52f4b96b0   4 days ago     104MB
redis         latest    ddcca4b8a6f0   4 days ago     105MB
hello-world   latest    d1165f221234   5 months ago   13.3kB

$ docker rmi -f ddcca4b8a6f0
Untagged: redis:latest
Untagged: redis@sha256:66ce9bc742609650afc3de7009658473ed601db4e926a5b16d239303383bacad
Deleted: sha256:ddcca4b8a6f0367b5de2764dfe76b0a4bfa6d75237932185923705da47004347
Deleted: sha256:4174bc09d2558e66ca876f82236344197f74b7f111dc1590a9a67a5e123726d0
Deleted: sha256:a7fd1b1696e03074d60d00a288379ea4fe87a59f0c0a07a2eae277624b966feb
Deleted: sha256:0b3bdf5dbc7e230e435ed844cd03494f8f52b728baba6b3093762029c552136e

根据镜像名称删除

$ docker rmi -f hello-world 
Untagged: hello-world:latest
Untagged: hello-world@sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726

查看删除结果

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
redis        6.0       dca52f4b96b0   4 days ago   104MB

删除所有镜像,慎用

$ docker rmi -f $(docker images -aq)
Untagged: redis:6.0
Untagged: redis@sha256:e605e529de4175f6ed80e4d3f25d4fa3e5fe513784c5b9092bac25067f835c07
Deleted: sha256:dca52f4b96b0fe289bd83393e73a33d88a8f07491c3b9833a77e3b258eb16789
Deleted: sha256:88c381e8f012e49072e08c37eebe3af760fe55fe9358bd32ac3a2bcb8bb84261
Deleted: sha256:e9c5c903f9765589a874e85fd0a3b47b91b8c288c2b6612ca911ab78248742b2
Deleted: sha256:b8420226e0f30f4d694e61fe0c118272d5688e9d399cfa232bc9144726c4264a
Deleted: sha256:f3ad5c94eadbc9a7bcd345a1db6eb5b4ad58db047f6c56fddf3b991da1566728
Deleted: sha256:3b8cd7214e7eada4dc650d87d2ca1c39fc9a5eb43785f68dde13ee507134a3cc
Deleted: sha256:f68ef921efae588b3dd5cc466a1ca9c94c24785f1fa9420bea15ecc2dedbe781


$ docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

-f 是强制删除,假如有已经运行的容器,也会将容器删掉,慎用,这块是为了练习使用