如何在 Ubuntu 20.04 上安装和使用 Podman(Docker 替代方案)如何在 Ubuntu 20.04 上安装和使用 Podman(Docker 替代方案)如何在 Ubuntu 20.04 上安装和使用 Podman(Docker 替代方案)如何在 Ubuntu 20.04 上安装和使用 Podman(Docker 替代方案)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

如何在 Ubuntu 20.04 上安装和使用 Podman(Docker 替代方案)

本教程适用于这些操作系统版本

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 20.04(Focal Fossa)

在此页

  1. 先决条件
  2. 在 Ubuntu 20.04 上安装 Podman
  3. 创建新用户并运行 hello-world 容器
  4. Podman 基本用法
  5. 结论

Podman 是一种用于管理容器、映像、卷和 Pod(容器组)的开源工具。它使用 libpod 库 API 来管理容器生命周期,并支持多种容器映像格式,包括 OCI(开放容器计划)和 Docker 映像。

Podman 是 OCI(Open Container Initiative)合规容器引擎。它与 Docker CLI 接口兼容,并允许您以无根方式运行容器(在没有根权限的情况下运行容器)。 Podman 作为 Red Hat Enterprise Linux 的一部分发布,旨在成为下一代 Linux 容器工具,具有更快的实验和功能开发。

在本教程中,您将学习如何在 Ubuntu 20.04 系统上安装 Podman。您将安装 Podman 并学习 podman 的基本用法来管理 Docker 容器、图像和卷。

先决条件

  • 一个 Ubuntu 20.04 服务器——确保所有软件包都是最新版本,以摆脱已弃用的依赖项并导致您在安装过程中出错。
  • 具有 root 权限的用户或用户 root - 用于安装新软件包和更改系统范围的配置。

在 Ubuntu 20.04 上安装 Podman

首先,您将添加第三方存储库和密钥以在 Ubuntu 20.04 系统上安装 podman。

1.执行以下命令导出/etc/os-release文件上的环境变量。

. /etc/os-release

2. 添加具有稳定版本的 podman 存储库,并使用以下命令将 GPG 密钥添加到您的系统。

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -

3. 更新/刷新 Ubuntu 存储库并将所有软件包升级到最新版本。

sudo apt update
sudo apt -y upgrade

4. 之后,使用下面的 apt 命令安装 podman。

sudo apt install podman

键入 y 并按 Enter 以继续安装。

5. 安装完成后,使用以下命令验证 podman 版本。

podman version

以下是您将获得的类似输出。

可以看出,您已经安装了使用 Go 1.16 为 Linux 架构 amd64(64 位)编译的 podman v3.3.1。

创建新用户并运行 hello-world 容器

Podman 允许您在没有 root 权限的用户下运行容器。在此阶段,您将添加一个新用户并运行基于 Docker 映像的容器 hello-world。

1.执行以下命令添加新用户johndoe。

useradd -m -s /bin/bash johndoe
passwd johndoe

为用户 johndoe 键入新密码。

2. 接下来,以johndoe用户登录,运行基于Docker镜像hello-world的容器。

以用户 johndoe 身份登录。

su - johndoe

使用 podman 命令运行基于 Docker 镜像 hello-world 的新容器。

podman run hello-world

系统将询问您要使用哪个容器注册表,选择 docker.io 容器注册表,您将看到如下类似的输出。

3. 要在本地计算机上验证您的容器和图像,请执行以下命令。

podman ps -a
podman images

您将看到一个新容器已创建,当前状态为已退出。该容器基于 hello-world Docker 映像。

Podman 基本用法

通过本指南,您将学习如何使用 podman 管理容器、镜像和卷。您将学习用于管理容器的 podman 的基本命令,您将在本指南中使用的命令与 Docker CLI 命令 100% 相同。

1. 要查找与 podman 兼容的容器镜像,请执行下面的 podman 命令。

podman search nginx

您将看到来自默认 Docker 镜像注册表和 Quay 镜像注册表的容器镜像列表。

