全ての Docker コンテナを停止・削除する Python スクリプト
以前に 全コンテナを停止・削除する docker サブコマンド「docker purge」 というメモを書きました。 このメモでは Docker のプラグインとして golang で purge
というコマンドを作成しました。 Python から Docker を扱うのも簡単なので、今回は Python で同じ目的のスクリプトを書いてみました。
検証環境
対象 |
バージョン |
Ubuntu |
22.04.3LTS |
Python |
3.12.2 |
事前準備
PyPI から docker と tqdm をインストールしておきます。
| 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()
|