名称

podman-remote - Podman 的远程 CLI:用于管理 pod、容器和镜像的简单管理工具。

语法

podman-remote [选项] 命令

描述

Podman(Pod 管理器)是一个功能齐全的容器引擎,它是一个简单的无守护进程工具。Podman 提供了一个类似于 Docker-CLI 的命令行,简化了从其他容器引擎的迁移,并允许管理 pod、容器和镜像。简而言之:alias docker=podman。大多数 Podman 命令可以作为普通用户运行,不需要额外的权限。

Podman 在内部使用 Buildah(1) 来创建容器镜像。这两个工具共享镜像(而不是容器)存储,因此每个工具都可以使用或操作由另一个工具创建的镜像(但不能使用容器)。

Podman-remote 提供了一个本地客户端,通过一个通过 ssh 连接建立的 RESTful API 与 Podman 后端节点进行交互。在此上下文中,Podman 节点是一个安装了 Podman 且启用了 API 服务的 Linux 系统。此会话的凭据可以通过标志、环境变量或 containers.conf 传递。

containers.conf 文件位于 Linux 和 Mac 上的 $HOME/.config/containers/containers.conf 和 Windows 上的 %APPDATA%\containers\containers.conf

podman [全局选项]

全局选项

--connection=名称, -c

远程连接名称

如果已设置,则覆盖环境变量 CONTAINER_CONNECTION

--help, -h

打印使用说明

--identity=路径

ssh 身份文件路径。如果身份文件已加密,Podman 会提示用户输入密码。如果未提供身份文件,并且未提供用户,Podman 默认使用运行 podman 命令的用户。Podman 会提示用户输入远程服务器的登录密码。

身份值解析优先级

  • 命令行值

  • 环境变量 CONTAINER_SSHKEY,如果找到 CONTAINER_HOST

  • containers.conf

--log-level=级别

记录高于指定级别的日志消息:debug、info、warn、error(默认)、fatal 或 panic

--url=

