从 tar 归档文件加载一个或多个容器镜像
Podman 是一个开源的容器运行时管理工具,它无需守护进程即可运行容器。Podman 提供了与 Docker 类似的命令行接口,允许用户轻松地管理容器镜像、容器和运行时的其他组件。其中,podman load
命令用于从 tar 归档文件或标准输入中加载一个或多个容器镜像。
描述
podman load
命令将从本地机器上的 oci-archive 或 docker-archive 加载镜像到容器存储中。这些归档文件通常是由 podman save
命令生成的,并包含了镜像的父层。
默认情况下,podman load
会从标准输入(stdin)读取数据。如果设置了 input 选项,则会从指定的文件中读取。这使得用户可以通过管道或其他方式将归档数据传递给 podman load
命令。
需要注意的是,podman load
是用于加载由 podman save
命令生成的归档文件的。这些归档文件包含了完整的镜像数据,包括其依赖的层。如果尝试加载由 podman export
命令创建的容器文件系统的归档文件,应该使用 podman import
命令。
此外,本地客户端还支持加载由 podman save
命令创建的 oci-dir 或 docker-dir 格式的目录结构。
命令格式
podman load [OPTIONS] [INPUT]
参数说明
-i, --input:指定要加载的 tar 归档文件的路径。如果省略,Podman 会从标准输入中读取数据。加载指定的输入文件而不是从标准输入读取。文件可以在本地文件系统上,也可以在服务器上(例如,home/server.com/archive.tar)。还支持加载压缩文件。 远程客户端,包括 Mac 和 Windows(不包括 WSL2)机器,需要使用此选项。 注意:使用环境变量
TMPDIR
来更改容器镜像的临时存储位置。Podman 默认使用/var/tmp
。-q, --quiet:静默模式,不显示进度信息。
--input, -i=输入文件
示例
从本地 tar 文件加载镜像
podman load -i /path/to/image.tar
此命令将从 /path/to/image.tar
文件中加载一个或多个容器镜像。
从 URL 加载镜像
podman load -i https://example.com/image.tar
Podman 将从指定的 URL 下载 tar 文件并加载其中的镜像。
从标准输入加载镜像
cat image.tar | podman load
使用 cat
命令将 tar 文件的内容输出到标准输出,并通过管道传递给 podman load
命令进行加载。
静默模式加载镜像
podman load -q -i image.tar
使用 -q
或 --quiet
选项,Podman 在加载镜像时将不会显示任何进度信息。
从压缩的 tar 文件中创建镜像,不显示进度。
podman load --quiet -i fedora.tar.gz
从从 URL 拉取的 archive.tar 文件中创建镜像,不显示进度。
podman load -q -i https://server.com/archive.tar
使用 bash 重定向从 tar 文件通过标准输入创建镜像。
podman load < fedora.tar
Getting image source signatures
Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
0 B / 4.03 MB [-----------------------------------------------------------]
Copying config sha256:7328f6f8b41890597575cbaadc884e7386ae0acc53b747401ebce5cf0d624560
0 B / 1.48 KB [-------------------------------------------------------]
Writing manifest to image destination
Storing signatures
Loaded image: registry.fedoraproject.org/fedora:latest
使用管道从标准输入创建镜像。
$ cat fedora.tar | podman load
Getting image source signatures
Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
0 B / 4.03 MB [---------------------------------------------------]
Copying config sha256:7328f6f8b41890597575cbaadc884e7386ae0acc53b747401ebce5cf0d624560
0 B / 1.48 KB [-----------------------------------------------]
Writing manifest to image destination
Storing signatures
Loaded image: registry.fedoraproject.org/fedora:latest
注意事项
podman load
命令需要用户具有适当的权限来访问和读取 tar 文件或标准输入。- 加载的镜像将存储在 Podman 的本地镜像存储库中,之后可以使用
podman images
命令查看已加载的镜像列表。 - 如果尝试加载的 tar 文件损坏或不包含有效的容器镜像数据,
podman load
命令可能会失败并显示错误消息。
相关命令与文档
- podman imagespodman-images(1):列出本地存储库中的容器镜像。
- podman savepodman-save(1):将容器镜像保存到 tar 归档文件中。
- podman pullpodman-pull(1):从远程容器镜像仓库中拉取镜像。
- podman rmipodman-rmi(1):删除一个或多个容器镜像。
- podman importpodman-import(1):从容器文件系统归档文件中导入镜像。
更多关于 Podman 的详细信息和文档,请参考 Podman 的官方文档或运行 podman --help
查看命令行帮助信息。
历史
2017 年 7 月,最初由 Urvashi Mohnani 编译。
Podman 作为一个轻量级的容器运行时管理工具,提供了丰富的功能和灵活的选项,使得开发者能够更加高效地管理和运行容器。通过熟练掌握 podman load
命令以及其他相关命令,开发者可以轻松地加载和管理容器镜像,从而构建和部署各种应用和服务。