在 Podman 上使用 Pod Fedora

[ad_1]

这篇文章向读者展示了在 Podman 上开始使用 Pod 是多么容易 Fedora. 但是什么是Podman? 好吧,我们首先要说Podman是Red Hat开发的容器引擎,是的,如果您在阅读容器引擎时考虑过Docker,那么您就走对了。

一场全新的容器化革命始于 Docker,Kubernetes 在处理共享一些公共资源的容器时,在容器编排领域加入了 Pod 的概念。 但是坚持住! 假设 Docker 是唯一有效的容器化方式,您真的认为单独使用 Docker 是否值得? Podman 还可以管理 Pod Fedora 以及这些 pod 中使用的容器。

波德曼 是一个无守护进程的开源 Linux 原生工具,旨在使用 Open Containers Initiative (奥西) 容器容器镜像.

来自 https://docs.podman.io/en/latest/ 的官方 Podman 文档

为什么要切换到 Podman?

Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上开发、管理和运行 OCI 容器。 容器可以以 root 或无根模式运行。 Podman 直接与镜像注册表、容器和镜像存储交互。

要安装 podman,请使用以下命令运行此命令 sudo:

sudo dnf -y install podman

创建一个 Pod

要开始使用 pod,我们首先需要创建它,为此我们有一个基本的命令结构

$ podman pod create
d2a5d381247c8677bb8b0907261c119c8644e3fb06235d0aafcb27ec32d89f48

上面的命令不包含任何参数,因此它将创建一个随机生成名称的 pod。 但是,您可能希望为 pod 指定一个相关名称。 为此,您只需要稍微修改上面的命令。

$ podman pod create --name climoiselle
e65767428fa0be2a3275c59542f58f5b5a2b0ce929598e9d78128a8846c28493

Pod 将被创建,并将向您报告 Pod 的 ID。 在显示的示例中,pod 被命名为“climoiselle”。 使用如下所示的命令可以轻松查看新创建的 pod:

$ podman pod list
POD ID        NAME              STATUS   CREATED         # OF CONTAINERS  INFRA ID
e65767428fa0  climoiselle       Created  19 seconds ago  1                d74fb8bf66e7
d2a5d381247c  blissful_dewdney  Created  32 minutes ago  1                3185af079c26

如您所见,此处列出了两个 Pod,一个名为 blissful_dewdney,另一个是从名为 climoiselle 的示例创建的。 毫无疑问,您会注意到两个 Pod 已经包含一个容器,但我们还没有将容器部署到 Pod 中。

吊舱内的额外容器是什么? 这个随机生成的容器是一个 infra 容器。 每个 podman pod 都包含这个 infra 容器,实际上这些容器除了睡觉之外什么都不做。 它们的目的是保存与 Pod 关联的命名空间,并允许 Podman 将其他容器连接到 Pod。 infra 容器的另一个目的是允许 pod 在所有相关容器都停止后继续运行。

您还可以使用以下命令查看 pod 中的各个容器:

$ podman ps -a --pod
CONTAINER ID  IMAGE                 COMMAND  CREATED         STATUS   PORTS   NAMES               POD ID        PODNAME
d74fb8bf66e7  k8s.gcr.io/pause:3.2           38 seconds ago  Created          e65767428fa0-infra  e65767428fa0  climoiselle
3185af079c26  k8s.gcr.io/pause:3.2           32 minutes ago  Created          d2a5d381247c-infra  d2a5d381247c  blissful_dewdney

添加容器

很酷的是,您可以向新部署的 pod 添加更多容器。 永远记住你的豆荚的名字。 这很重要,因为您需要该名称才能在该 pod 中部署容器。 我们将使用官方 Fedora 镜像并部署一个容器,使用它来运行 bash 贝壳。

$ podman run -it --rm --pod climoiselle fedora /bin/bash

完成后,输入 exit 或 hit Ctrl+D 让 shell 在容器中运行。

一个命令中的所有内容

在您创建的 pod 中部署容器时,Podman 具有敏捷特性。 您可以使用 Podman 使用单个命令创建一个 pod 并将容器部署到所述 pod。 假设您要部署一个 NGINX 容器,将外部端口 8080 暴露给名为 test_server 的新 pod 的内部端口 80。

$ podman run -dt --pod new:test_server -p 8080:80 nginx
Trying to pull registry.fedoraproject.org/nginx...
  manifest unknown: manifest unknown
Trying to pull registry.access.redhat.com/nginx...
  unsupported: This repo requires terms acceptance and is only available on registry.redhat.io
Trying to pull registry.centos.org/nginx...
  manifest unknown: manifest unknown
Trying to pull docker.io/library/nginx...
Getting image source signatures
Copying blob e05167b6a99d done
Copying blob 2766c0bf2b07 done
Copying blob 70ac9d795e79 done
Copying blob 6ec7b7d162b2 done
Copying blob cb420a90068e done
Copying config ae2feff98a done
Writing manifest to image destination
Storing signatures
7cb4336ccc26835750f23b412bcb9270b6f5b0d1a4477abc45cdc12308bfe961

让我们检查所有已创建的 pod 以及在每个 pod 中运行的容器数量……

$ podman pod list
POD ID        NAME              STATUS   CREATED         # OF CONTAINERS  INFRA ID
7495cc9c7d93  test_server       Running  2 minutes ago   2                6bd313bbfb0d
e65767428fa0  climoiselle       Created  11 minutes ago  1                d74fb8bf66e7
d2a5d381247c  blissful_dewdney  Created  43 minutes ago  1                3185af079c26

您想知道正在运行的 Pod 的详细配置吗? 只需输入如下所示的命令:

podman pod inspect [pod's name/id]

让它停下来!

要停止 Pod,我们需要使用 Pod 的名称或 ID。 使用来自 podman 的 pod list 命令的信息,我们可以查看 pod 及其红外线。 只需将 podman 与命令 stop 一起使用,并给出 pod 的特定名称/基础设施 ID。

$ podman pod stop test_server
7495cc9c7d93e0753b4473ad4f2478acfc70d5afd12db2f3e315773f2df30c3f

在学习了这个简短的教程之后,您可以看到在 Fedora 上使用 podman 使用 pods 的速度有多快。 这是使用共享资源和交互的容器的一种简单方便的方法。

进一步阅读

[ad_2]

Related Posts