访问 Podman 服务的 URL(默认从 containers.conf 获取,无根用户为 “unix:///run/user/$UID/podman/podman.sock”,或作为 root 用户为 “unix:///run/podman/podman.sock”)。

  • CONTAINER_HOST 格式为 <schema>://[<user[:<password>]@]<host>[:<port>][<path>]

  • CONTAINER_PROXY 格式为 <socks5|socks5h>://[<user[:<password>]@]<host>[:<port>]

详细信息

  • schema 是以下之一

    • ssh(默认):在命名 hostport 上的本地 unix(7) 套接字,可通过 SSH 访问

    • tcp:与命名 hostport 建立的未加密、未经身份验证的 TCP 连接,如果已设置 CONTAINER_PROXY,可以与代理一起使用

    • unix:在指定 path 上的本地 unix(7) 套接字,或用户的默认套接字

  • user 默认情况下为 root 或当前运行用户(仅限 ssh

  • password 没有默认值(仅限 ssh

  • host 必须提供,并且是托管 Podman 服务的机器的 IP 或名称(sshtcp

  • port 默认情况下为 22(sshtcp

  • path 默认情况下为 /run/podman/podman.sock,或者如果无根用户运行,则为 /run/user/$UID/podman/podman.sockunix),或者必须明确指定(ssh

  • CONTAINER_PROXY:使用代理(socks5socks5h)访问 Podman 服务(仅限 tcp

URL 值解析优先级

  • 命令行值

  • 环境变量 CONTAINER_HOST

  • engine.service_destinations 表格在 containers.conf 中,不包括 /usr/share/containers 目录

  • unix:///run/podman/podman.sock

远程连接使用本地 containers.conf 作为默认值。

一些有效格式的示例 URL 值

  • unix:///run/podman/podman.sock

  • unix:///run/user/$UID/podman/podman.sock

  • ssh://notroot@localhost:22/run/user/$UID/podman/podman.sock

  • ssh://root@localhost:22/run/podman/podman.sock

  • tcp://127.0.0.1:34451

  • tcp://127.0.0.1:34451

--version

打印版本

环境变量

Podman 可以从 containers.conf 中 [engine] 表格的 env 设置环境变量。这些变量可以通过在 podman 命令之前传递环境变量来覆盖。

CONTAINERS_CONF

设置 containers.conf 文件的默认位置

CONTAINER_CONNECTION

设置默认 --connection 值以访问 Podman 服务。

CONTAINER_HOST

设置默认 --url 值以访问 Podman 服务。

CONTAINER_SSHKEY

设置默认 --identity 路径,指向用于访问 Podman 服务的 ssh 密钥文件。

退出状态

podman 的退出代码提供了有关容器运行失败或退出原因的信息。当 podman 命令以非零代码退出时,退出代码遵循 chroot 标准,见下文

125 错误与 podman 本身有关

$ podman run --foo busybox; echo $?
Error: unknown flag: --foo
125

126 执行包含的命令,但无法调用命令

$ podman run busybox /etc; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126

127 执行包含的命令,但找不到命令 $ podman run busybox foo; echo $? 错误:container_linux.go:346:启动容器进程导致“exec: “foo”: executable file not found in $PATH”: OCI 运行时错误 127

退出代码 包含的命令 退出代码

$ podman run busybox /bin/sh -c 'exit 3'; echo $?
3

命令

命令

描述

podman-attach(1)

附加到正在运行的容器。

podman-build(1)

使用 Dockerfile 构建容器镜像。

podman-commit(1)

根据已修改的容器创建新的镜像。

podman-container(1)

管理容器。

podman-cp(1)

在容器和本地文件系统之间复制文件/文件夹。

podman-create(1)

创建一个新的容器。

podman-diff(1)

检查容器或镜像文件系统的更改。

podman-events(1)

监控 Podman 事件

podman-export(1)

将容器的文件系统内容导出为 tar 归档文件。

podman-generate(1)

根据容器和 pod 生成结构化数据。

podman-healthcheck(1)

管理容器的健康检查

podman-history(1)

显示镜像的历史记录。

podman-image(1)

管理镜像。

podman-images(1)

列出本地存储中的镜像。

podman-import(1)

导入 tar 包并将其保存为文件系统镜像。

podman-info(1)

显示与 Podman 相关的系统信息。

podman-init(1)

初始化容器

podman-inspect(1)

显示容器或镜像的配置。

podman-kill(1)

杀死一个或多个容器中的主进程。

podman-load(1)

从容器镜像存档加载镜像到容器存储。

podman-logs(1)

显示容器的日志。

podman-pause(1)

暂停一个或多个容器。

podman-pod(1)

容器组(称为 pod)的管理工具。

podman-port(1)

列出容器的端口映射。

podman-ps(1)

打印有关容器的信息。

podman-pull(1)

从注册表中拉取镜像。

podman-push(1)

将镜像从本地存储推送到其他地方。

podman-restart(1)

重启一个或多个容器。

podman-rm(1)

删除一个或多个容器。

podman-rmi(1)

删除一个或多个本地存储的镜像。

podman-run(1)

在新容器中运行命令。

podman-save(1)

将镜像保存到容器存档中。

podman-start(1)

启动一个或多个容器。

podman-stop(1)

停止一个或多个正在运行的容器。

podman-system(1)

管理 podman。

podman-tag(1)

向本地镜像添加其他名称。

podman-top(1)

显示容器的正在运行的进程。

podman-unpause(1)

取消暂停一个或多个容器。

podman-version(1)

显示 Podman 版本信息。

podman-volume(1)

管理卷。

文件

containers.conf ($HOME/.config/containers/containers.conf)

Podman 为命令行选项提供了内置的默认值。可以使用 containers.conf 配置文件覆盖这些默认值。

用户可以通过创建 $HOME/.config/containers/containers.conf 文件来修改默认值。Podman 会将它的内置默认值与来自此文件的指定字段合并(如果存在)。用户文件中指定的字段会覆盖内置的默认值。

如果找不到 containers.conf 文件,Podman 会使用内置的默认值。

另请参阅

podman(1), podman-system-service(1), containers.conf(5)

故障排除

请参考 podman-troubleshooting(7) 获取常见问题的解决方案。