命令总结
- 1. 帮助启动类命令
- 基本命令
- systemctl status docker
- docker info
- docker --help
- 2. 镜像命令
- docker images
- 删除镜像出现错误
- docker search
- docker pull xxx[:TAG]
- docker images -a
- docker images -q
- docker system df
- docker rmi -f xxxxx
- docker rmi -f $(docker images -qa)
- 面试题:谈谈docker虚悬镜像是什么?
1. 帮助启动类命令
基本命令
启动docker:systemctl start docker
停止docker::systemctl stop docker
重启docker::systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker总体帮助文档:docker --help
查看dockert命令帮助文档:docker 具体命令-help
systemctl status docker
docker info
docker --help
2. 镜像命令
docker images
- 各个选项说明:
同一仓库源可以有多个TAG版本,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用mysql,docker将默认使用mysql:latest镜像
删除镜像出现错误
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d2c94e258dcb 18 months ago 13.3kB
[root@localhost ~]# docker rmi hello-world:latest
Error response from daemon: conflict: unable to remove repository reference "hello-world:latest" (must force) - container 985532cdeca1 is using its referenced image d2c94e258dcb
[root@localhost ~]# docker rm hello-world
Error response from daemon: No such container: hello-world
[root@localhost ~]# docker rmi d2c94e258dcb
Error response from daemon: conflict: unable to delete d2c94e258dcb (must be forced) - image is being used by stopped container 985532cdeca1
出现这个问题的原因是删除的这个images可能被依赖与其他的container
感谢:docker 无法删除镜像hello-world
[root@localhost ~]# docker ps -a # 查看所有的容器 可能是我run了好几次 我都不知道有这么多容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e61d48803641 hello-world "/hello" 17 hours ago Exited (0) 17 hours ago cool_shirley
985532cdeca1 hello-world "/hello" 19 hours ago Exited (0) 19 hours ago kind_colden
5118ff23f85a hello-world "/hello" 19 hours ago Exited (0) 19 hours ago sharp_liskov
# 删除所有容器
[root@localhost ~]# docker rm $(docker ps -a -q)
e61d48803641
985532cdeca1
5118ff23f85a
# 再次查看容器 发现已经删除
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d2c94e258dcb 18 months ago 13.3kB
# 删除镜像
[root@localhost ~]# docker rmi hello-world:latest
Untagged: hello-world:latest
Untagged: hello-world@sha256:d211f485f2dd1dee407a80973c8f129f00d54604d2c90732e8e320e5038a0348
Deleted: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a
Deleted: sha256:ac28800ec8bb38d5c35b49d45a6ac4777544941199075dff8c4eb63e093aa81e
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker search
docker pull xxx[:TAG]
网络问题 拉取失败
- 拉取成功
docker images -a
-a 就是all
docker images -q
只显示images id
docker system df
docker rmi -f xxxxx
强制删除镜像
- 删除全部
docker rmi -f $(docker images -qa)
在您提供的命令中,$
符号用于执行命令替换(command substitution)。这意味着 $()
内部的命令会首先被执行,其输出将被用来替换 $()
部分,然后替换后的完整命令才会被执行。
具体来说,这段命令:
docker rmi -f $(docker images -qa)
执行步骤如下:
-
docker images -qa
:这个命令列出所有本地镜像的 ID。-q
参数告诉docker images
只输出镜像 ID。a
参数表示显示所有镜像(包括中间层镜像)。
-
$(docker images -qa)
:命令替换部分,docker images -qa
的输出(即所有镜像 ID)将被插入到这个位置。 -
docker rmi -f $(docker images -qa)
:最终执行的命令,它会删除所有列出的镜像。-f
参数(或--force
)用于在删除镜像前跳过确认步骤。
因此,整个命令的作用是强制删除本地的所有 Docker 镜像。
请注意,这个命令非常强大,并且没有确认步骤,所以请确保您确实想要删除所有镜像,因为这可能会删除重要的数据。在执行这样的命令之前,最好先运行不带 -f
参数的命令来确认将要删除的镜像列表:
docker images -qa
然后,如果您确定要删除所有镜像,再执行带有 -f
参数的命令。
面试题:谈谈docker虚悬镜像是什么?
仓库名和标签都是none 建议删除