Windows 版 Docker Desktop の設定変更

このページでは、 Docker Desktop の設定と管理の方法に関して説明します。

Preferences に移動するには、以下いずれかです。

  • Docker メニュー whale から Preferences を選びます。

  • Docker ダッシュボードから Preferences アイコンを選びます。

General

設定画面の General タブでは、Docker の起動や他の設定を調整できます。

  • Start Docker Desktop when you log in (ログイン時に Docker Desktop を起動):マシンにログインする時、自動的に Docker Desktop を起動する時に選びます。

  • Choose Theme for Docker Desktop (Docker Desktop のテーマ選択):Docker Desktop に LightDark どちらのテーマを適用するか選びます。あるいは、 Docker Desktop で Use System Settings を設定できます。

  • Use integrated container terminal (コンテナ ターミナルの統合を使う):Docker ダッシュボードから実行中のコンテナに対して直接実行するかどうかを選びます。詳しい情報は Containers を見渡す をご覧ください。

  • Expose daemon on tcp://localhost:2357 without TLS :古い(レガシーの)クライアントが Docker デーモンに接続できるようにするには、このオプションを有効化します。このオプションを使う場合は注意が必要です。TLS なしでデーモンを公開する場合は、リモートからのコード実行攻撃をもたらす可能性があるためです。

  • Use the WSL 2 based engine (WSL 2 基盤の Engine を使う):WSL2 は以前の Hyper-V バックエンドより良いパフォーマンスを提供します。詳しい情報は Docker Desktop WSL 2 バックエンド をご覧ください。

  • Send usage statics (利用統計情報の送信): デフォルトでは、Docker Desktop は診断情報・クラッシュ報告・利用データを送信します。この情報は、 Docker の改善やアプリケーションの問題解決に役立ちます。止めるにはチェックボックスを空にします。Docker は定期的に更なる情報を訊ねるかもしれません。

  • Show Weekly tips :Docker の利用に役立つアドバイスや提案を表示します。

  • Open Docker Desktop dashboard at startup :Docker Desktop の起動時に、ダッシュボードを自動的に開きます。

  • Use Docker Compose V2 :このオプションを選択すると、 docker-compose コマンドが Docker Compose V2 を使えるようにします。詳しい情報は Docker Compose V2 をご覧ください。

Resources(リソース)

Resources (リソース)タブでは、CPU 、メモリ、ディスク、プロキシ、ネットワーク、その他のリソースを設定できます。どのような項目が設定可能かについては、 WSL 2 モードで Linux コンテナを使うか、 Hyper-V モードで Linux コンテナを使うか、 Windows コンテナーを使うかにより異なります。

ADVANCED(高度な設定)

注釈

Advanced タブは Hyper-V モードでのみ利用できます。これは Windows が WSL 2 モードと Windows コンテナー モードのリソースを管理するからです。 WSL 2 モードで設定するには、 WSL 2 が使う仮想マシン に対してメモリ、CPU、スワップの割り当てを制限できます。

Advanced タブでは、 Docker が利用できるリソースを制限します。

Advanced 設定とは、

  • CPUs (CPU):デフォルトでは、 ホストマシン上で利用可能なプロセッサ数の半分を、Docker Desktop が使います。処理能力を向上するには、この値を高くします。減らすには、数値を低くします。

  • Memory (メモリ):デフォルトでは、 マシン上で利用可能な全メモリから 2 GB の実行メモリを使用する設定です。RAM を増やすには、この値を高くします。減らすには、値を低くします。

  • Swap (スワップ): 必要になるスワップファイル容量を設定します。デフォルトは 1 GB です。

  • Disk image size (ディスクイメージ容量):ディスクイメージの容量を指定します。

  • Disk image location (ディスクイメージの場所):Linux ボリュームの場所を指定します。ここにコンテナとイメージが置かれます。

また、ディスクイメージは別の場所に移動できます。ディスクイメージの指定先に既にイメージがある場合は、既存のイメージを使うか置き換えるか訊ねる画面を表示します。

FILE SHARING(ファイル共有)

注釈

Advanced タブは Hyper-V モードでのみ利用できます。これは Windows が WSL 2 モードと Windows コンテナー モードのリソースを管理するからです。 WSL 2 モードで設定するには、 WSL 2 が使う仮想マシン に対してメモリ、CPU、スワップの割り当てを制限できます。

