Podman 停止命令删除容器
Podman stop command removes container
我正在让一个容器说“你好”,我正在尝试使用 podman 命令启动、停止和重新启动它。
[podman 版本:RHEL 上的 3.3.1]
我是运行这个命令:
podman start hello
podman stop hello
podman start hello
第三个命令给出错误为:
Error: no container with name or ID "hello" found: no such container
我运行podmanps和podmanps -a 检查 运行 和可用容器。但是 none 显示“hello”容器。
我发现这个 link 之前有人在 github 上提出的错误,虽然我没有使用“--rm”命令但仍然遇到这个问题。
Podman stop removes the container
我在这里遗漏了什么或者需要向这个问题添加更多信息吗?
容器在您停止时不会自动删除,除非您使用 --rm
标志创建容器。
您没有指定如何创建 hello
容器。创建它时,您是否将 --rm
传递给 podman create
?您所描述的行为对应于使用 --rm
标志创建容器的场景。
AutoRemove
如果你想知道主机退出后是否会自动删除给定的容器,那么检查HostConfig
对象的AutoRemove
布尔字段:
podman inspect --format \
'automatically remove: {{if .HostConfig.AutoRemove}}yes{{else}}no{{end}}' \
hello
这将显示 automatically remove: yes
或 automatically remove: no
。
示例 --rm
我们使用 --rm
标志创建以下容器 hello
:
podman create --rm --name hello alpine sleep 5000
我们可以用 podman ps -a
检查 hello
容器是否存在并且状态为 created.
我们还可以检查 AutoRemove
字段是否设置为 true:
$ podman inspect --format '{{.HostConfig.AutoRemove}}' hello
true
然后,我们用podman start hello
启动容器。您可以检查容器是否 运行 podman ps
.
如果您现在使用 podman stop hello
停止容器,您将无法再在 podman ps -a
提供的容器列表中看到它。即容器已被自动删除.
示例没有 --rm
如果我们重复相同的过程,但是在创建hello
容器时没有--rm
标志,这次容器停止时不会自动删除:
不通过--rm
:
创建容器
podman create --name hello alpine sleep 5000
检查 AutoRemove
字段是否设置为 false:
$ podman inspect --format '{{.HostConfig.AutoRemove}}' hello
false
开始吧:
podman start hello
停止:
podman stop hello
您现在可以使用 podman ps -a
检查容器是否仍然存在。
重新启动它:
podman restart hello
这次如果要移除容器,需要手动操作:
podman container rm -f hello
我会写下对我有用的命令。
(感谢@ネロク 的帮助命令)
就我而言,我的机器中已经存在容器。找到它如何 运行 的唯一方法是使用命令
podman inspect --format '{{.HostConfig.AutoRemove}}' hello
输出:
true --> 容器 运行 带有 --rm 参数
podman run -d --rm hello
false--> 容器 运行 没有 --rm 参数 podman run -d hello
对于第一种情况,当您停止容器时,它实际上会从您的机器中删除。
因此,在停止后尝试启动容器时会出错,
podman start hello
Error: no container with name or ID "hello" found: no such container
我正在让一个容器说“你好”,我正在尝试使用 podman 命令启动、停止和重新启动它。
[podman 版本:RHEL 上的 3.3.1]
我是运行这个命令:
podman start hello
podman stop hello
podman start hello
第三个命令给出错误为:
Error: no container with name or ID "hello" found: no such container
我运行podmanps和podmanps -a 检查 运行 和可用容器。但是 none 显示“hello”容器。
我发现这个 link 之前有人在 github 上提出的错误,虽然我没有使用“--rm”命令但仍然遇到这个问题。
Podman stop removes the container
我在这里遗漏了什么或者需要向这个问题添加更多信息吗?
容器在您停止时不会自动删除,除非您使用 --rm
标志创建容器。
您没有指定如何创建 hello
容器。创建它时,您是否将 --rm
传递给 podman create
?您所描述的行为对应于使用 --rm
标志创建容器的场景。
AutoRemove
如果你想知道主机退出后是否会自动删除给定的容器,那么检查HostConfig
对象的AutoRemove
布尔字段:
podman inspect --format \
'automatically remove: {{if .HostConfig.AutoRemove}}yes{{else}}no{{end}}' \
hello
这将显示 automatically remove: yes
或 automatically remove: no
。
示例 --rm
我们使用 --rm
标志创建以下容器 hello
:
podman create --rm --name hello alpine sleep 5000
我们可以用 podman ps -a
检查 hello
容器是否存在并且状态为 created.
我们还可以检查 AutoRemove
字段是否设置为 true:
$ podman inspect --format '{{.HostConfig.AutoRemove}}' hello
true
然后,我们用podman start hello
启动容器。您可以检查容器是否 运行 podman ps
.
如果您现在使用 podman stop hello
停止容器,您将无法再在 podman ps -a
提供的容器列表中看到它。即容器已被自动删除.
示例没有 --rm
如果我们重复相同的过程,但是在创建hello
容器时没有--rm
标志,这次容器停止时不会自动删除:
不通过
创建容器--rm
:podman create --name hello alpine sleep 5000
检查
AutoRemove
字段是否设置为 false:$ podman inspect --format '{{.HostConfig.AutoRemove}}' hello false
开始吧:
podman start hello
停止:
podman stop hello
您现在可以使用
podman ps -a
检查容器是否仍然存在。重新启动它:
podman restart hello
这次如果要移除容器,需要手动操作:
podman container rm -f hello
我会写下对我有用的命令。 (感谢@ネロク 的帮助命令)
就我而言,我的机器中已经存在容器。找到它如何 运行 的唯一方法是使用命令
podman inspect --format '{{.HostConfig.AutoRemove}}' hello
输出:
true --> 容器 运行 带有 --rm 参数
podman run -d --rm hello
false--> 容器 运行 没有 --rm 参数 podman run -d hello
对于第一种情况,当您停止容器时,它实际上会从您的机器中删除。 因此,在停止后尝试启动容器时会出错,
podman start hello
Error: no container with name or ID "hello" found: no such container