跳到主要内容

从 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 命令以及其他相关命令,开发者可以轻松地加载和管理容器镜像,从而构建和部署各种应用和服务。