Linux コンテナと共有したいローカルのディレクトリを選択します。これはホスト上の IDE を用い、コンテナ内でコードの実行やテストをしている場合、ソースコードの編集に特に役立ちます。

ファイル共有は Linux コンテナ 内でボリュームをマウントするために必要であり、Windows コンテナ-用ではありません。ディレクトリが Linux コンテナと共有されていなければ、実行時に file not found (ファイルが見つかりません)や cannot start service (サービスを開始できません)のエラーが出ます。詳しくは volume-mounting-requires-shared-drives-for-linux-containers を御覧ください。

ファイル共有を設定するには:

  • Add a Directory(ディレクトリの追加)+ をクリックし、追加したいディレクトリを選択します。

  • Remove a Directory(ディレクトリの削除) :削除したいディレクトリの横にある - をクリックします。

  • Apply & Restart (適用と再起動)によって、対象ディレクトリが Docker の バインド マウント(bind mount)-v )機能で利用できるようになります。

注釈

共有ドライブ、権限、ボリューム・マウントに役立つ情報

  • コンテナが必要なディレクトリのみ共有できます。ファイル共有によって、ホスト上のファイルに対するあらゆる変更をLinux 仮想マシンに対して通知する必要があるため、(パフォーマンスの)オーバーヘッドを招く可能があります。非常に多くのファイル共有は、高い CPU 負荷とファイルシステム性能の低下を引き起こす可能性があります。

  • Shared folder(共有フォルダ)とはコンテナの実行時、ホスト上にあるアプリケーションのコードを編集できるようにするための設計です。キャッシュ ディレクトリやデータベースのようなコード以外のものは、 データ ボリューム (名前付きボリューム)や データ コンテナ を使う方が、 Linux 仮想マシンに保管するよりもパフォーマンスは向上するでしょう。

  • Docker Desktop はユーザ、グループ、その他に対する読み込み/書き込み/実行権限を 0777 あるいは a+rwx に設定します。これは調整できません。詳細は 共有ボリュームでのデータディレクトリ上のパーミッション エラー を御覧ください。

  • Linux が大文字小文字を区別している場合に限り、Windows はアプリケーションが見えるファイルシステムで大文字小文字を区別できるように表示します。Linux 上では testTest という2つの異なるファイルを作成できますが、Windows 上では各ファイルは実際には同じファイルが基になります。これは開発者の Windows マシン上では(コンテンツを共有している場合に)アプリケーションの動作に問題を引き起こす可能性がある程度です。しかし、プロダクションにおける Linux では問題が発生するでしょう(ファイルが明確に識別されるため)。これを避けるためには、Docker Desktop に対して全ての共有ファイルをオリジナル通りにアクセスするよう要求します。つまり、 test というファイルを作成したら、必ず test で開くようにします。 Test というファイルを開こうとしても、 "No such file or directry" となり失敗します。似たようなものとして、 test というファイルを作成し、その次に Test ファイルを作成しようとしても失敗します。

Shared folders on demand(オンデマンド共有フォルダ)

個々のマウントが必要な場合、初回に "オンデマンド" でコンテナが使うフォルダを共有できます。

シェルでボリューム・マウント(以下に例があります)する Docker コマンドの実行時や、Compose ファイルで立ち上げ時にボリュームのマウントがあれば、特定のフォルダを共有するかどうか訊ねるポップアップが現れます。

Share it (共有する)を選択でき、Docker Desktop の「共有フォルダ一覧」にあるいずれかを、コンテナで利用可能になります。あるいは、共有したくない場合には Cancel (中止)を選べます。

PROXIES(プロキシ)

次のような時、 HTTP/HTTPS プロキシを使えます。

  • Docker にログイン

  • イメージの送受信

  • イメージ構築中に成果物を取得

  • コンテナが外部ネットワークと通信

  • イメージの脆弱性検査

これらの使用例ごとに、設定は若干異なります。

ホストが静的な HTTP/HTTPS プロキシ設定を使う場合、この設定を Docker Desktop が自動的に読み込み、これらの設定を Docker へのログインやイメージ送受信のために使います。

ホスト上がより詳細な設定を使う場合は、 Manual proxy configuration (手動プロキシ設定)を有効にし、 http://username:password@proxy:port の形式で上流のプロキシ URL を入力します。

イメージ構築やコンテナ実行中の HTTP/HTTPS トラフィックは、ログインやイメージ取得に使うのと同じ上流のプロキシに、透過的に転送されます。この挙動を上書きし、イメージ構築とコンテナ実行で異なる HTTP/HTTPS プロキシを使いたい場合は、 Docker クライアントの設定 をご覧ください。

