docker buildx use コマンドでビルダーインスタンスを切り替える方法

DockerDockerBeginner
今すぐ練習

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

はじめに

この実験では、docker buildx useコマンドを使用して異なる Docker ビルダーインスタンスを管理および切り替える方法を学びます。まず、Docker イメージをビルドするための選択肢として複数のビルダーインスタンスを作成します。

これらのインスタンスを作成した後、利用可能なすべてのビルダーインスタンスを一覧表示して詳細とステータスを確認する方法を学びます。この実験の核心部分では、ビルド操作のために特定のビルダーインスタンスに切り替えるdocker buildx useコマンドの使用方法に焦点を当てます。最後に、ビルダーを現在のコンテキストのデフォルトとして設定する方法や、コンテキスト変更を永続化するようにビルダーを構成する方法について探求します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555064{{"docker buildx use コマンドでビルダーインスタンスを切り替える方法"}} docker/create -.-> lab-555064{{"docker buildx use コマンドでビルダーインスタンスを切り替える方法"}} docker/build -.-> lab-555064{{"docker buildx use コマンドでビルダーインスタンスを切り替える方法"}} end

複数のビルダーインスタンスを作成

このステップでは、Docker を使用して複数のビルダーインスタンスを作成する方法を学びます。ビルダーインスタンスは Docker イメージをビルドするために使用されます。デフォルトでは、Docker は単一のビルダーインスタンスを使用します。しかし、ビルドパフォーマンスを向上させたり、異なるビルド設定を使用したりするために、複数のビルダーインスタンスを作成できます。

まず、現在のビルダーインスタンスを確認しましょう。

docker buildx ls

デフォルトのビルダーインスタンスが表示されるはずです。次に、mybuilder1という名前の新しいビルダーインスタンスを作成します。

docker buildx create --name mybuilder1

このコマンドは新しいビルダーインスタンスを作成します。ビルダーインスタンスを再度リスト表示することで、新しいインスタンスが作成されたことを確認できます。

docker buildx ls

デフォルトのビルダーとmybuilder1の両方が表示されるはずです。

さらに、mybuilder2という名前の別のビルダーインスタンスを作成しましょう。

docker buildx create --name mybuilder2

再度、新しいインスタンスの作成を確認します。

docker buildx ls

これで、デフォルトのビルダー、mybuilder1mybuilder2の 3 つが表示されるはずです。

利用可能なビルダーインスタンスの一覧表示

前のステップでは、複数のビルダーインスタンスを作成しました。このステップでは、これらの利用可能なビルダーインスタンスを一覧表示し、そのステータスと詳細を確認することに焦点を当てます。

ビルダーインスタンスを一覧表示するコマンドはdocker buildx lsです。このコマンドは、システム上で利用可能なすべてのビルダーインスタンスに関する情報を提供します。

前のステップで作成したビルダーインスタンスを確認するため、再度このコマンドを実行しましょう。

docker buildx ls

