如何在 Debian 11 上安装 Podman 作为 Docker 的替代品如何在 Debian 11 上安装 Podman 作为 Docker 的替代品如何在 Debian 11 上安装 Podman 作为 Docker 的替代品如何在 Debian 11 上安装 Podman 作为 Docker 的替代品
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 11 上安装 Podman 作为 Docker 的替代品

在此页

  1. 先决条件
  2. 安装 Podman
  3. 添加 OCI 注册表
  4. 如何使用 Podman
  5. 如何停止和删除容器
  6. 开始使用 Podman
  7. 结论

Podman(POD MANager)是一个符合 OCI 标准的容器引擎,由 Red Hat 开发,作为 Docker 的直接替代品。它用于通过命令行界面管理和运行容器、图像和卷。 Docker 和 Podman 都是类似的软件。唯一的区别是 Podman 不需要守护进程来运行容器,而 Docker 需要 Docker Engine 守护进程。 Podman 使用 libpod 库来管理整个容器生态系统。

在本教程中,我们将向您展示如何在 Debian 11 上安装和使用 Podman。

先决条件

  • 运行 Debian 11 的服务器。
  • 在服务器上配置了根密码。

安装 Podman

Podman 包包含在 Debian 11 默认存储库中。您只需运行以下命令即可安装它:

apt-get install podman -y

安装 Podman 后,使用以下命令验证 Podman 版本:

podman --version

您应该在以下输出中看到 Podman 版本:

podman version 3.0.1

您可以使用以下命令获取 Podman 的更多信息:

podman info

您将获得以下输出:

host:
  arch: amd64
  buildahVersion: 1.19.6
  cgroupManager: systemd
  cgroupVersion: v2
  conmon:
    package: 'conmon: /usr/bin/conmon'
    path: /usr/bin/conmon
    version: 'conmon version 2.0.25, commit: unknown'
  cpus: 2
  distribution:
    distribution: debian
    version: "11"
  eventLogger: journald
  hostname: debian11
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 5.10.0-8-amd64
  linkmode: dynamic
  memFree: 3365183488
  memTotal: 4122267648
  ociRuntime:
    name: crun
    package: 'crun: /usr/bin/crun'
    path: /usr/bin/crun
    version: |-
      crun version 0.17
      commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  os: linux
  remoteSocket:
    exists: true
    path: /run/podman/podman.sock
  security:
    apparmorEnabled: true
    capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: false
    seccompEnabled: true
    selinuxEnabled: false

添加 OCI 注册表

Podman 使用注册表配置文件 /etc/containers/registries.conf 从互联网上拉取所有容器镜像。所以你需要编辑它并定义注册表:

nano /etc/containers/registries.conf

在文件末尾添加以下行:

[registries.insecure]
registries = [ ]
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
# Docker only
[registries.block]
registries = [ ]

完成后保存并关闭文件。

如何使用播客

在本节中,我们将向您展示如何使用 Podman 命令拉取镜像并运行容器。

要拉取 Debian 映像,请运行以下命令:

podman pull debian

您将获得以下输出:

Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 647acf3d48c2 done  
Copying config 827e561138 done  
Writing manifest to image destination
Storing signatures
827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

您可以使用以下命令查看下载的图像:

podman images

您将获得以下输出:

REPOSITORY                TAG     IMAGE ID      CREATED      SIZE
docker.io/library/debian  latest  827e5611389a  11 days ago  129 MB

接下来,使用以下命令从 Debian 映像运行容器:

podman run -dit debian:latest

您将获得以下输出:

f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103

您可以使用以下命令列出所有正在运行的容器:

podman ps

您应该看到以下输出:

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     13 seconds ago  Up 13 seconds ago          competent_cori

要检查正在运行的容器,请通过指定容器 ID 运行 Podman 命令:

podman inspect f85c4df5ab78

您将获得以下输出:

[
    {
        "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103",
        "Created": "2021-11-28T07:00:12.795302341Z",
        "Path": "bash",
        "Args": [
            "bash"
        ],
        "State": {
            "OciVersion": "1.0.2-dev",
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 6881,
            "ConmonPid": 6878,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-28T07:00:13.551753552Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Healthcheck": {
                "Status": "",
                "FailingStreak": 0,
                "Log": null
            }
        },

要检查容器日志,请运行以下命令:

podman logs f85c4df5ab78

如果要连接到正在运行的容器,请运行以下命令:

podman exec -it f85c4df5ab78 /bin/bash

您将进入容器外壳,如下所示:

:/#

要退出容器 shell,请运行以下命令:

:/# exit

如何停止和删除容器

您还可以使用 Podman 启动、停止和删除容器。

要停止正在运行的容器,请运行以下命令:

podman stop f85c4df5ab78

您现在可以使用以下命令验证已停止的容器:

podman ps -a

您应该看到以下输出:

CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS                       PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     3 minutes ago  Exited (137) 10 seconds ago          competent_cori

要删除已停止的容器,请运行以下命令:

podman rm f85c4df5ab78

如果要停止最新的容器,请运行以下命令:

podman stop --latest

要启动最新的容器,请运行以下命令:

podman start --latest

要删除最新的容器,请运行以下命令:

podman rm --latest

要删除所有正在运行的容器,请运行以下命令:

podman rm -f `podman ps -aq`

要删除图像,请运行以下命令:

podman rmi 827e5611389a

您将获得以下输出:

Untagged: docker.io/library/debian:latest
Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

开始使用 Podman

有关如何使用 Podman 创建图像、卷和容器的详细指南,请参见此处:Podman 入门:管理图像、容器和卷

结论

在上面的帖子中,我们解释了如何在 Debian 11 上安装和使用 Podman。您现在可以使用 Podman 作为 Docker 的替代品来运行和管理容器。

©2015-2025 艾丽卡 support@alaica.com