从 Docker 注册表中选择容器镜像 nginx,并使用下面的 podman 命令下载到本地计算机。

podman pull nginx:alpine

选择容器注册表 docker.io,Nginx 容器映像的下载过程将开始。

2. 要检查本地计算机上可用的容器映像,请执行下面的 podman 命令。

podman images

您将看到两个图像 - hello-world 和 nginx 图像。

3. 接下来,要启动并运行基于镜像 nginx:alpine 的新容器,请执行带有运行选项的 podman 命令,如下所示。

podman run -it --rm -d -p 8080:80 --name web nginx:alpine

您必须知道的一些选项:

  • -i 或 --interactive - 保持容器 STDIN 打开,即使未连接。
  • -t 或 --tty - 分配一个伪终端,将您的终端与容器的 STDIN 和 STDOUT 连接起来。
  • --rm - 当容器退出或停止时自动删除容器。
  • -d - 在后台运行容器,运行后解除容器。
  • -p 8080:80 - 映射容器和主机系统之间的端口。容器上的 80 端口映射到主机系统的 8080 端口。
  • --name web - 指定新容器名称为 web。
  • nginx:alpine - 我们使用的镜像是 nginx:alpine。

您将看到正在运行的容器的随机字符串和编号。使用下面的 podman 命令验证您正在运行的容器。

podman ps

您将看到如下输出。

容器状态为 Up 并在主机上公开端口 TCP 端口 8080。

打开您的网络浏览器并使用端口 8080 访问您的服务器 IP 地址,如下所示。

你会看到你的 nginx 容器的默认 index.html 年龄。

4. 此外,您可以使用下面的日志选项检查容器的日志。

podman logs web

或者您可以使用 --tail 选项指定容器日志的最后几行,如下所示。

podman logs --tail 10 web

5. 现在您可以使用 podman 选项 stop 停止正在运行的容器,如下所示。

podman stop web

您的容器网络将停止。使用下面的命令检查。

podman ps
podman ps -a

你会看到类似下面的输出。

容器 Web 已停止并自动删除,因为您在 podman 命令中使用了选项 --rm。

6.接下来,您将学习如何使用自定义卷更改新容器上的默认index.html。

使用以下命令创建一个新目录 ~/data 和 index.html 文件。

mkdir -p ~/data/
nano ~/data/index.html

复制并粘贴下面的 HTML 脚本。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Container Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container - Managed with Podman</h2>
</body>
</html>

按 Ctrl+x 按钮,键入 y,然后按 Enter 保存配置并退出。

现在执行以下 podman 命令以运行具有自定义卷的新容器。

podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

你必须知道的一个选项:

  • -v - 指定容器的体积。 ~/data目录会挂载到新的容器目录/usr/share/nginx/html。

现在执行以下命令来验证正在运行的容器。

podman ps

您将在状态 Up 中看到新的容器 Web。

接下来,打开您的网络浏览器并输入您的服务器 IP 地址和端口 8080。

您将在顶部看到您创建的自定义 index.html 页面,这意味着 ~/data 目录已挂载到 Web 容器。

7.接下来,您可以使用选项exec登录到正在运行的容器并执行sh shell。

使用以下命令确保您的容器 Web 正在运行。

podman ps

现在执行下面的 podman 命令登录到容器 web。

podman exec -it web /bin/sh

检查容器 Web 的主机名。

hostname

查看容器web的IP地址和路由表。

ip a
route -n

现在键入 exit 从容器 web 注销。

8. 现在使用以下命令清理您的环境。

使用下面的 podman 命令停止容器 Web。

podman stop web

使用下面的 podman 命令删除所有状态为 Exited 的容器。

podman rm $(podman ps --filter "status=exited" -q)

结论

恭喜!您已经在 Ubuntu 20.04 系统上成功安装了 Podman。此外,您还学习了 podman 的基本用法,用于下载容器镜像、运行容器、检查容器状态、日志,以及 podman 的基本用法,用于管理卷。对于下一步,您可以尝试创建符合 OCI 规范的自定义图像,以便将您的应用程序推送/上传到容器注册表。

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