Windows 版 Docker Desktop の設定変更¶
このページでは、 Docker Desktop の設定と管理の方法に関して説明します。
Preferences に移動するには、以下いずれかです。
General¶
設定画面の General タブでは、Docker の起動や他の設定を調整できます。
Start Docker Desktop when you log in (ログイン時に Docker Desktop を起動):マシンにログインする時、自動的に Docker Desktop を起動する時に選びます。
Choose Theme for Docker Desktop (Docker Desktop のテーマ選択):Docker Desktop に Light か Dark どちらのテーマを適用するか選びます。あるいは、 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
(サービスを開始できません)のエラーが出ます。詳しくは 共有ドライブ上へのボリューム マウントが Linux コンテナに必要です を御覧ください。
ファイル共有を設定するには:
Add a Directory(ディレクトリの追加) : + をクリックし、追加したいディレクトリを選択します。
Remove a Directory(ディレクトリの削除) :削除したいディレクトリの横にある - をクリックします。
Apply & Restart (適用と再起動)によって、対象ディレクトリが Docker の
バインド マウント ( -v )機能で利用できるようになります。
注釈
共有ドライブ、権限、ボリューム・マウントに役立つ情報
コンテナが必要なディレクトリのみ共有できます。ファイル共有によって、ホスト上のファイルに対するあらゆる変更をLinux 仮想マシンに対して通知する必要があるため、(パフォーマンスの)オーバーヘッドを招く可能があります。非常に多くのファイル共有は、高い CPU 負荷とファイルシステム性能の低下を引き起こす可能性があります。
Shared folder(共有フォルダ)とはコンテナの実行時、ホスト上にあるアプリケーションのコードを編集できるようにするための設計です。キャッシュ ディレクトリやデータベースのようなコード以外のものは、 データ ボリューム (名前付きボリューム)や データ コンテナ を使う方が、 Linux 仮想マシンに保管するよりもパフォーマンスは向上するでしょう。
Docker Desktop はユーザ、グループ、その他に対する読み込み/書き込み/実行権限を 0777 あるいは a+rwx に設定します。これは調整できません。詳細は 共有ボリュームでのデータディレクトリ上のパーミッション エラー を御覧ください。
Linux が大文字小文字を区別している場合に限り、Windows はアプリケーションが見えるファイルシステムで大文字小文字を区別できるように表示します。Linux 上では
test
とTest
という2つの異なるファイルを作成できますが、Windows 上では各ファイルは実際には同じファイルが基になります。これは開発者の Windows マシン上では(コンテンツを共有している場合に)アプリケーションの動作に問題を引き起こす可能性がある程度です。しかし、プロダクションにおける Linux では問題が発生するでしょう(ファイルが明確に識別されるため)。これを避けるためには、Docker Desktop に対して全ての共有ファイルをオリジナル通りにアクセスするよう要求します。つまり、test
というファイルを作成したら、必ずtest
で開くようにします。Test
というファイルを開こうとしても、 "No such file or directry" となり失敗します。似たようなものとして、test
というファイルを作成し、その次にTest
ファイルを作成しようとしても失敗します。
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
デフォルトでは、統合機能はデフォルトの 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 には
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