跳转到主要内容

Podman 入门指南

首要之事:安装 Podman

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

获取帮助

帮助和手册页

要了解更多详情,您可以查阅手册页

$ man podman 
$ man podman subcommand

要获取帮助并了解 Podman 的工作原理,您可以使用 help 命令。

$ podman --help # get a list of all commands 
$ podman subcommand --help # get info on a command

另请参考 Podman 故障排除指南 以查找已知问题和解决常见配置错误的技巧。

搜索、拉取和列出镜像

$ podman search httpd 
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/library/httpd The Apache HTTP Server Project 3762 [OK]
docker.io docker.io/centos/httpd-24-centos7 Platform for running Apache h... 40
quay.io quay.io/centos7/httpd-24-centos-7 Platform for running Apache h... 0 [OK]
docker.io docker.io/centos/httpd 34 [OK]
redhat.com registry.access.redhat.com/ubi8/httpd 0
quay.io quay.io/redhattraining/httpd-parent 0 [OK]



$ podman search httpd --filter=is-official
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/library/httpd The Apache HTTP Server Project 3762 [OK]
$ podman pull docker.io/library/httpd
Trying to pull docker.io/library/httpd:latest...
Getting image source signatures
Copying blob ab86dc02235d done
Copying blob ba1caf8ba86c done
Copying blob eff15d958d66 done
Copying blob 635a49ba2501 done
Copying blob 600feb748d3c done
Copying config d294bb32c2 done
Writing manifest to image destination
Storing signatures
d294bb32c2073ecb5fb27e7802a1e5bec334af69cac361c27e6cb8546fdd14e7



$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/httpd latest d294bb32c207 12 hours ago 148 MB

运行容器和列出正在运行的容器

这个示例容器将运行一个非常基础的 httpd 服务器,该服务器只提供其索引页面。

运行容器

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

因为容器以分离模式运行(由 podman run 命令中的 -d 表示),Podman 将在后台运行该容器,并在执行命令后打印出容器 ID。-t 选项还会添加一个伪 TTY,以便在交互式 shell 中运行任意命令。

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

列出正在运行的容器

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

$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
01c44968199f docker.io/library/httpd:latest httpd-foreground 1 minute ago Up 1 minute 0.0.0.0:8080->80/tcp laughing_bob
注意

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

测试 httpd 容器

如您所见,该容器没有分配 IP 地址。可以通过您本地机器上发布的端口来访问该容器。

$ curl https://:8080

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

$ curl http://<IP_Address>:8080
注意

除了使用 curl,您也可以用浏览器访问 https://:8080