如何将运行中的Docker容器从自删除策略更改为自动重启策略

49次阅读
没有评论

问题描述

在管理一个已经启动的 Docker 容器时,需要将其从自删除策略更改为自动重启策略。容器在启动时使用了 --rm 参数,导致在容器退出后会自动删除,用户怀疑这可能导致容器在重启后无法正常启动。用户想知道是否有办法移除运行中容器的 --rm 策略,以便容器可以在重启后保持运行状态。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

修改容器的自动重启策略

如果你想要在容器重启后能够自动启动,你可以使用 Docker 的 docker update 命令来修改容器的重启策略。具体操作如下:

docker update --restart always <containerID>/<containerName>

这会将容器的重启策略设置为 always,即无论容器如何退出,Docker 都会自动重启它。

移除容器的自删除策略

然而,关于移除运行中容器的 --rm 策略,目前并没有直接的方法可以在容器运行时修改容器的参数。容器启动时的参数通常是不可更改的,包括 --rm 策略。如果容器已经启动并使用了 --rm 参数,那么只能等容器退出后重新启动一个没有 --rm 参数的新容器。

在你的情况下,如果你希望在容器退出后能够保留其状态并重启,你需要做的是:
1. 停止并移除当前的容器:使用 docker stop <containerID>/<containerName> 停止容器,然后使用 docker rm <containerID>/<containerName> 移除容器。
2. 启动一个新的容器:根据你的需要,使用正确的参数和配置使用 docker run 命令启动一个新容器,确保不使用 --rm 参数。

总结而言,要实现从自删除策略到自动重启策略的转变,你需要停止并移除当前的容器,然后使用正确的参数重新启动一个新的容器。

针对一些高级用例,如集群部署,你也可以考虑启用 Docker Swarm 模式并将容器部署为服务,以实现更灵活的容器管理和自动重启。

总结

要将一个运行中的 Docker 容器从自删除策略更改为自动重启策略,你需要使用 docker update 命令来设置容器的重启策略为 always。然而,移除容器的自删除策略并不直接支持,你需要停止并移除当前的容器,并使用正确的参数重新启动一个新的容器,以实现所需的重启策略。在一些高级用例中,你还可以考虑使用 Docker Swarm 模式来更好地管理容器。

正文完