Skip to content

全ての Docker コンテナを停止・削除する Python スクリプト

以前に 全コンテナを停止・削除する docker サブコマンド「docker purge」 というメモを書きました。 このメモでは Docker のプラグインとして golang で purge というコマンドを作成しました。 Python から Docker を扱うのも簡単なので、今回は Python で同じ目的のスクリプトを書いてみました。

検証環境

対象 バージョン
Ubuntu 22.04.3LTS
Python 3.12.2

事前準備

PyPI から dockertqdm をインストールしておきます。

1
python3 -m pip install docker tqdm

サンプルスクリプト

サンプルスクリプトは以下の通りです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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()