マーケットプレイス外の拡張

マーケットプレイスで利用できない拡張のインストール

警告

マーケットプレイスにない Docker 拡張は Docker によるレビュー手続きを経ていません。拡張はバイナリでインストールでき、マシン上でコマンド実行とファイルへのアクセスができるようになります。自分自身の責任でインストールしてください。

Extensions マーケットプレイスは、 Docker Desktop 内から拡張をインストールするために信頼できる公式な場所です。これらの拡張は、 Docker によるレビュー手続きを経ています。しかし、拡張の作者を信頼するのであれば、他の拡張も Docker Desktop にインストールできます。

Docker 拡張の( Docker イメージのような)性質により、拡張のソースコードを公開している場所が見つかるでしょう。たとえば、 GitHub、 GitLab だけでなく、DockerHub や GHCR のようなイメージレジストリに置かれています。コミュニティによって開発された拡張や、社内の同僚が内部的に作った拡張をインストールできます。拡張のインストールは、マーケットプレイスのみに制限されません。

注釈

Allow only extensions distributed through the Docker Marketplace (Docker マーケットプレイスで配布される拡張のみ許可)のオプションを無効化してください。そうしなければ、Extension SDK ツールを経由し、マーケットプレイス外の拡張がインストールできません。このオプション変更は Settings か、 macOS の場合は Preferences で行います。

マーケットプレイスにない拡張をインストールするには、 Docker Desktop に同梱されている Extensions CLI が使えます。

拡張をインストールするには、ターミナル内で docker extension install IMAGE[:TAG] を入力し、参照するイメージやオプションでタグを設定します。 -f`--force フラグで双方向の確認を抑制します。

Docker ダッシュボードに移動し、インストール済みの新しい拡張を確認しましょう。

インストール済み拡張の一覧

マーケットプレイスからインストールした拡張か、 Extensions CLI を使って手動でインストールした拡張かにかかわらず、インストール済みの拡張一覧は docker extension ls コマンドを使って表示できます。出力の一部で確認できるのは、拡張 ID、提供者、バージョン、タイトル、バックエンドコンテナをどこで実行しているかや、ホスト上にデプロイされたバイナリです。例:

$ docker extension ls
ID                  PROVIDER            VERSION             UI                    VM                  HOST
john/my-extension   John                latest              1 tab(My-Extension)   Running(1)          -

Docker ダッシュボードに移動し、 Add Extensions をクリックし、 Installed タブで新しい拡張をインストールできます。 UNPUBLISHED ラベルの表示は、マーケットプレイスからインストールしていない拡張ですのでご注意ください。

拡張の更新

マーケットプレイスに存在しない拡張を更新するには、ターミナルで docker extension update IMAGE[:TAG] を入力し、 TAG にはインストール済みの拡張とは異なるものを指定します。

たとえば、拡張を docker extension install john/my-extension:0.0.1 でインストール済みの場合、更新するには docker extension install john/my-extension:0.0.1 を実行します。Docker ダッシュボードに移動し、更新された新しい拡張を確認します。

注釈

マーケットプレイスを通してインストールしていない拡張は、 Docker Desktop 上で更新の通知を受け取れません。

拡張のアンインストール

マーケットプレイスにない拡張をアンインストールするには、マーケットプレイス内の Installed タブに移動し、 Uninstall ボタンを選びます。あるいは、ターミナルで docker extension uninstall IMAGE[:TAG] を入力します。