Docker Desktop 4.18: Docker Scout の更新、コンテナー ファイル エクスプローラー GA

私たちは、統合、拡張機能、または製品で直接使用しているかどうかにかかわらず、Dockerのエクスペリエンスを向上させる方法を常に探しています。 Docker Desktop 4.18 は、コマンドラインと Docker Desktop の改善に重点を置いています。 

Docker Scout の CLI の新機能と、Docker を任意のプロジェクトにすばやく追加するのに役立つエキサイティングな CLI ベータ機能である Docker init について説明します。 また、Docker をより迅速に起動して実行するのに役立つ新機能 (コンテナー ファイル エクスプローラー、管理者不要の macOS インストール、 Docker Compose の新しい実験的機能) についても説明します。

4.青い背景に18の数字

Docker Scout CLI

Docker Desktop 4.17 では、イメージの脆弱性を可視化し、迅速な修復のための推奨事項を提供するツールである Docker Scout を導入しました。 Docker Desktop 4.18 に同梱されている Docker Scout コマンドラインにいくつかの新機能がリリースされたことをお知らせできることを嬉しく思います。 これらの更新は、圧倒的な量のコミュニティフィードバックを受け取った後に行われます。 

Docker Scout の 4.18 リリースには、脆弱性クイックビュー、コマンドラインでの直接のイメージの推奨事項、 BuildKit SBOM 使用率による改善された修復ガイダンス、およびイメージを比較するプレビュー機能が含まれています (diff の使用を想像してみてくださいが、コンテナー イメージ用です)。

クイックビュー 

新しいコンテナー イメージを作成し、そのセキュリティ体制を評価するとします。 これで、イメージに対する高レベルのセキュリティ分析情報を即座に実行できます docker scout quickview 。 問題が見つかった場合は、Docker Scoutが次に何をすべきかを案内します。

新しい「docker scout quickview」コマンドからの画像脆弱性出力を示すコマンドラインインターフェイス(cli)のスクリーンショット。
画像の脆弱性情報を示す「ドッカースカウトクイックビュー」出力

コマンド ラインの推奨事項

以前に docker scout cves イメージにどのCVEが存在するかを理解していた場合は、次にどのようなアクションを実行する必要があるのか 疑問に思ったことがあるかもしれません。 new docker scout recommendations コマンドを使用すると、基本イメージで利用可能な更新プログラムを直接提案する推奨事項の一覧が表示されます。 

このコマンドは docker scout recommendations 、イメージを分析し、基本イメージを更新または更新するための推奨事項と、脆弱性を軽減する機会やイメージ サイズを小さくする方法などの利点の一覧を表示します。

「docker scout recommendations 」コマンドを使用した後の脆弱なイメージの更新を示すコマンドラインインターフェイス(cli)のスクリーンショット。
脆弱なイメージに対して利用可能なイメージの更新を示す「Docker Scout の推奨事項」出力

ビルドキットの来歴とSBOM認証 

2023 年 1 月、 BuildKit は 、証明を使用したイメージの構築をサポートするように拡張されました。 これらのイメージは、 docker scout コマンド ラインを使用してこの情報を処理し、関連する次の手順を決定できるようになりました。 コマンドラインツールは、ビルドした基本イメージを正確に認識し、より正確な推奨事項を提供できるため docker scout 、これをサポートできます。

イメージがビルドされ、アタッチされた SBOM 構成証明を使用してプッシュされた場合は、新しいローカル SBOM を作成する代わりに、 docker scout SBOM 構成証明からパッケージ情報を読み取ります。

BuildKit を使用して構成証明付きのイメージをビルドする方法については、「BuildKit を使用したイメージの SBOM の生成」を参照してください。 

画像を比較する

手記: これは 実験的な Docker Scout 機能であり、時間の経過と共に変更および進化する可能性があります。 

脆弱性の修復を完了した後、セキュリティの問題に対処するために行われた変更を遡及的に文書化することは、良い習慣と見なされます。 Docker Desktop 4.18 では、イメージ比較の早期プレビューが導入されています。 

2 つのイメージ間の脆弱性の違いとパッケージの比較方法を比較したコマンドライン インターフェイス (CLI) のスクリーンショット。
2 つのイメージ間の脆弱性の違いの比較

この機能は、2 つのイメージ間の脆弱性の違いとパッケージの比較方法を強調しています。 これらの詳細には、パッケージのバージョン、各イメージの環境変数などが含まれます。 さらに、コマンド ライン出力はマークダウン形式で設定できます。 この情報は、GitHub Actions を介してプルリクエストで差分プレビューを生成するために使用できます。 

この差分機能を使用するシナリオを想像できるものを教えてください。 これを行うには、Docker デスクトップを開き、[ イメージ] タブに移動して、[ フィードバックの送信] を選択します。

これらの機能の詳細については 、ドキュメント を参照してください。 

コンテナファイルエクスプローラー 

もう1つの機能として、コンテナファイルエクスプローラーのGAリリースがあります。 コンテナ内のファイルをチェックしたり、すばやく置き換えたりする必要がある場合は、コンテナファイルエクスプローラーを使用すると、Docker DesktopのUIから直接これを行うことができます。 

