设置启动 Podman 并执行一些基本命令
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 页。