全ての Docker コンテナを停止・削除する Python スクリプト
以前に 全コンテナを停止・削除する docker サブコマンド「docker purge」 というメモを書きました。 このメモでは Docker のプラグインとして golang で purge というコマンドを作成しました。 Python から Docker を扱うのも簡単なので、今回は Python で同じ目的のスクリプトを書いてみました。
検証環境¶
| 対象 | バージョン |
|---|---|
| Ubuntu | 22.04.3LTS |
| Python | 3.12.2 |
事前準備¶
PyPI から docker と tqdm をインストールしておきます。
サンプルスクリプト¶
サンプルスクリプトは以下の通りです。
#!/usr/bin/env python3
import argparse
import sys
import docker
from tqdm import tqdm
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
"--stop",
action="store_true",
help="Stop the container, but does not remove it.",
)
args = parser.parse_args()
client = docker.from_env()
containers = client.containers.list(all=True)
progress = tqdm(total=len(containers), leave=False)
for container in containers:
container.stop()
if not args.stop:
container.remove()
progress.update(1)
if __name__ == "__main__":
main()