Ubuntu 20.04 安装和使用 Podman

Podman 是一个用于开发、管理和运行容器和镜像的工具。 它由 Red Hat 开发,旨在成为 Docker 的替代品。 Podman 与 Docker 非常相似。 主要区别在于 Docker 需要 Docker Engine 守护进程,而 Podman 不需要守护进程来运行容器。 它支持多种图像格式和多种加载图像的方式。

在这篇文章中,我们将向我们展示 Ubuntu 20.04 服务器上安装和使用 Podman。

先决条件

  • 云平台上的全新 Ubuntu 20.04 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu 20.04 作为至少 4GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 Ubuntu 20.04 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

第 2 步 – 安装 Podman

首先,我们需要安装一些安装 P​​odman 所需的依赖项。 我们可以使用以下命令安装它们:

apt-get install curl wget gnupg2 -y

接下来,获取我们的 Ubuntu 版本并使用以下命令添加 Podman 存储库:

source /etc/os-release
sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"

接下来,使用以下命令下载并添加 GPG 密钥:

wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | apt-key add -

接下来,更新存储库并使用以下命令安装 Podman:

apt-get update -qq -y
apt-get -qq --yes install podman

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

podman --version

我们应该得到以下输出:

podman version 3.1.2

我们还可以使用以下命令查看更多信息:

podman info

我们应该看到以下输出:

host:
  arch: amd64
  buildahVersion: 1.20.1
  cgroupManager: systemd
  cgroupVersion: v1
  conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.27, commit: '
  cpus: 2
  distribution:
    distribution: ubuntu
    version: "20.04"
  eventLogger: journald
  hostname: ubuntu2004
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 5.4.0-29-generic

第 3 步 – 添加 OCI 注册表

当我们使用 Podman 命令拉取镜像时,它将从注册表配置文件 /etc/containers/registries.conf 中查找注册表列表。 我们可以在配置文件中编辑和添加不同的注册表。

nano /etc/containers/registries.conf

在文件末尾添加以下行:

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

完成后保存并关闭文件。

第 4 步 – 使用 Podman

在本节中,我们将向我们展示如何使用 Podman 命令搜索和拉取镜像以及运行容器。

要搜索 Debian-10 映像,请运行以下命令:

podman search debian-10

我们应该在以下输出中看到所有 Debian 10 映像:

INDEX      NAME                                                   DESCRIPTION                                      STARS   OFFICIAL  AUTOMATED
docker.io  docker.io/dokken/debian-10                             Debian 10 image for use with kitchen-dokken      0                 
docker.io  docker.io/pythonpillow/debian-10-buster-x86                                                             0                 
docker.io  docker.io/diodonfrost/debian-10-ansible                DEPRECATED - move to diodonfrost/ansible-deb...  0                 
docker.io  docker.io/ingescape/debian-10-with-zyre                                                                 0                 
docker.io  docker.io/alvistack/debian-10                                                                           0                 
docker.io  docker.io/naparuba/debian-10-python3                                                                    0                 
docker.io  docker.io/ursa/debian-10                                                                                0                 
docker.io  docker.io/naparuba/debian-10                                                                            0                 
docker.io  docker.io/opencpu/debian-10                            OpenCPU server of Debian 10                      0                 
docker.io  docker.io/mesaguy/debian-10-kitchen-ansible-x86_64     Debian 10 image for testing Ansible playbook...  0                 [OK]
docker.io  docker.io/mesaguy/debian-10-boot-x86_64                Debian 10 image, bootable for testing purpos...  0                 [OK]
docker.io  docker.io/couchbasebuild/debian-10-gcc                                                                  0                 
docker.io  docker.io/radarhere/debian-10-buster-x86                                                                0                 
docker.io  docker.io/nkbvs/debian-10_i386_cpp_base                                                                 0                 
docker.io  docker.io/quentinjdu21/debian-10                                                                        0                 
docker.io  docker.io/mitting/debian-10-web                                                                         0                 
docker.io  docker.io/freehackquest/debian-10-for-cpp-build        Docker with preinstalled g++, cmake, make, m...  0                 
docker.io  docker.io/lbelmarletelier/debian-10-builder                                                             0                 
docker.io  docker.io/armpits/debian-10-armhf                      Docker import of minimal Debian chroot.          0                 
docker.io  docker.io/arthurpicht/debian-10                        Basic debian 10 "Buster" image with extended...  0  

要下载 Nginx 映像,请运行以下命令:

podman pull nginx

我们应该看到以下输出:

✔ docker.io/library/nginx:latest
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob 596b1d696923 done  
Copying blob 8283eee92e2f done  
Copying blob 69692152171a done  
Copying blob febe5bd23e98 done  
Copying blob 351ad75a6cfa done  
Copying blob 30afc0b18f67 done  
Copying config d1a364dc54 done  
Writing manifest to image destination
Storing signatures
d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee

要列出所有下载的图像,请运行以下命令:

podman images

我们应该看到以下输出:

REPOSITORY               TAG     IMAGE ID      CREATED      SIZE
docker.io/library/nginx  latest  d1a364dc548d  2 weeks ago  137 MB

要从 Nginx 映像创建新容器,请运行以下命令:

podman  run -dit nginx

我们现在可以使用以下命令检查 Nginx 容器:

podman ps

我们应该看到以下输出:

CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS             PORTS   NAMES
c1692863973d  docker.io/library/nginx:latest  nginx -g daemon o...  20 seconds ago  Up 19 seconds ago          priceless_lewin

要从正在运行的 Nginx 容器创建新映像,请运行以下命令:

podman commit --author "Author Name Hitesh" c1692863973d docker.io/library/new-nginx

我们应该看到以下输出:

Getting image source signatures
Copying blob 02c055ef67f5 skipped: already exists  
Copying blob 766fe2c3fc08 skipped: already exists  
Copying blob 83634f76e732 skipped: already exists  
Copying blob 134e19b2fac5 skipped: already exists  
Copying blob 5c865c78bc96 skipped: already exists  
Copying blob 075508cf8f04 skipped: already exists  
Copying blob af6431b8bf0b done  
Copying config bf2a70efe3 done  
Writing manifest to image destination
Storing signatures
bf2a70efe38f99b363f8f0b7dfd395d3aec81571ed03ac7b0898954379f16768

我们现在可以使用以下命令检查新创建的映像:

podman images

我们应该看到以下输出:

REPOSITORY                   TAG     IMAGE ID      CREATED         SIZE
docker.io/library/new-nginx  latest  bf2a70efe38f  22 seconds ago  137 MB
docker.io/library/nginx      latest  d1a364dc548d  2 weeks ago     137 MB

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

podman stop container-id

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

podman remove container-id

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

podman stop --latest
podman start --latest

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

podman rm --latest

在上述指南中,我们学习了 Ubuntu 20.04 服务器上安装和使用 Podman。 Podman 是管理容器和图像的绝佳工具——在 的专用服务器托管帐户上试一试。 我们可以探索 Podman 以获得更多有趣的功能。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论