長いCLIコマンドを覚えたり、コマンドの docker cp 長いパスパラメータをいじったり、コンテナにファイルをチェックするためのシェルがまったくないことに不満を感じたりする必要はありません。 コンテナー エクスプローラーには、次のことができるシンプルな UI が用意されています。

  • コンテナファイルシステムの確認
  • ホストとコンテナ間でファイルとフォルダをコピーする
  • ファイルをコンテナに簡単にドラッグアンドドロップ
  • 構文の強調表示でファイルをすばやく編集する
  • ファイルを削除する

コンテナー エクスプローラーを使用すると、コンテナーのファイルを任意の状態 (停止/実行中/一時停止/...) で、スリム コンテナー/スリム イメージ (シェルのないコンテナー) を含む任意のコンテナーの種類で表示できます。 ダッシュボードを開き、[ コンテナー] タブに移動し、コンテナー アクション メニューを開き、ファイルを確認します。

[コンテナー] タブの新しいコンテナー ファイル エクスプローラー機能を備えた Docker デスクトップ インターフェイスのスクリーンショット。
Docker デスクトップのコンテナー エクスプローラー UI

macOS への管理者不要のインストール

macOSのインストールフローを調整して、開発者が管理者権限を付与せずにDockerデスクトップを非常に簡単にインストールできるようにしました。 一部の開発者は、コンピューター上でローカル管理者アクセスが禁止されている可能性がある、セキュリティ要件が高い環境で作業しています。 これらの環境のユーザーが、管理者特権を必要とする Docker Desktop 機能をオプトアウトできるようにしたいと考えました。

macOSのデフォルトのインストールフローでは、開発者のユースケースの大部分に最適化されたエクスペリエンスを提供できると考えているため、引き続き管理者権限が必要です。 管理者権限を付与すると、Docker Desktop によって Docker CLI ツールが自動的にインストールされ、サードパーティのライブラリが Docker とシームレスに統合され (デフォルトの Docker ソケットを有効にすることで)、ユーザーが 1 から 1024 までの特権ポートにバインドできるようになります。 

インストール時に構成した設定を変更する場合は、Dockerデスクトップの[設定]の [ 詳細設定]タブで簡単に変更できます。

Docker init (Beta)

ベータ版でリリースするもう一つのエキサイティングな機能はです docker init。 これは、必要なアセット (Dockerfiles、Compose files、.dockerignore ) を自動的に作成することで、プロジェクトに Docker をすばやく追加できる新しい CLI コマンドです。 この機能を使用すると、Dockerに慣れていない場合でも、コンテナを使用して実行するように既存のプロジェクトを簡単に更新したり、新しいプロジェクトをセットアップしたりできます。

最新バージョンのDocker Desktop(4.18.0)に更新し、ターゲットプロジェクトフォルダー内でコマンドラインに入力 docker init することで試すことができます docker initdocker init Dockerでプロジェクトを実行するために必要なすべてのファイルを作成します。 

詳細については docker init ドキュメント を参照してください。

ベータ版には docker init Goサポートが付属しており、DockerチームはすでにNode.js、Python、Java、Rust、.Netなどの言語とフレームワークの追加に加えて、今後数か月以内にその他の機能の追加に取り組んでいます。 サポートを希望する特定の言語またはフレームワークがある場合は、 お知らせください。 その他のフィードバックや提案は、 公開ロードマップでお寄せください。

手記: docker init コマンドで docker run –initフラグを使用するときにDockerによって呼び出される内部で使用されるdocker-init実行可能ファイルと混同しないでください。詳細については 、ドキュメント を参照してください。 

ベータコマンド「docker init」の出力のスクリーンショットと、docker init cliへようこそ!表示
開始方法に関する「docker init」コマンドライン出力

Docker 作成ファイル ウォッチ (実験的)

Docker Composeには新しいトリックがあります! Docker Compose File Watch は、作業中にすべてのサービス コンテナーを自動的に最新の状態に保つための 実験的な機能 として利用できるようになりました。

4.18 リリースでは、オプションで次のサービス compose.yaml に新しいセクションを追加できます x-develop

services:
  web:
    build: .
    # !!! x-develop is experimental !!!
    x-develop:
      watch:
        - action: sync
          path: ./web
          target: /app/web
        - action: rebuild
          path: .package.json

構成が完了すると、新しい docker compose alpha watch コマンドはプロジェクト内のファイル編集の監視を開始します。

  • への ./web/App.jsx変更について , たとえば、Composeはそれをコンテナ内に自動的に /src/web/App.jsx 同期します。
  • 一方、変更 package.json した場合 (新しい npm パッケージをインストールするなど)、Compose はイメージを再構築し、既存のサービスを更新されたバージョンに置き換えます。

ファイル作成ウォッチモードはほんの始まりに過ぎません。 前回の Docker Compose リリースから 100 件近くのコミットが行われ、バグが解消され、生活の質が大幅に改善されました。 (最近の初めての貢献者全員への特別な叫び声!

私たちは Docker Compose File Watch に興奮しており、基盤となるメカニズムと構成形式に積極的に取り組んでいます。

結論

これで、Dockerデスクトップ4.18アップデートの終了です。 このリリースには、形作るのに役立つものを含む、多くのクールな新機能が含まれています! また、一部の CVE に対処するために Docker エンジンも更新しました。 いつものように、私たちはあなたのフィードバックを聞くのが大好きです。 公開されている GitHub ロードマップ にフィードバックを残し、他に何を見たいかをお知らせください。 

Docker Desktop 4.18 の新機能の完全な内訳については、リリースノートを確認してください