我让一个容器说"hello“,我尝试使用podman命令启动、停止和重新启动。
podman版本: 3.3.1 on RHEL
我正在运行以下命令:
podman start hellopodman stop hellopodman start hello第三个命令给出的错误如下:
Error: no container with name or ID "hello" found: no such container我运行了podman ps和podman ps -a来检查运行情况和可用的容器resp。但没有显示"hello“容器。
我发现了以前在github上有人提出的这个bug链接,虽然我没有使用“-rm”命令,但仍然存在这个问题。
我在这里遗漏了什么,或者有什么更多的信息需要添加到这个问题上?
发布于 2022-05-27 15:15:19
除非使用--rm标志创建容器,否则在停止容器时不会自动删除容器。
您没有指定如何创建hello容器。创建它时,是否将--rm传递给podman create?您所描述的行为对应于使用--rm标志创建容器的场景。
AutoRemove
如果您想知道主机在退出后是否会自动删除给定的容器,请检查HostConfig对象的HostConfig布尔字段:
podman inspect --format \
'automatically remove: {{if .HostConfig.AutoRemove}}yes{{else}}no{{end}}' \
hello这将显示automatically remove: yes或automatically remove: no。
使用--rm的示例
我们使用hello标志创建以下容器--rm:
podman create --rm --name hello alpine sleep 5000我们可以使用podman ps -a检查hello容器是否存在并创建状态。
我们还可以检查AutoRemove字段是否设置为true:
$ podman inspect --format '{{.HostConfig.AutoRemove}}' hello
true然后,我们使用podman start hello启动容器。您可以检查容器是否与podman ps一起运行。
如果现在使用podman stop hello停止容器,您将无法在podman ps -a提供的容器列表中再看到它。也就是说,容器已经被自动删除了。
没有--rm的示例
如果我们重复相同的过程,但是在创建--rm容器时没有hello标志,那么当它停止时,容器不会被自动移除:
--rm的情况下创建容器:
波德曼创造--名字叫你好,高寒睡眠5000
检查AutoRemove字段是否设置为false:
$ podman检查--格式{{.HostConfig.AutoRemove}‘hello falsepodman ps -a检查容器是否仍然存在。这一次,如果要删除容器,则需要手动执行:
podman container rm -f hello发布于 2022-05-31 06:27:41
我会写下对我起作用的命令。(感谢@ネロク提供了有用的命令)
在我的情况下,我已经有容器在机器中。找到它如何运行的唯一方法是使用命令。
podman inspect --format '{{.HostConfig.AutoRemove}}' hello输出:
容器使用--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 containerhttps://stackoverflow.com/questions/72391893
复制相似问题