よくある質問と回答 Wndows 版

VirtualBox と Docker Desktop を併用できますか?

はい、マシン上で Windows ハイパーバイザープラットフォーム 機能が有効であれば、 Docker Desktop と VirtualBox を同時に利用できます。

なぜ Windows 10 か Windows 11 が必要なのですか?

Docker Desktop は Windows Hyper-V 機能を使います。Windows の古いバージョンでも Hyper-V はありますが、それらの Hyper-V には Docker Desktop を動作するために必要な機能が欠如しています。

Windows 10 Home に Docker Desktop をインストールできますか?

Windows Home (バージョン 1903 以上)を実行している場合、 WSL 2 バックエンドDocker Desktop for Windows をインストールできます。

Windows Server 上で Docker Desktop を実行できますか?

いいえ、Windows Server 上で Docker Desktop の動作はサポートされていません。

Windows Server 上で Windows コンテナーを実行できますか?

Docker Desktop がなくても、Windows コンテナーの実行や開発ができるネイティブな Windows バイナリをインストールできます。Windows Server 上で Windows コンテナーの実行に関する詳しい情報は、 Getting Started with Windows Containers をご覧ください。

Docker Desktop の起動時に Docker Desktop Access Denied エラーが出るのはなぜですか?

Windows ユーザーが docker-users グループのに所属していなければ、 Docker Desktop は Docker Desktop - Access Denied (アクセス拒否)エラーが出ます。

自分のユーザーアカウントと管理者アカウントが異なる場合、 docker-users グループに追加します。管理者として コンピューターの管理 を開き、 ローカル ユーザーとグループ > グループ > docker-users を辿ります。

グループにユーザを追加するには、右クリックします。変更を反映するには、ログアウトしてからログインし直します。

アンチウィルス・ソフトウェアをインストールしていると、Docker Desktop の起動に失敗するのはなぜでしょうか?

いくつかのアンチウィルス ソフトウェアは、Hyper-V と Windows 10 ビルドと互換性がなく、Docker Desktop に影響があります。詳しい情報は アンチウィルス ソフトウェアをインストールしていると、Docker Desktop の起動に失敗 を御覧ください。

コンテナ固有のデプロイに必要となる、共有ボリューム上の権限を変更できますか?

Docker Desktop はデプロイしたコンテナで 共有ボリューム 上で Unix 風の権限を制御( chmod )できません。それどころか、権限をデフォルトで 0777 の値( usergroup に対する「読み込み」「書き込み」「実行」の権限 )に設定し、変更不可能です。

回避策を学ぶには 共有ボリュームにおける、データ ディレクトリ上の権限(permission)エラー をご覧ください。

Kubernetes と WSL 2 でファイルを共有する

Docker Desktop は Kubernetes を実行するコンテナ内において、 /run/desktop 以下で Windows ホストファイルシステムをマウントします。 Kubernetes Persistent Volume が示すホスト上のディレクトリの調整方法は、 Stack Overflow の投稿 例をご覧ください。

任意の CA 証明書を追加できますか?

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

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 エンジンの記事 証明書でリポジトリ・クライアントを確認する をご覧ください。

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

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

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

  • ローカルホストから Windows コンテナーに対して接続する方法を理解するには、 Windows からコンテナーに接続したい をご覧ください。

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

参考

Frequently asked questions for Windows

https://docs.docker.com/desktop/faqs/windowsfaqs/