这有助于进一步节省磁盘空间
发布时间:2025-06-24 16:52:10 作者:北方职教升学中心 阅读量:889
读写(readwrite)和写出(whiteout-able),但是 docker镜像中每一层文件系统都是只读的。
-
: 表示从标准输入(stdin)读取归档数据,这通常用于管道操作。这个过程可能需要一些时间,具体取决于镜像的大小和复杂度。至于build在理解完后续知识再详细介绍。依赖、 针对前面两点的例子:通常我们run了一个镜像会生成对应的容器,而这些容器可能会存在很多个,而此时我们如果要删除镜像,则需要先把对应的容器给全部先删除掉才能删除镜像。如果不希望手动停止容器,可以使用 -f
选项。这有助于进一步节省磁盘空间。
--format
选项时,可以使用的字段包括 .ID
, .Created
, .CreatedBy
, .Size
, 和 .Comment
。只显示层 ID
docker history -q ubuntu:latest
这个命令将只输出每一层的 ID,常用于脚本中进一步处理。当你使用的时候,你只会看到一个完全的整体,你不知道里面有几层,也不清楚每一层所做的修改是什么。
IMAGE
:你要保存的镜像的名称或 ID。
例子
从 tar 文件加载镜像
docker load --input test.tar
这条命令将从 my_image.tar
文件中加载镜像到当前的 Docker 环境中。下面是关于 docker image prune
命令的详细解析:
命令语法
docker image prune [OPTIONS]
-a, --all
:删除所有未被使用的镜像,而不仅仅是悬空的镜像。- CREATED:层创建的时间(以天数表示,后面跟着时间戳)。
--no-trunc
:如果设置,命令将不会截断长输出,而是显示完整的值。
使用示例
查看镜像历史
docker history ubuntu:latest
这将列出 ubuntu:latest
镜像的构建历史。
docker load
命令会从标准输入(stdin)中读取数据。- 当删除镜像时,Docker 会同时删除所有未被引用的镜像层,除非使用了
--no-prune
选项。 - SIZE:层的大小(以字节为单位)。
URL
: 一个远程 URL,通常指向一个可通过 HTTP(S) 访问的归档文件。- 使用
-c
或--change
选项时,你应该熟悉 Dockerfile 的语法,因为这里使用的语法非常相似。 - 如果镜像被多个容器使用,可能需要先使用
docker stop
和docker rm
命令停止并删除容器,然后才能删除镜像。 - 快速启动和停止:基于镜像启动容器通常比启动传统虚拟机更快,因为容器共享宿主机的内核,减少了启动时间和资源消耗。
强制删除所有未被使用的镜像
docker image prune -a --force
这个命令将不询问确认,直接删除所有未被使用的镜像。那你这时又会问了,不是有个-f选项吗?为什么不直接强制删除呢?这种方式是不推荐的,一般的流程则是前面所提到的。tag、下面是
docker save
命令的详细解释:命令语法
docker save [OPTIONS] IMAGE [IMAGE...]
-o, --output
:用于指定输出的 tar 文件的路径和文件名。
例子
docker load
docker load
命令用于从一个 tar 格式的存档文件中恢复 Docker 镜像。镜像与容器的理解:可以理解为类和对象的关系。悬空镜像是指没有被任何容器关联且没有被赋予任何标签的镜像。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。
命令语法
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
file
: 本地文件系统上的归档文件路径,可以是一个.tar
或者压缩过的.tar.gz
,.tgz
,.bzip
,.tar.xz
, 或.txz
文件。
例子
docker save
docker save
命令用于将一个或多个 Docker 镜像保存为一个 tar 格式的存档文件。 - 自动化部署:Docker镜像可以很容易地集成到持续集成/持续部署(CI/CD)管道中,自动化应用的构建、与
docker build
命令不同,docker import
不使用 Dockerfile,而是直接从提供的文件或目录结构中创建镜像。 - 如果 tar 文件包含多个镜像,
docker load
命令会一次性加载所有这些镜像。下面是对docker rmi
命令的详细解析:命令语法
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS
可以是以下选项之一或多个:
-f, --force
:强制删除正在被容器使用的镜像。如果没有提供这个选项,docker save
命令会将输出重定向到标准输出(stdout),通常这会直接输出到控制台,所以一般在实际使用中会配合-o
选项使用。删除所有未被使用的镜像
docker image prune -a
使用
-a
选项将会删除所有未被任何容器引用的镜像,不仅仅是悬空的。这可以通过逗号分隔的列表形式提供,每个项看起来类似于 Dockerfile 的指令,例如WORKDIR=/path,ENV VAR=value
。当不再需要某个镜像,或者想要清理磁盘空间时,这个命令就非常有用。--quiet, -q
:精简输出信息。- 可移植性:镜像包含了软件运行所需的一切,包括代码、
通过
docker import
,你可以方便地将现有的文件系统快照或归档文件转化为 Docker 镜像,便于后续的部署和分发。- 可复现性:一旦创建了Docker镜像,你可以在任何地方启动相同配置的容器。
docker rm
docker rmi
命令用于从本地删除一个或多个 Docker 镜像。如果你想从一个远程 URL 导入一个归档文件,可以这样做:
docker import https://example.com/downloads/myapp.tar.gz myimage:latest
如果你想要从标准输入读取数据,可以使用管道操作:
cat myapp.tar.gz | docker import - myimage:latest
感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o!
给个三连再走嘛~