- Dockerコマンドを使用する方法: Dockerコマンドを使用すると、コマンドラインからDockerコンテナを停止できます。以下は、Dockerコマンドを使用してすべてのコンテナを停止する方法です。
docker stop $(docker ps -aq)
このコマンドは、docker ps -aq
を使用して実行中のすべてのコンテナのIDを取得し、docker stop
コマンドを使用してそれらのコンテナを停止します。
- Docker APIを使用する方法: DockerはRESTful APIを提供しており、それを使用してコンテナを停止することもできます。以下は、Pythonのrequestsライブラリを使用してDocker APIを呼び出す例です。
import requests
def stop_all_containers():
url = 'http://localhost:2375/containers/json'
response = requests.get(url)
containers = response.json()
for container in containers:
container_id = container['Id']
stop_url = f'http://localhost:2375/containers/{container_id}/stop'
requests.post(stop_url)
stop_all_containers()
上記のコードでは、Docker APIの/containers/json
エンドポイントを使用してすべてのコンテナの情報を取得し、各コンテナのIDを使用して/containers/{container_id}/stop
エンドポイントにPOSTリクエストを送信してコンテナを停止しています。
- Docker SDKを使用する方法: Docker SDKは、PythonでDockerを操作するための高レベルのインターフェースです。以下は、Docker SDKを使用してすべてのコンテナを停止する例です。
import docker
def stop_all_containers():
client = docker.from_env()
containers = client.containers.list()
for container in containers:
container.stop()
stop_all_containers()
上記のコードでは、docker.from_env()
を使用してDockerクライアントを作成し、containers.list()
メソッドを使用してすべてのコンテナのリストを取得しています。各コンテナに対してstop()
メソッドを呼び出すことで、コンテナを停止しています。
この記事では、Dockerを一括停止するための3つの方法とそれに関連するコード例を紹介しました。これらの方法を使用することで、簡単に多くのコンテナを停止することができます。