イメージ検査に使う HTTPS プロキシを設定するには、 HTTPS_PROXY 環境変数を使って指定します。

NETWORK (ネットワーク)

注釈

Windows コンテナー モードでは Windows がネットワーク機能を管理するため、 Network タブを利用できません。

Docker Desktop のネットワーク機能を、仮想プライベート ネットワーク(VPN)でも機能するように設定できます。インターネットとの疎通を有効にするには、ネットワーク アドレス変換(NAT)プリフィックスとサブネットマスクを設定します。

WSL Integration

WSL 2 モードでは、Docker WSL 統合機能(integration) で、どの WSL2 ディストリビューションを使うか設定できます。

デフォルトでは、統合機能はデフォルトの WSL ディストリビューションを使います。デフォルトの WSL ディストリビューションを変更するには、 wsl --set-default <distro name> のように実行します。(たとえば、デフォルトの WSL ディストリビューションとして Ubuntu を指定するには、 wsl --set-default ubuntu を実行します)。

また、WSL 2 統合機能上で利用可能な、追加ディストリビューションも選択できます。

Docker Desktop 上で WSL 2 を利用する設定の詳細は、 Docker Desktop WSL 2 バックエンド をご覧ください。

Docker Engine(エンジン)

Docker Engine のページでは、Docker デーモンの設定や、どのようにしてコンテナを実行するかを決められます。

デーモンの設定をするには、テキストボックス内に JSON 形式の設定ファイルとして入力します。オプションの一覧については、 Docker Engine の dockerd コマンドライン・リファレンス を御覧ください。

Apply & Restart (適用と再起動)をクリックし、設定を保存して Docker Desktop を再起動します。

Experimental Features(実験的機能)

実験的機能は、今後提供する機能を先行利用できます。各機能は、テストやフィードバックを意図した、参考程度のものです。そのため、リリース時までに警告が出たり、今後のリリースでは削除されたりする場合があります。本番向けの環境では、実験的機能を決して使わないでください。Docker は実験的機能に対するサポートを提供していません。

Docker CLI における現在の実験的機能一覧は、 Docker CLI Experimental features をご覧ください。

Kubernetes

注釈

Windows コンテナー モードでは、 Kuberentes タブを利用できません。

Docker Desktop には 単独(standalone) の Kubernetes サーバが入っています。Kubernetes は Mac ホスト上で実行できますので、Kubernetes 上に Docker ワークロードを試験的にデプロイできます。Kubernetes サポートの有効化と、Docker コンテナとして Kubernetes のスタンドアロン インスタンスをインストールかつ実行するには、 Enable Kubernetes を選びます。

Docker コマンドを使って内部コンテナを表示するには、 Show system containers (advanced) を選択します。

すべてのスタックと Kubernetes を削除するには、 Reset Kubernetes cluster を選択します。

Docker Desktop と Kubernetes を統合して使うための詳しい情報は Kubernetes をご覧ください。

Software Updates (ソフトウェア更新)

Software Updates (ソフトウェア更新)セクションは、Docker Desktop で利用可能な更新バージョンを通知します。新しい更新があれば選択肢があります。すぐにダウンロードと更新をするか、あるいは、 Release Notes (リリースノート)のオプションで更新版で何が入ったのかを確認します。

チェックボックス Automatically check for updates をクリアすると、自動更新の確認をしません。無効化の通知は、 Docker メニューと、 Docker ダッシュボード上の通知バッジからも分かります。手動で更新を確認するには、 Docker メニューから Check for updates オプションを選びます。

Docker Desktop の新しい更新の自動ダウンロードを、バックグラウンドで行いたい場合は、 Always download updates を選びます。これは、Docker の更新版が利用可能になると、新しいバージョンをダウンロードします。この設定をするには、 Docker メニューだけでなく、 Docker ダッシュボードの Updates セクションからも行えます。

Extensions

Extensions タブを使い、次のことができます。

  • Docker Extensions の有効化

  • Docker マーケットプレイスを通して配布されるエクステンションのみ許可

  • Docker Extensions システムコンテナの表示

Docker Extensions に関する詳しい情報は、 Extensions をご覧ください。

参考

Change Docker Desktop settings on Windows

https://docs.docker.com/desktop/settings/windows/