如何禁用容器通过 dockerd 自动启动(当 docker 未运行时)?

如何禁用容器通过 dockerd 自动启动(当 docker 未运行时)?

我有一个系统需要维护,我想启动dockerd以便可以执行 docker 命令,不希望其现有容器自动启动。例如,在维护模式或系统升级情况下,这非常有用。我找不到处理这个问题的选项。

答案1

不是真正的答案,而是解决方法:

显示容器的RestartPolicy

find /var/lib/docker/containers/ -type f -name hostconfig.json \
-exec grep -o '"RestartPolicy[^}]*}'  {} +

要将这些策略更改为“从不”,我使用了以下脚本:

find /var/lib/docker/containers/ -type f -name hostconfig.json \
-exec grep -o '"RestartPolicy[^}]*}'  {} + |
  grep -v '"never"'  |
  cut -d: -f1
  xargs -r \
    sed  -i 's/\("RestartPolicy":{"Name":\)"[^"]*"/\1"no"/'

然后就可以启动docker了,所有的容器都会被禁用。但是,重置自动启动设置必须手动完成。

相关内容