私たちは、統合、拡張機能、または製品で直接使用しているかどうかにかかわらず、Dockerのエクスペリエンスを向上させる方法を常に探しています。 Docker Desktop 4.18 は、コマンドラインと Docker Desktop の改善に重点を置いています。
Docker Scout の CLI の新機能と、Docker を任意のプロジェクトにすばやく追加するのに役立つエキサイティングな CLI ベータ機能である Docker init について説明します。 また、Docker をより迅速に起動して実行するのに役立つ新機能 (コンテナー ファイル エクスプローラー、管理者不要の macOS インストール、 Docker Compose の新しい実験的機能) についても説明します。
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 cves
イメージにどのCVEが存在するかを理解していた場合は、次にどのようなアクションを実行する必要があるのか 疑問に思ったことがあるかもしれません。 new docker scout recommendations
コマンドを使用すると、基本イメージで利用可能な更新プログラムを直接提案する推奨事項の一覧が表示されます。
このコマンドは docker scout recommendations
、イメージを分析し、基本イメージを更新または更新するための推奨事項と、脆弱性を軽減する機会やイメージ サイズを小さくする方法などの利点の一覧を表示します。
ビルドキットの来歴とSBOM認証
2023 年 1 月、 BuildKit は 、証明を使用したイメージの構築をサポートするように拡張されました。 これらのイメージは、 docker scout
コマンド ラインを使用してこの情報を処理し、関連する次の手順を決定できるようになりました。 コマンドラインツールは、ビルドした基本イメージを正確に認識し、より正確な推奨事項を提供できるため docker scout
、これをサポートできます。
イメージがビルドされ、アタッチされた SBOM 構成証明を使用してプッシュされた場合は、新しいローカル SBOM を作成する代わりに、 docker scout
SBOM 構成証明からパッケージ情報を読み取ります。
BuildKit を使用して構成証明付きのイメージをビルドする方法については、「BuildKit を使用したイメージの SBOM の生成」を参照してください。
画像を比較する
手記: これは 実験的な Docker Scout 機能であり、時間の経過と共に変更および進化する可能性があります。
脆弱性の修復を完了した後、セキュリティの問題に対処するために行われた変更を遡及的に文書化することは、良い習慣と見なされます。 Docker Desktop 4.18 では、イメージ比較の早期プレビューが導入されています。
この機能は、2 つのイメージ間の脆弱性の違いとパッケージの比較方法を強調しています。 これらの詳細には、パッケージのバージョン、各イメージの環境変数などが含まれます。 さらに、コマンド ライン出力はマークダウン形式で設定できます。 この情報は、GitHub Actions を介してプルリクエストで差分プレビューを生成するために使用できます。
この差分機能を使用するシナリオを想像できるものを教えてください。 これを行うには、Docker デスクトップを開き、[ イメージ] タブに移動して、[ フィードバックの送信] を選択します。
これらの機能の詳細については 、ドキュメント を参照してください。
コンテナファイルエクスプローラー
もう1つの機能として、コンテナファイルエクスプローラーのGAリリースがあります。 コンテナ内のファイルをチェックしたり、すばやく置き換えたりする必要がある場合は、コンテナファイルエクスプローラーを使用すると、Docker DesktopのUIから直接これを行うことができます。
長いCLIコマンドを覚えたり、コマンドの docker cp
長いパスパラメータをいじったり、コンテナにファイルをチェックするためのシェルがまったくないことに不満を感じたりする必要はありません。 コンテナー エクスプローラーには、次のことができるシンプルな 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 init
。docker init
Dockerでプロジェクトを実行するために必要なすべてのファイルを作成します。
詳細については 、 docker init
ドキュメント を参照してください。
ベータ版には docker init
Goサポートが付属しており、DockerチームはすでにNode.js、Python、Java、Rust、.Netなどの言語とフレームワークの追加に加えて、今後数か月以内にその他の機能の追加に取り組んでいます。 サポートを希望する特定の言語またはフレームワークがある場合は、 お知らせください。 その他のフィードバックや提案は、 公開ロードマップでお寄せください。
手記: docker init
コマンドで docker run
–initフラグを使用するときにDockerによって呼び出される内部で使用される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 の新機能の完全な内訳については、リリースノートを確認してください 。