Dockerとの体験を向上させる方法を常に探しています。統合、拡張機能、または製品を直接使用する場合でも同様です。Docker Desktop 4.18はコマンドラインとDocker Desktopの改善に焦点を当てています。
Docker ScoutのCLI機能や、プロジェクトにDockerを素早く追加するためのエキサイティングなCLIベータ機能であるDocker initについてご紹介します。また、Dockerをより早く使い始めるための新機能についてもレビューします:Container File Explorer、管理者不要の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を理解したことがある場合、次にどのような行動を取るべきか疑問に思ったかもしれません。新しいdocker scout recommendationsコマンドを使用すると、ベースイメージの利用可能な更新を直接提案する推奨リストを受け取ることができます。
docker scout recommendationsコマンドはイメージを分析し、ベースイメージの更新または更新の推奨を表示します。脆弱性の削減機会やより小さなイメージサイズの達成方法など、メリットのリストも含まれています。
BuildKitの来歴とSBOM認証#
2023年1月、BuildKitは認証付きイメージのビルドをサポートするように拡張されました。これらのイメージは、docker scoutコマンドラインを使用してこの情報を処理し、関連する次のステップを決定できるようになりました。docker scoutコマンドラインツールは、どのベースイメージでビルドしたかを正確に把握しているため、より正確な推奨を提供できます。
イメージがSBOM認証付きでビルドおよびプッシュされた場合、docker scoutは新しいローカルSBOMを作成する代わりに、SBOM認証からパッケージ情報を読み取ります。
BuildKitを使用した認証付きイメージのビルド方法については、「BuildKitでイメージのSBOMを生成する」をお読みください。
イメージ比較#
注:これはDocker Scoutの実験的機能であり、時間とともに変更および進化する可能性があります。
脆弱性修復を完了した後、セキュリティ問題に対処するために行った変更を遡及的にドキュメント化することは良い慣行とされています。Docker Desktop 4.18ではイメージ比較の早期プレビューを導入しています。
この機能は、2つのイメージ間の脆弱性の違いとパッケージの比較を強調表示します。これらの詳細には、パッケージバージョン、各イメージの環境変数などが含まれます。さらに、コマンドライン出力はマークダウン形式で設定できます。この情報を使用して、GitHub Actionsを通じてプルリクエストでdiffプレビューを生成できます。
このdiff機能をどのようなシナリオで使用できるか、ぜひお聞かせください。Docker Desktopを開き、Imagesタブに移動し、Give feedbackを選択することでこれを行うことができます。
これらの機能の詳細については、ドキュメントをお読みください。
Container File Explorer#
もう一つお知らせできることを嬉しく思う機能は、Container File ExplorerのGA(一般提供)リリースです。コンテナ内のファイルをチェックまたは素早く置き換える必要がある場合、Container File ExplorerはDocker DesktopのUIから直接これを行うことができます。
長いCLIコマンドを覚えたり、docker cpコマンドで長いパスパラメータをいじったり、コンテナにファイルをチェックするためのシェルがまったくないことにイライラしたりする必要はありません。Container File Explorerは以下を可能にするシンプルなUIを提供します:
- コンテナファイルシステムのチェック
- ホストとコンテナ間でファイルとフォルダをコピー
- コンテナにファイルを簡単にドラッグアンドドロップ
- 構文ハイライト付きでファイルを素早く編集
- ファイルの削除
Container File Explorerを使用すると、任意の状態(停止/実行中/一時停止/…)のコンテナのファイル、およびスリムコンテナ/スリムイメージ(シェルなしのコンテナ)を含む任意のコンテナタイプのファイルを表示できます。ダッシュボードを開き、Containersタブに移動し、コンテナアクションメニューを開いて、ファイルをチェックしてください。
macOSでの管理者不要インストール#
開発者が管理者権限を付与せずにDocker Desktopをインストールできるように、macOSのインストールフローを調整しました。一部の開発者は、マシン上でローカル管理者アクセスが禁止される可能性のある、セキュリティ要件が高い環境で作業しています。これらの環境のユーザーが、管理者権限を必要とするDocker Desktop機能をオプトアウトできるようにしたいと考えました。
macOSのデフォルトインストールフローは引き続き管理者権限を要求します。これにより、開発者のユースケースの大多数に最適化された体験を提供できると考えているためです。管理者権限を付与すると、Docker DesktopはDocker CLIツールを自動的にインストールし、サードパーティライブラリがDockerとシームレスに統合できるようになり(デフォルトのDockerソケットを有効にすることで)、ユーザーが1から1024までの特権ポートにバインドできるようになります。
インストール時に設定した設定を変更したい場合は、Docker DesktopのSettingsのAdvancedタブ内で簡単に行うことができます。
Docker init(ベータ)#
ベータ版でリリースするもう一つのエキサイティングな機能はdocker initです。これは、必要なアセット(Dockerfiles、Composeファイル、.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 Compose File Watch(実験的)#
Docker Composeに新しいトリックがあります!Docker Compose File Watchは、作業中にすべてのサービスコンテナを自動的に最新の状態に保つ実験的機能として現在利用可能です。
(…)
設定後、新しいdocker compose alpha watchコマンドはプロジェクト内のファイル編集の監視を開始します:
./web/App.jsxへの変更時、例えば、Composeは自動的にコンテナ内の/src/web/App.jsxに同期します。 一方、package.jsonを変更した場合(新しいnpmパッケージのインストールなど)、Composeはイメージを再ビルドし、既存のサービスを更新バージョンに置き換えます。 Compose File Watchモードはほんの始まりです。前回のDocker Composeリリース以来約100件のコミットで、バグを修正し、多くの品質向上を行いました。(最近の初コントリビューターの皆さんに特別な感謝を!)
Docker Compose File Watchに興奮しており、基盤となるメカニズムと設定フォーマットに積極的に取り組んでいます。
結論#
Docker Desktop 4.18アップデートのまとめです。このリリースには、あなたが形作る手助けができるものを含む、多くのクールで新しい機能が含まれています。また、いくつかのCVEに対処するためにDocker Engineを更新しました。いつものように、フィードバックをお聞かせください。パブリックGitHubロードマップにフィードバックを残して、他に何を見たいかお知らせください。
Docker Desktop 4.18の新機能の完全な内訳については、リリースノートをご確認ください。