出力には、NAMEDRIVERENDPOINTSTATUSBUILDERなどの列を持つテーブルが表示されます。

  • NAME: ビルダーインスタンスの名前
  • DRIVER: ビルダーインスタンスが使用するドライバ(例:docker-container
  • ENDPOINT: ビルダーが接続しているエンドポイント
  • STATUS: ビルダーインスタンスの現在の状態(例:runningstopped
  • BUILDER: 現在使用中のビルダーかどうかを示す

出力には、デフォルトのビルダーとmybuilder1mybuilder2が表示されるはずです。作成したビルダーのSTATUS列は、自動的に起動した場合はrunning、そうでない場合はstoppedと表示されます。

このコマンドは、イメージをビルドする前にどのビルダーが利用可能で、その現在の状態を確認するのに役立ちます。

特定のビルダーインスタンスに切り替える

このステップでは、特定のビルダーインスタンスに切り替える方法を学びます。複数のビルダーインスタンスがある場合、Docker イメージのビルドに使用するインスタンスを選択できます。

特定のビルダーインスタンスに切り替えるには、docker buildx useコマンドの後にビルダーインスタンス名を指定します。

前のステップで作成したmybuilder1インスタンスに切り替えてみましょう。

docker buildx use mybuilder1

このコマンドを実行すると、mybuilder1インスタンスが現在の Docker コンテキストでアクティブなビルダーになります。

どのビルダーが現在アクティブかを確認するには、再度ビルダーインスタンスを一覧表示します。アクティブなビルダーにはBUILDER列にアスタリスク (*) が表示されます。

docker buildx ls

出力でmybuilder1の横にアスタリスクが表示され、これが現在のアクティブビルダーであることがわかります。

次に、mybuilder2インスタンスに切り替えてみましょう。

docker buildx use mybuilder2

mybuilder2がアクティブビルダーになったことを確認します。

docker buildx ls

今度はmybuilder2の横にアスタリスクが表示されるはずです。

ビルダーインスタンスを切り替えることで、必要に応じて異なるビルド環境や設定を簡単に利用できます。

現在のコンテキストでデフォルトビルダーを設定する

前のステップでは、現在のセッションで特定のビルダーインスタンスに切り替える方法を学びました。このステップでは、現在の Docker コンテキストでデフォルトのビルダーインスタンスを設定する方法を学びます。これにより、このコンテキスト内で Docker コマンドを使用する際、指定したビルダーが自動的に使用されるようになります。

現在のコンテキストでデフォルトビルダーを設定するには、docker buildx useコマンドに--defaultフラグを付け、ビルダーインスタンス名を指定します。

mybuilder1を現在のコンテキストのデフォルトビルダーとして設定してみましょう。

docker buildx use --default mybuilder1

このコマンドを実行すると、mybuilder1がこのコンテキストのデフォルトビルダーになります。

ビルダーインスタンスを一覧表示することで確認できます。デフォルトビルダーにはアスタリスク (*) が付き、出力にdefaultと表示されます。

docker buildx ls

mybuilder1がアクティブビルダー(*) かつデフォルトビルダーとして表示されるはずです。

次に、mybuilder2をデフォルトビルダーとして設定しましょう。

docker buildx use --default mybuilder2

mybuilder2がデフォルトビルダーになったことを確認します。

docker buildx ls

今度はmybuilder2がアクティブかつデフォルトとして表示されるはずです。

特定の Docker コンテキスト内でプロジェクトに一貫して特定のビルダーを使用したい場合に、デフォルトビルダーを設定すると便利です。

ビルダーの設定を永続化する

前のステップでは、ビルダーの切り替え方法と現在のコンテキストでのデフォルトビルダー設定方法を学びました。しかし、これらの変更は Docker の設定によっては、異なるターミナルセッション間やシステム再起動時に保持されない場合があります。このステップでは、ターミナルの再起動や Docker デーモンの再起動後も選択したビルダーがデフォルトとして保持される方法を確認します。

docker buildx use --defaultコマンドは、現在の Docker コンテキストのデフォルトビルダーを設定します。この設定は通常、Docker の設定ファイルに保存されます。この変更を永続化するために、デフォルト設定以外の特別なコマンドは通常必要ありません。--defaultフラグは、特定のコンテキストに対してこの変更を永続化するように設計されています。

mybuilder2がデフォルトビルダーとして設定されていることを再確認しましょう。

docker buildx ls

mybuilder2がデフォルトビルダーとして表示されているはずです。

この設定の永続性は Docker の設定管理に依存しています。docker buildx use --defaultを使用すると、Docker はアクティブなコンテキストに対してこの選択を反映するように設定を更新します。この設定は Docker 起動時に読み込まれ、デフォルトで優先するビルダーが使用されるようになります。

--default以外に設定を「永続化」するための特別なコマンドはありませんが、--defaultフラグが Docker コンテキスト内でこの永続性を処理していることを理解することが重要です。

永続性を実際にテストするには、通常 Docker デーモンを再起動するか、新しいターミナルセッションを開き、docker buildx lsを使用してデフォルトビルダーを再度確認します。この実験環境では、--defaultフラグを使用することで、現在のコンテキストに対して永続的なデフォルトを設定する意図した動作を確認できます。

まとめ

この実験では、docker buildxコマンドを使用して Docker ビルダーインスタンスを管理する方法を学びました。最初に複数のビルダーインスタンスを作成し、デフォルトのビルダーに加えて新しいビルダーを追加する方法を実践しました。次に、docker buildx lsを使用して利用可能なビルダーインスタンスを一覧表示し、それらの名前、ドライバー、エンドポイント、ステータスを確認しました。このステップは、利用可能なビルド環境を理解する上で重要です。