跳到主要内容

设置启动 Podman 并执行一些基本命令

Podman logo

Podman 是作为 libpod 库的一部分提供的实用程序。 它可以用来创建和维护容器。 下面的教程将教你如何设置启动 Podman 并执行一些基本命令。

Podman 文档

Podman 的文档位于此处

安装 Podman

要安装或构建 Podman,请参阅安装说明

熟悉 Podman

代码示例旨在以非 root 用户身份运行,并使用需要 root 升级的sudo

寻求帮助

要获得一些帮助并了解 Podman 的工作原理,您可以使用帮助::

podman --help
podman <subcommand> --help

有关更多详细信息,您可以查看联机帮助页:

man podman
man podman-<subcommand>

另请参考 Podman 故障排除指南查找已知问题以及有关如何解决常见配置错误的提示。

搜索、拉取和列出图像

Podman 可以使用一些简单的关键字搜索远程注册表上的图像.

podman search <search_term>

您还可以使用过滤器增强搜索:

podman search httpd --filter=is-official

下载(Pulling)映像也很容易.

podman pull docker.io/library/httpd

拉取一些映像后,您可以列出计算机上存在的所有映像.

podman images

注意:Podman 在不同的注册表中搜索。 因此推荐使用完整的镜像名称(docker.io/library/httpd 而不是httpd)以确保您使用正确的镜像.

运行容器

此示例容器将运行一个非常基本的 httpd 服务器,仅为其提供服务索引页.

podman run -dt -p 8080:80/tcp docker.io/library/httpd

注意:因为容器以分离模式运行,这在 podman run 命令中用 -d 表示,Podman 会在执行命令后打印出容器 ID。-t 也添加了一个伪终端,以便在交互式 shell 中运行任意命令。

注意:我们使用端口转发来访问 HTTP 服务器。为了成功运行,至少需要 slirp4netns v0.3.0 版本。

列出正在运行的容器

“podman ps”命令用于列出已创建和正在运行的容器.

podman ps

注意:如果在 podman ps 命令中添加 -a,Podman 将显示所有容器(创建、退出、运行等)。

测试 httpd 容器

正如您所看到的,容器没有分配 IP 地址。 这可以通过本地计算机上的已发布端口访问容器.

curl http://localhost:8080

在另一台机器上,您需要使用主机的 IP 地址,运行容器。.

curl http://<IP_Address>:8080

注意:除了使用curl,您还可以将浏览器指向http://localhost:8080

检查正在运行的容器

您可以“检查”正在运行的容器的元数据和有关其自身的详细信息。podman Inspection 将提供许多有用的信息,例如环境变量、网络设置或分配的资源。由于容器在 无根 模式下运行,因此没有分配 IP 地址到容器。

podman inspect -l | grep IPAddress
"IPAddress": "",

注意:“-l”是最新容器的一个方便参数。 你可以还可以使用容器的 ID 或名称来代替“-l”或长参数--latest

注意:如果您正在运行远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器,“-l”选项不可用。

查看容器的日志

您也可以使用 Podman 查看容器的日志:

podman logs -l

127.0.0.1 - - [04/May/2020:08:33:48 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:50 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:51 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:51 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:52 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:52 +0000] "GET / HTTP/1.1" 200 45

查看容器的pid

您可以使用 podman top观察容器中的httpd pid.

podman top -l

USER PID PPID %CPU ELAPSED TTY TIME COMMAND
root 1 0 0.000 22m13.33281018s pts/0 0s httpd -DFOREGROUND
daemon 3 1 0.000 22m13.333132179s pts/0 0s httpd -DFOREGROUND
daemon 4 1 0.000 22m13.333276305s pts/0 0s httpd -DFOREGROUND
daemon 5 1 0.000 22m13.333818476s pts/0 0s httpd -DFOREGROUND

停止容器

您可以停止容器:

podman stop -l

您可以使用 podman ps 检查一个或多个容器的状态命令。 在这种情况下,您应该使用 -a 参数来列出所有容器。

podman ps -a

移除容器

最后,您可以删除容器:

podman rm -l

您可以通过运行podman ps -a来验证容器的删除.

网络

有关容器中网络和 DNS 的更详细指南,请参阅 网络指南

检查点、迁移和恢复容器

对容器进行检查点会停止容器,同时写入所有容器的状态 将容器中的进程写入磁盘。 这样,容器稍后就可以 迁移和恢复,在与原来完全相同的时间点运行 检查站。 有关更多详细信息,请参阅 检查点说明

集成测试

有关如何在您的系统中设置和运行集成测试的更多信息 环境,检查集成测试 README.md

Podman Python 文档

Podman Python SDK 的文档位于 此处

更多信息

有关 Podman 及其子命令的更多信息,请查看 asciiart 演示 在 README.md 页。