在 Podman 系列的这一部分,让我们了解一下创建和删除容器。
如果您还不知道,Podman 是用于管理容器的 Docker 替代方案。 它遵循与 Docker 类似的命令结构。
预先拉取镜像
每个容器都需要一个图像才能存在。 没有图像,什么都不会执行。 因此,需要从镜像注册表中“拉取”镜像。
一些流行的图像注册表是:
- 泊坞枢纽
- 码头.io
- 自托管图像注册中心,如 linuxserver.io
使用 Podman 拉取镜像的语法如下:
podman pull [OPTIONS] FULLY_QUALIFIED_IMAGE_NAME[:tag|@digest]
如果你想知道什么 FULLY_QUALIFIED_IMAGE_NAME
意思是,看下面的两个命令:
# with FQIN
podman pull docker.io/library/debian
# without FQIN
podman pull debian
您可能已经注意到,在完全限定的图像名称中,格式如下: registry/username/image-name
. 注册地址为 hub.docker.com
是 docker.io
.
要拉取特定标签,请在图像名称后应用标签,后跟冒号 (:
). 以下是拉取的命令 stable-slim
Debian 镜像的标签:
podman pull docker.io/library/debian:stable-slim
列出可用图像
拉取一个或多个图像后,您可以 检查哪些图像在本地可用 与 podman images
命令。 自从我拉了 debian:stable-slim
图像,我的输出如下所示:
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/debian stable-slim 86f9b934c377 2 days ago 77.8 MB
现在您有了自己的图像,您可以创建一个新容器。
创建容器
要使用 Podman 创建容器,请使用 podman run
以这种方式命令:
podman run [OPTIONS] image [COMMAND [ARGS]]
我会用 -d
保持容器在后台运行的选项。 我也会使用 -t
为 Debian 映像分配伪 TTY 的选项,因此它会继续运行。 您可以找到可用选项的完整列表 这里.
现在,我将创建一个基于 Debian 的简单容器 stable-slim
您之前拉取的图像。
podman run -d -t debian:stable-slim
如果容器创建成功,您将收到一个随机的字母数字字符串作为命令输出。 这是唯一的容器 ID。
61d1b10b5818f397c6fd8f1fc542a83810d21f81825bbfb9603b7d99f6322845
列出容器
要查看所有正在运行的容器,请使用 podman ps
命令。 这类似于 Linux 中的 ps 命令。 它不显示系统进程,而是显示正在运行的容器及其详细信息。
自从我用了 -t
选项作为保持 Debian 容器运行的 hack,让我们看看输出 podman ps
命令看起来像。
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61d1b10b5818 docker.io/library/debian:stable-slim bash 44 seconds ago Up 44 seconds ago gallant_mahavira
从这里,您可以获得有关我们的容器名称的各种详细信息。 一些细节是较短但唯一的容器 ID,用于创建此容器的图像,创建时间,主机的哪些端口映射到容器的哪些端口以及容器名称。
在这里,您可以看到使用的图像是 debian:stable-slim
,它是在 44 秒前创建的,容器名称是 gallant_mahavira
. 当未指定容器名称时,将随机生成一个名称。 您可以在使用创建容器时传递容器名称 --name CONTAINER_NAME
选项。
容器可以正在运行,也可以不运行(停止)。 停止的容器可以这样列出:
podman container list -a
我还没有任何停止的容器,所以让我们先学习如何停止它们。
停止容器
要停止容器,请使用 podman stop
命令与容器 ID 或容器名称。
下面是语法 podman stop
命令:
podman stop [CONTAINER_NAME|CONTAINER_ID]
让我使用它的名称停止正在运行的容器:
$ podman stop gallant_mahavira
gallant_mahavira
现在您可以使用上述命令列出所有容器,包括已停止的容器:
$ podman container list -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61d1b10b5818 docker.io/library/debian:stable-slim bash 14 minutes ago Exited (137) 3 minutes ago gallant_mahavira
?命令 podman ps
, podman container ps
, podman container list
和 podman container ls
所有链接到同一个二进制文件,这些命令可以互换使用。 即,您可以运行 podman ps -a
命令而不是 podman container list -a
命令并获得相同的输出。
启动已停止的容器
要启动已停止或失败的容器,请使用 podman start
命令。
假设您从 Debian 映像创建的容器失败,无论出于何种原因,您都可以使用其容器名称或 ID 重新启动它,如下所示:
$ podman start 61d1b10b5818f397c6fd8f1fc542a83810d21f81825bbfb9603b7d99f6322845
销毁容器
要完全删除或销毁容器,您可以使用 podman rm
命令。
?请确保在删除之前停止容器。
一旦容器被删除,它就不再存在。 因此,当您检查 podman container list -a
命令,容器将不存在于列表中。
这是一个 example 使用 Podman 停止和删除容器。 我在 example.
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61d1b10b5818 docker.io/library/debian:stable-slim bash 44 minutes ago Up 1 second ago gallant_mahavira
$ podman stop gallant_mahavira
gallant_mahavira
$ podman rm 61d1b10b5818
61d1b10b5818f397c6fd8f1fc542a83810d21f81825bbfb9603b7d99f6322845
$ podman container list -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
正如您现在看到的,容器完全消失了。 如果需要,您可以使用所需的任何图像创建一个新容器。
结论
本教程涵盖了使用 Podman 进行容器管理的基础知识。 您了解了如何创建容器、列出它们、停止它们和删除它们。
如果您有任何疑问,请随时发表评论!