名称

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,无 root 用户为 "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 (默认):通过 SSH 可访问的、指定 hostport 上的本地 unix(7) socket

    • tcp:与指定 hostport 的未加密、未认证的 TCP 连接,如果设置了 CONTAINER_PROXY,可以与代理一起工作

    • unix:在指定 path 处的本地 unix(7) socket,或用户的默认路径

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

  • password 没有默认值(仅限 ssh

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

  • port 默认为 22(sshtcp

  • path 默认为 /run/podman/podman.sock,如果以无 root 方式运行则为 /run/user/$UID/podman/podman.sockunix),或者必须明确指定(ssh

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

URL 值解析优先级

  • 命令行值

  • 环境变量 CONTAINER_HOST

  • containers.conf 中的 engine.service_destinations 表,不包括 /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://:34451

  • tcp://127.0.0.1:34451

--version

打印版本

环境变量

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

CONTAINERS_CONF

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

CONTAINER_CONNECTION

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

CONTAINER_HOST

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

CONTAINER_SSHKEY

设置用于访问 Podman 服务的默认 --identity 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 $? Error: container_linux.go:346: starting container process caused “exec: “foo”: executable file not found in $PATH”: OCI runtime error 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)

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

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)