Docker Desktop for Windows 利用者マニュアル

Docker Desktop へようこそ!

Docker Desktop へようこそ! Docker Desktop for Windows 利用者マニュアルは、Docker Desktop 設定の調整と管理方法についての情報を提供します。

Docker Desktop のダウンロード、システム要件、インストール手順については、 Docker Desktop のインストール を御覧ください。

Settings (設定)

Docker Desktop のメニューは、Docker Dashboard を開いたり、クイックスタートガイドの起動、Docker の設定を調整できます。たとえば、インストール、更新、バージョンのチャンネル、 Docker Hub ログイン等です。

このセクションでは Settings (設定)画面から設定できるオプションを説明します。

1. Docker Desktop のメニューを開くには、通知エリア(又はシステムトレイ)にある Docker アイコンをクリックします。

タスクバー内に隠れているアプリを表示

2. 設定画面から Settings (設定)を選びます。

タスクバー内に隠れているアプリを表示

General(一般的な設定)

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

設定
  • Start Docker when you log in :このオプションを選択すると、Windows マシンへのログイン時、自動的に Docker Desktop を起動します。
  • 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 が利用できるリソースを制限します。

  • 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 コンテナと共有したいローカルのディレクトリを選択します。ファイル共有は Linux コンテナ内でボリュームをマウントするために必要であり、Windows コンテナ-用ではありません。 Linux コンテナ では、Dockerfile とボリュームを保管するための場所として、ドライブの共有が必要です。指定がなければ、実行時に file not found (ファイルが見つかりません)や cannot start service (サービスを開始できません)のエラーが出ます。詳しくは 共有ドライブ上へのボリューム マウントが Linux コンテナに必要です を御覧ください。

