docker buildx stop コマンドでビルダーインスタンスを管理する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker buildx stopコマンドを使用して Docker ビルダーインスタンスを管理する方法を学びます。ビルダー環境のライフサイクルを効果的に制御するための基本的な手順を解説します。

具体的には、新しいビルダーインスタンスの作成、デフォルトビルダーインスタンスの停止、および名前を指定した特定のビルダーインスタンスの停止方法を学習します。この実践的な経験を通じて、さまざまなビルド設定を管理し、Docker イメージのビルドプロセスを最適化するスキルを習得できます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555063{{"docker buildx stop コマンドでビルダーインスタンスを管理する方法"}} docker/stop -.-> lab-555063{{"docker buildx stop コマンドでビルダーインスタンスを管理する方法"}} docker/create -.-> lab-555063{{"docker buildx stop コマンドでビルダーインスタンスを管理する方法"}} end

新しいビルダーインスタンスの作成

このステップでは、Docker で新しいビルダーインスタンスを作成する方法を学びます。ビルダーインスタンスは Docker イメージをビルドするためのバックエンドです。デフォルトでは Docker は単一のビルダーインスタンスを使用しますが、異なるビルドドライバーを使用したりリモートビルダーに接続するなど、さまざまな設定で新しいインスタンスを作成できます。

新しいビルダーインスタンスを作成するには、docker buildx createコマンドを使用します。このコマンドでは、名前やドライバー、エンドポイントなど、新しいインスタンスのさまざまなオプションを指定できます。

mybuilderという名前の新しいビルダーインスタンスを作成してみましょう。デフォルトのdockerドライバーを使用します。このドライバーは Docker デーモンを使用してイメージをビルドします。

docker buildx create --name mybuilder

このコマンドを実行すると、Docker は指定した名前で新しいビルダーインスタンスを作成します。以下のような出力が表示されるはずです:

mybuilder

この出力はmybuilderインスタンスが作成されたことを確認しています。

次に、新しいビルダーインスタンスが正常に作成されたことを確認しましょう。利用可能なすべてのビルダーインスタンスをリスト表示するにはdocker buildx lsコマンドを使用します。

docker buildx ls

このコマンドの出力には、デフォルトのインスタンスと先ほど作成したmybuilderインスタンスを含むビルダーインスタンスのリストが表示されます。リスト内のmybuilderエントリを探してください。

NAME/NODE       DRIVER/ENDPOINT STATUS  BUILDKIT
default         docker
  default       default         running v0.10.5
mybuilder       docker
  mybuilder     default         running v0.10.5

出力では、mybuilderdockerドライバーとrunningステータスでリストされていることがわかります。これは新しいビルダーインスタンスが使用可能な状態であることを示しています。

デフォルトビルダーインスタンスの停止

このステップでは、Docker のデフォルトビルダーインスタンスを停止する方法を学びます。デフォルトビルダーインスタンスは、Docker がデフォルトでイメージビルドに使用するインスタンスです。別のビルダーインスタンスに切り替えたり、問題をトラブルシューティングする場合などに停止する必要が生じることがあります。

ビルダーインスタンスを停止するには、docker buildx stopコマンドの後にインスタンス名を指定します。デフォルトビルダーインスタンスは通常defaultという名前です。

デフォルトビルダーインスタンスを停止してみましょう。

docker buildx stop default

このコマンドを実行すると、Docker はデフォルトビルダーインスタンスの停止を試みます。インスタンスが実行中であれば停止されます。コマンドが成功した場合、特に出力は表示されないかもしれません。

次に、デフォルトビルダーインスタンスが停止されたことを確認しましょう。再びdocker buildx lsコマンドを使用してビルダーインスタンスをリスト表示し、そのステータスを確認します。

docker buildx ls

docker buildx lsコマンドの出力を見てください。defaultビルダーインスタンスのステータスはstoppedになっているか、実行中のインスタンスリストに表示されていないはずです。

NAME/NODE       DRIVER/ENDPOINT STATUS  BUILDKIT
default         docker
  default       default         stopped
mybuilder       docker
  mybuilder     default         running v0.10.5

上記の出力では、defaultビルダーのdefaultノードのステータスがstoppedに変わっていることが確認できます。これにより、デフォルトビルダーインスタンスが正常に停止されたことが確認できます。

名前を指定して特定のビルダーインスタンスを停止する

このステップでは、名前を指定して特定のビルダーインスタンスを停止する方法を学びます。前のステップでmybuilderという名前の新しいビルダーインスタンスを作成しました。今回はこの特定のインスタンスを停止します。

デフォルトインスタンスを停止する場合と同様に、docker buildx stopコマンドを使用しますが、今回は停止したい特定のインスタンス名を指定します。

mybuilderインスタンスを停止してみましょう。

docker buildx stop mybuilder

このコマンドを実行すると、Docker はmybuilderインスタンスを停止します。コマンドが成功した場合、特に出力は表示されないかもしれません。

mybuilderインスタンスが停止されたことを確認するために、docker buildx lsコマンドを使用してビルダーインスタンスをリスト表示し、そのステータスを確認します。

docker buildx ls

docker buildx lsコマンドの出力を確認してください。mybuilderインスタンスのステータスはstoppedになっているはずです。

NAME/NODE       DRIVER/ENDPOINT STATUS  BUILDKIT
default         docker
  default       default         stopped
mybuilder       docker
  mybuilder     default         stopped

出力からわかるように、mybuilderビルダーのmybuilderノードのステータスがstoppedに変わっています。これにより、名前を指定して特定のビルダーインスタンスを正常に停止できたことが確認できます。

まとめ

この実験では、docker buildxコマンドを使用して Docker ビルダーインスタンスを管理する方法を学びました。まずdocker buildx create --name mybuilderコマンドでmybuilderという名前の新しいビルダーインスタンスを作成し、docker buildx lsでその作成を確認しました。

次に、ビルダーインスタンスを停止する方法を学びました。この実験では、デフォルトのビルダーインスタンスを停止する方法と、名前を指定して特定のビルダーインスタンスを停止する方法を実践しました。これらの手順は、Docker ビルド環境のライフサイクルを管理する上で非常に重要です。