Podman 运行 Linux 容器,这些容器依赖于 Linux 操作系统。这意味着如果用户在 Mac 或 Windows 上,Podman 需要在 VM 中运行。大多数情况下,Podman 机器的标准安装可以直接使用。但是,当出现问题时,底层机器系统的复杂性(它依赖于 Podman 的远程客户端通过 SSH 与 VM 内部的 Podman 通信)可能会让用户难以理解到底发生了什么问题。由于 Podman 机器最近的使用越来越广泛,尤其是在非 Linux 平台上,我们发现了很多常见问题,因此我们想向您展示如何解决这些问题。
首先尝试这个
大多数情况下,如果您对正在运行的机器和容器并不特别在意,简单地重新创建机器应该可以解决问题,并重置您的机器配置。
podman machine rm
podman machine init --now
如果您尝试过此方法但仍然遇到 Podman 机器问题,以下是几个常见问题以及如何解决它们。
问题:安装了错误的 Podman 架构
症状: 您使用的是 M1 Mac。您可能还使用 Homebrew 安装了 Podman。您会看到以下错误
Error: qemu exited unexpectedly with exit code -1, stderr: qemu-system-x86_64: Unknown Error.
解决方案: 确保您的 Homebrew 安装不是在 Rosetta 下进行的。Rosetta 下的 Homebrew 将安装错误版本的 Podman,并且 Podman 机器将无法启动。这要求您重新安装本机 Homebrew,不要在 Rosetta 下。
问题:Podman 机器连接配置错误
症状: 您运行 podman 命令,并收到以下错误
Error: unable to connect to Podman socket: Get "http://d/v4.0.2/libpod/_ping": dial unix ///var/folders/kl/mjb_x3511yd21w18ht4sz62m0000gn/T/podman-run--1/podman/podman.sock: connect: no such file or directory
解释: 无法建立与您的 VM 的连接。这通常意味着 SSH 密钥设置发生了问题。
解决方案: 首先,检查您的 podman 系统连接。它应该看起来像这样
$ podman system connection list
Name URI Identity Default
podman-machine-default ssh://core@localhost:62840/run/user/501/podman/podman.sock /Users/ashley/.ssh/podman-machine-default true
podman-machine-default-root ssh://root@localhost:62840/run/podman/podman.sock /Users/ashley/.ssh/podman-machine-default false
确保与您所需机器的连接设置为默认连接。如果不是,请使用以下命令将您所需的连接设置为默认连接
podman system connection default podman-machine-default
问题:SSH 密钥配置错误
症状: 您运行 podman 命令,并收到以下错误
Error: failed to connect: ssh: handshake failed: read tcp [::1]:56237->[::1]:49619: read: connection reset by peer
解释: 您的 SSH 密钥或 ssh-agent 配置有误。
解决方案: 清理您 home/.ssh 目录中的密钥。很有可能,可能存在配置错误的密钥,或者与您的 VM 同名的旧密钥。在这种情况下,最好删除与 podman-machine 相关的所有密钥,并重新初始化您的机器。
问题:我的 VM 中的时间不正确
症状: 使用 Podman 和 Podman 机器运行容器时,VM 中的时间不正确。
解释: 在挂起和恢复主机 Mac 机器时,VM 中的虚拟时钟会偏离主机时钟。
解决方案: 目前,Podman 还没有能够实现此问题的修复。我们正在关注这个问题,并优先考虑修复,进度可以在 Github 问题 上跟踪。但是,简单地重新启动机器似乎可以解决问题,如果无法做到这一点,许多社区成员已经在链接的 issue 中发布了他们的解决方法。
结论
Podman 机器的目的是将运行 Podman 在 VM 中的复杂性抽象化,但隐藏这样的抽象意味着当出现问题时,很难追踪问题发生在哪里以及如何解决它。希望这里能够提供一些针对最常见配置问题的解决方案。
如果您遇到了此处未提及的问题,请在我们的 Github 上打开一个 issue!您也可以通过 加入我们的社区 与 Podman 开发人员联系,我们有邮件列表和矩阵/IRC 房间,以及社区会议!
发表评论