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を起動すると、すべてのコンテナが無効になります。ただし、自動起動設定のリセットは手動で行う必要があります。

関連情報