在 CentOS 8 上安装 Podman 容器

使用 ssh 作为 root 用户连接到 podman-01.recipes.com。

使用以下命令构建 dnf 缓存。

[root@podman-01 ~]# dnf makecache
CentOS-8 - AppStream                            2.3 kB/s | 4.3 kB     00:01
CentOS-8 - Base                                 1.7 kB/s | 3.9 kB     00:02
CentOS-8 - Extras                               649  B/s | 1.5 kB     00:02
Metadata cache created.

使用 dnf 命令安装容器工具模块。

[root@podman-01 ~]# dnf install -y @container-tools

CentOS 8 上已经安装了 Podman 和相关的容器化工具。

欢迎 on it road

在 CentOS 8 上使用 Podman 容器:

检查 Podman 版本。

[root@podman-01 ~]# podman version
Version:       1.0.5
Go Version:    go1.11.6
OS/Arch:       linux/amd64

使用 podman 命令搜索图像。

[root@podman-01 ~]# podman search alpine --filter is-official=true
INDEX       NAME                       DESCRIPTION                                       STARS   OFFICIAL   AUTOMATED
docker.io   docker.io/library/alpine   A minimal Docker image based on Alpine Linux...   5937    [OK]

从在线注册表中拉取镜像。

[root@podman-01 ~]# podman pull docker.io/library/alpine
Trying to pull docker.io/library/alpine...Getting image source signatures
Copying blob 63bc94deeb28: 2.65 MiB / 2.67 MiB [===============================]
Copying blob 63bc94deeb28: 2.67 MiB / 2.67 MiB [============================] 9s
Copying config c85b8f829d1f: 1.48 KiB / 1.48 KiB [==========================] 0s
Writing manifest to image destination
Storing signatures
c85b8f829d2f93a25fe91d2ce7dccf6ec723794875a77bb19633d38e926c788c

显示本地 podman 图像列表。

[root@podman-01 ~]# podman images
REPOSITORY                 TAG      IMAGE ID       CREATED      SIZE
docker.io/library/alpine   latest   c85b8f829d1f   3 days ago   5.86 MB

检查 alpine Linux 镜像以获取更多详细信息。

[root@podman-01 ~]# podman inspect alpine
[
    {
        "Id": "c85b8f829d2f93a25fe91d2ce7dccf6ec723794875a77bb19633d38e926c788c",
        "Digest": "sha256:d371653a4f661a854ff051898003f4cb6c7f36d968a943c1d5cde1952bd93c80",
        "RepoTags": [
            "docker.io/library/alpine:latest"
        ],
        "RepoDigests": [
            "docker.io/library/alpine@sha256:d371653a4f661a854ff051898003f4cb6c7f36d968a943c1d5cde1952bd93c80"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2019-12-19T23:21:54.894824922Z",
        "Config": {
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh"
            ]
        },
        "Version": "18.06.1-ce",
        "Author": "",
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 5859848,
        "VirtualSize": 5859848,
        "GraphDriver": {
            "Name": "overlay",
            "Data": {
                "MergedDir": "/var/lib/containers/storage/overlay/6bc83681f1baa38776614f386dee8812f0063fab656810291bd7751e72a830f4/merged",
                "UpperDir": "/var/lib/containers/storage/overlay/6bc83681f1baa38776614f386dee8812f0063fab656810291bd7751e72a830f4/diff",
                "WorkDir": "/var/lib/containers/storage/overlay/6bc83681f1baa38776614f386dee8812f0063fab656810291bd7751e72a830f4/work"
            }
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:6bc83681f1baa38776614f386dee8812f0063fab656810291bd7751e72a830f4"
            ]
        },
        "Labels": null,
        "Annotations": {},
        "ManifestType": "application/vnd.docker.distribution.manifest.v2+json",
        "User": "",
        "History": [
            {
                "created": "2019-12-19T23:21:54.731224548Z",
                "created_by": "/bin/sh -c #(nop) ADD file:c7d28fcb71c026d7956b381181e4792c8219b04904e722a9266322ef5b256df8 in / "
            },
            {
                "created": "2019-12-19T23:21:54.894824922Z",
                "created_by": "/bin/sh -c #(nop)  CMD [\"/bin/sh\"]",
                "empty_layer": true
            }
        ]
    }
]

从 alpine Linux 镜像创建并运行容器。

[root@podman-01 ~]# podman run -it --rm alpine /bin/sh
/ # uname -a
Linux 299572d7599a 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 Linux
/ # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.11.0
PRETTY_NAME="Alpine Linux v3.11"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
/ # exit

以分离模式运行 alpine Linux 容器。

[root@podman-01 ~]# podman run -d alpine
85dcf6ee27b2ff57b480e6a9484d96129e77534699390735ddc2f8366dd58737

检查最近的容器列表。

[root@podman-01 ~]# podman ps -a
CONTAINER ID  IMAGE                            COMMAND  CREATED             STATUS                         PORTS  NAMES
f6cc375e3476  docker.io/library/alpine:latest  /bin/sh  6 seconds ago       Exited (0) 6 seconds ago              heuristic_montalcini
f3de35c18d7d  docker.io/library/alpine:latest  /bin/sh  About a minute ago  Exited (0) About a minute ago         stoic_goodall
85dcf6ee27b2  docker.io/library/alpine:latest  /bin/sh  6 minutes ago       Exited (0) 6 minutes ago              sad_benz

取出一个容器。

[root@podman-01 ~]# podman container rm f6cc375e3476
f6cc375e3476758431f2c7a9447b53c08fdda0171f96bdd63212356b48eafb90c

移除所有容器。

[root@podman-01 ~]# podman container rm $(podman ps -a -q)
f3de35c18d7d54da9f97497db78e8a4f436b885b1c79765dcc1f847af2a1661a
85dcf6ee27b2ff57b483e6a9484d96129e775b4694390735ddc3f8366dd58737

删除图像。

[root@podman-01 ~]# podman rmi docker.io/library/alpine
c85b8f829d1f93a25fe91d2ce7dccf7ec723794873a77bb12123d38e926c788c

如果我们使用过 Docker,我们可能已经观察到 podman 的命令语法与 docker 完全相同。
Podman 还与 Docker 镜像完全兼容。

我们已经成功地在 CentOS 8 上安装了 podman 容器。

如何在 CentOS 8 上安装 Podman 容器

在 Red Hat Enterprise Linux (RHEL) 8 中,已删除对 Docker 的支持。
而 RHEL 8 中引入了一个新的容器化平台 libpod(Podman 的容器管理库)。

作为分支,CentOS 8 也遵循相同的路径。

因此,要在 CentOS 8 中设置容器化平台,我们必须在我们的服务器上安装 podman(Pod Manager 工具)和相关软件包。
以下是这个新容器平台中使用的 CLI 工具。

  • podman - 用于管理容器的客户端工具。
  • skopeo - 用于将容器镜像复制到/从注册表复制的客户端工具。
  • buildah - 用于构建 OCI(开放容器计划)抱怨容器的客户端工具。
  • runc - 用于运行和使用 OCI 格式容器的容器运行时客户端。

在 CentOS 8 yum 存储库中,这些工具可以在不同的软件包中单独使用,也可以捆绑在一个通用模块中:container-tools。

安装所有这些工具的最佳方式是使用 container-tools 模块。

在本文中,我们将在 CentOS 8 上安装 Podman 容器,然后使用新的 podman 工具创建并运行一个测试容器。

日期:2020-09-17 00:16:23 来源:oir作者:oir