ファイル共有設定では:

  • Add a Directory (ディレクトリ追加): + をクリックし、追加したいディレクトリを指定します。
  • Apply & Restart (適用と再起動):コンテナで Docker の バインド マウント( -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(プロキシ)

Docker Desktop は、HTTP/HTTPS プロキシ設定を調整し、自動的に Docker に対して情報を伝達( プロパゲート(propagate) )します。例えば、 http://proxy.example.com に対してプロキシ設定をすると、Docker はコンテナの取得時にこのプロキシを使います。

プロキシを設定しても、コンテナを開始するまで情報は伝わりません。コンテナにプロキシ設定を指定したい場合は、環境変数を使って指定します。Linux であれば、次のようにします。

$ docker run -e HTTP_PROXY=http://proxy.example.com:3128 alpine env

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b7edf988b2b5
TERM=xterm
HOME=/root
HTTP_PROXY=http://proxy.example.com:3128

実行中のコンテナに対し、環境変数を設定する詳しい情報は、 環境変数の設定 をご覧ください。

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 を再起動します。

Command Line (コマンドライン)

コマンドラインのページでは、experimental features(実験的機能)を有効にするかどうかを指定できます。

Docker Desktop Edge と Stable リリースのいずれでも、実験的機能の有効化と無効化を切り替えできます。実験的機能を無効化すると、Docker Desktop は現時点の Docker エンジン安定版リリースを使います。

Experimental features

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

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

実験的機能が有効かどうかを確認するには、 docker version を実行します。実験的モードは Server データ下の一覧に状態があります。もしも以下のように Experimental (実験的)が true (真)であれば、Docker は実験的モードで動作しています。( false であれば、実験的機能なオフです)

> docker version

Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:18:17 2019
 OS/Arch:           darwin/amd64
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:17:52 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Kubernetes

注釈

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

Docker Desktop には Windows マシン上で動作する、単独で実行可能な Kubernetes サーバを内蔵しています。そのため、 Docker ワークロードを Kubernetes 上へ試験的にデプロイできます。Kubernetes サポートの有効化や、 Docker コンテナとして Kubernetes のスタンドアロン インスタンスをインストールするには、 Enable Kubernetes を選択します。

Docker Desktop で Kubernetes 統合機能を使うための詳しい情報は、 Kubernetes 上にデプロイ をご覧ください。

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

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

重要

自動更新の確認が無効化

Docker Personal と Docker Pro を含む、全ての Docker サブスクリプションの利用者を対象に、 Docker Desktop 4.2.0 から、更新の自動確認オプションをオフにできるようになりました。この機能を使うには、 Docker Desktop 4.2 に更新してください。

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

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

ダッシュボード

Docker ダッシュボードを通して、マシン上にあるコンテナとアプリケーションを用いる、アプリケーションのライフサイクルと管理をやりとりできます。ダッシュボードの UI を通して見えるのは、全ての実行中、停止中、開始中のコンテナと状態です。直感的なインターフェースを通して、コンテナや Docker Compose アプリケーションに対する調査と管理といった共通動作が行えます。より詳しい情報は、 Docker ダッシュボード をご覧ください。

TLS 証明書の追加

Docker デーモンが、レジストリ・サーバ証明書とクライアント証明書の検証用に、信頼できる認証局(CA; Certificate Authorities)を追加してレジストリを認証できます。

リセット

Restart Docker DesktopReset to factory defaults オプションは Troubleshoot メニューから利用できます。詳しい情報は ログとトラブルシューティング をご覧ください。

トラブルシュート

詳細は ログとトラブルシューティング: ガイドを御覧ください。

Docker Desktop for Windows フォーラム(英語) にログオンしたら、コミュニティからの手助けを得たり、利用者のトピックを参照したり、議論に参加できます。

GitHub 上の Docker Desktop for Windows issues(英語) にログオンし、バグや問題の報告や、コミュニティに報告された問題を参照できます。

ドキュメントに対するフィードバックの仕方や自分で更新するには ドキュメント貢献(英語) を御覧ください。

Windows と Linux コンテナとの切り替え

Docker Desktop のメニューから、Docker CLI が通信するデーモン(Linux か Windows)を切り替えできます。 Switch to Windows containers (Windows コンテナーへ切り替え)を選ぶと Windows コンテナーを使います。又は、 Switch to Linux containers (Linux コンテナへ切り替え)を選ぶと Linux コンテナを使います(こちらがデフォルト)。

Windows コンテナに関する詳しい情報は、以下のドキュメントを参照ください。

Windows コンテナ- モードでプロキシやデーモンの設定を行っても、それらが適用されるのは Windows コンテナ-に対してのみです。Linux コンテナに設定を切り戻すと、プロキシとデーモンの設定は Linux コンテナ用に設定していたものに戻ります。Windows コンテナ-の設定は保持されていますので、再び切り替えると Windows コンテナー向けの設定で利用できます。

ダッシュボード

Docker Desktop ダッシュボードを通して、マシン上にあるコンテナとアプリケーションを用いる、アプリケーションのライフサイクルと管理をやりとりできます。ダッシュボードの UI を通して見えるのは、全ての実行中、停止中、開始中のコンテナと状態です。直感的なインターフェースを通して、コンテナや Docker Compose アプリケーションに対する調査と管理といった共通動作が行えます。より詳しい情報は、 Docker Desktop ダッシュボード をご覧ください。

Docker Hub

自分の Docker Hub アカウントでアクセスするには、Docker Desktop のメニューから **Sing in/Create Docker ID ** (サインイン/Docker ID 作成)を選びます。一度ログインしておけば、Docker Desktop のメニューから Docker Hub リポジトリに直接アクセス可能になります。

詳しい情報は、以下の :doc:`Docker Hub 記事 </docker-hub/toc) をご覧ください。

二要素認証

Docker Desktop では、Docker Hub へのログインに二要素認証(Two-factor authentication)を有効化できます。二要素認証は Docker Hub アカウントにアクセスするとき、追加のセキュリティ段階を提供します。

Docker Hub での二要素認証を有効化する前に、Docker Desktop を通して Docker Hub アカウントにサインインする必要があります。手順は Docker Hub で二要素認証を有効にする をご覧ください。

二要素認証を有効化した後、

  1. Docker Desktop のメニューから「 Sign in / Create Docker ID 」を選択。
  1. Docker ID とパスワードを入力し、 Sign in (サインイン)をクリック。
  1. サインインに成功した後、 Docker Desktop で認証コード(authentication code)の入力を求める画面が開きます。電話に届いた6桁のコードを入力し、 Verify (確認)をクリックします。

認証に成功すると、Docker Desktop メニューから、直接自分の organization と リポジトリにアクセスできます。

一時停止(pause) / 再開(resume)

Docker Desktop 4.2 リリースから、Docker Desktop をアクティブに使っていない時、 Docker Desktop のセッションを 一時停止(pause) し、マシン上の CPU リソースを抑えます。Docker Desktop を一時停止すると、 Docker Engine を実行している Linux VM が一時停止され、メモリ上に保存されている現在のコンテナ状態すべてと、すべてのプロセスを凍結します。これにより、 CPU 使用率を減らし、ノート PC のバッテリー寿命を長く維持します。 Resume(再開)オプションをクリックすると、Docker Desktop は再開します。

注釈

現在 Windows コンテナー モードでは、 Pause/Resume 機能を利用できません。

Docker Desktop を 一時停止(pause) するには、通知エリア(あるいはシステム トレイ)にある Docker アイコンを右クリックし、 Pause をクリックします。

Docker のメニュー項目

これで Docker Desktop は、 Docker メニュー上で一時停止(paused)と表示され、 Docker ダッシュボード上の ContainersImagesVolumesDev Environment 画面も一時停止と表示します。Docker Desktop を一時停止している状態でも、ダッシュボードの PreferencesTroubleshoot メニューにアクセスできます。

Docker Desktop を再開するには、 whale > Resume を選択します。

注釈

Docker Desktop を一時停止すると、Docker CLI で実行されたあらゆるコンテナも、 Docker Desktop によって自動的に一時停止されます。

TLS 証明書の追加

Docker デーモンが、レジストリ・サーバ証明書と クライアント証明書 の検証用に、信頼できる 認証局(CA; Certificate Authorities) を追加してレジストリを認証できます。

どのようにして任意の CA 証明書を追加できますか?

Docker Desktop は全ての信頼できうる(ルート及び中間)証明局(CA)をサポートしています。証明書が信頼できるルート認証局や中間認証局の配下にあるかどうか、Docker は識別します。

Docker Desktop は Windows 証明局ストアに基づき、全てのユーザが信頼する CAの証明書バンドルを作成します。また、Moby の信頼できる証明書にも適用します。そのため、エンタープライズ SSL 証明書がホスト上のユーザによって信頼されている場合は、Docker Desktop からも信頼されます。

レジストリに対する CA ルート証明書のインストール方法について学ぶには、Docker エンジン記事の 証明書でリポジトリ・クライアントを認証する を御覧ください。

どのようにしてクライアント証明書を追加しますか?

自分のクライアント証明書を ~/.docker/certs.d/<MyRegistry>:<Port>/client.cert~/.docker/certs.d/<MyRegistry>:<Port>/client.key に追加できます。

Docker Desktop ・アプリケーションの開始時に、 Windows システム上の ~/.docker/certs.d フォルダを Moby 上(Docker Desktop が稼働する Hyper-V 上の仮想マシン)の /etc/docker/certs.d ディレクトリにコピーします。

キーチェーンに対する何らかの変更をするか、 ~/.docker/certs.d ディレクトリ内の変更を有効にするには、 Docker Desktop の再起動が必要です。

レジストリは insecure (安全ではない)レジストリとして表示されません( win-docker-engine をご覧ください )。Docker Desktop は安全ではないレジストリにある証明書を無視します。そして、クライアント証明書も送信しません。 docker run のようなレジストリから取得するコマンドは、コマンドライン上でもレジストリでもエラーになるメッセージが出ます。

認証用にクライアント TLS 証明書を設定する方法を学ぶには、Docker エンジンの記事 証明書でリポジトリ・クライアントを確認する を御覧ください。

次はどこへ行きますか

  • Docker Labs の例を通し、りソースコードを深く掘り下げましょう。

参考

Docker Desktop for Windows user manual
https://docs.docker.com/desktop/windows/