dockerはWindowsで起動できません


101

Windowsでdocker versionコマンドを実行すると、次の結果が返されます

C:\Projects> docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/version: open //./pipe/docker_engine: The system cannot find the file
specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

診断を実行すると、次のようになります。

C:\Projects> wget https://github.com/Microsoft/Virtualization- 
Documentation/raw/master/windows-server-container-tools/Debug- 
ContainerHost/Debug-ContainerHost.ps1 -UseBasicParsin | iex

Checking for common problems
Describing Windows Version and Prerequisites
 [+] Is Windows 10 Anniversary Update or Windows Server 2016 608ms
 [+] Has KB3192366, KB3194496, or later installed if running Windows build 14393 141ms
 [+] Is not a build with blocking issues 29ms
Describing Docker is installed
 [-] A Docker service is installed - 'Docker' or 'com.Docker.Service'  134ms
   Expected: value to not be empty
   27:         $services | Should Not BeNullOrEmpty
   at <ScriptBlock>, <No file>: line 27
 [+] Service is running 127ms
 [+] Docker.exe is in path 2.14s
Describing User has permissions to use Docker daemon
 [+] docker.exe should not return access denied 42ms
Describing Windows container settings are correct
 [-] Do not have DisableVSmbOplock set to 1 53ms
   Expected: {0}
   But was:  {1}
   66:              $regvalue.VSmbDisableOplocks | Should Be 0
   at <ScriptBlock>, <No file>: line 66
 [+] Do not have zz values set 42ms
Describing The right container base images are installed
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/images/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
 [-] At least one of 'microsoft/windowsservercore' or 'microsoft/nanoserver' should be installed 129ms
   ValidationMetadataException: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   ParameterBindingValidationException: Cannot validate argument on parameter 'Property'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   at <ScriptBlock>, <No file>: line 90
Describing Container network is created
 [-] Error occurred in Describe block 1.08s
   RuntimeException: Cannot index into a null array.
   at <ScriptBlock>, <No file>: line 119
Showing output from: docker info

Showing output from: docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64

Showing output from: docker network ls

Warnings & errors from the last 24 hours
Logs saved to C:\Projects\logs_20161107-084122.csv
C:\Projects>

8
私は、このテクノロジーはWindowsでは成熟していないという結論に達しました。テクノロジーが成熟するまで、LinuxDockerを使用します。
ジム

このコマンドの使用ボックスの作成ドッキングウィンドウマシンを github.com/docker/toolbox/issues/636を
ミスター誰も

あなたがドキュメントからすべてのセットアップ手順に従っていることを確認してください:docs.docker.com/machine/get-started
ファニー

回答:


43

エラーコード:

接続中のエラー:Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version:open //./pipe/docker_engine:システムは指定されたファイルを見つけることができません。Windowsのデフォルトのデーモン構成では、接続するにはDockerクライアントを昇格して実行する必要があります。このエラーは、dockerデーモンが実行されていないことも示している可能性があります。

ソリューション:

1)Windows 7コマンドウィンドウ(cmd.exe)の場合、管理者として実行してcmd.exeを開き、次のコマンドを実行します。

docker-machine env --shell cmd default

次の出力が表示されます。

SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\USER_NAME\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

以下のコマンドをコピーして、cmdで実行します。

@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

次に、次のコマンドを実行して制御します。

docker version

2)Windows 7 Powershellの場合、管理者として実行してpowershell.exeを開き、次のコマンドを実行します。

docker-machine env --shell=powershell | Invoke-Expression

次に、次のコマンドを実行して制御します。

docker version

3)cmdまたはpowershellを再度開いた場合は、関連する手順をもう一度繰り返す必要があります。


13
説明お願いします!PowerShell方式が最も簡単です。しかし、なぜこの問題が発生し、なぜ単一のライナーでそれを修正できるのでしょうか?
ジェイウォーカー2018

2
ステップ1と2が相互に排他的である場合、なぜそれらに1と2の番号が付けられているのですか?
ショーン

9
Windows 10(Enterprise)はどうですか?Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
クロエ

39

"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemonDocker CLIを実行して、LinuxまたはWindowsコンテナーにポイントすることができます。これは私のために働いた。


3
これは私にとってはうまくいきました-Win10E-Dockerバージョン18.03.0-ce、ビルド0520e24(linux vmを使用-hyper v、仮想化が有効-これにより、virtualboxでvmを実行できなくなります-ある時点でdockerまたはVMを使用できます時間内)
hB0 2018

24

エラーはその部分に関連しています:

Windowsのデフォルトのデーモン構成では、接続するにはDockerクライアントを昇格して実行する必要があります

Dockerデーモンを切り替えるためにこれを行うことができます:

Powershellを使用する場合

  1. 管理者としてPowershellを開きます
  2. コマンドを実行します: & 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon

または、cmdを使用

  1. 管理者としてcmdを開きます
  2. RUnコマンド: "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon

1
明確で簡潔。私のために働いた。
mfonism

1
ベスト!このコメントありがとうございます!
RavishRawat20年

1
私のために働きます。ありがとう
ElvinAghammadzada20年

1
私のために働いたとしても、あなたに感謝
クシシュトフPodmokły

13

私はこの質問がずっと前だったことを知っていますが、適切な説明と解決策が見つからなかったので、うまくいけば、私の答えが役立つでしょう:)

WindowsにDockerToolboxをインストールすると、dockerdocker-machineコマンドの両方が使用可能になります。多くの場合、人々はこれらのいずれかをいつ使用するか混乱します。

dockerコマンドは、管理するためにのみ、仮想マシン内で使用されている画像をdocker-machineコマンドは、Linux仮想マシンを管理するためにホスト上で使用されています。

そのため、docker-machineWindowsマシンでコマンドを使用してください。dockerVM内でコマンドを使用します。dockerたとえば、コマンドを使用するには、Dockerクイックスタートターミナルをdocker ps開くか、cmd / bash / PowerShellで次のコマンドを実行します。

docker-machine run default/デフォルトLinuxVMであると仮定/

docker-machine ssh default

これによりboot2dockerが起動し、コマンドラインにdockerアイコンが表示されます。次に、dockerコマンドを使用できます。

幸運を :)


3
docker-machine: 'run' is not a docker-machine command. See 'docker-machine --help'.それはドキュメントが言っていることと一致しません。ドキュメントによると、コンテナを実行docker infoまたはdocker ps表示できます。docs.docker.com/get-started/#test-docker-version
クロエ

13

私も同じ問題を抱えていました。

dockerデーモンを起動すると、問題が解決しました。Windowsキーを押してDockerを検索し、「DockerDekstop」をクリックするだけです。デーモンは1分で実行されるはずです。 ここに画像の説明を入力してください


4

Windowsを使用している場合は、これを試してください

 docker-machine env --shell cmd default 
 @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

テストしてみてください

docker run hello-world

4

Hyper-Vが有効になっているWindows10 Proにdockerをインストールしても、Windows 10でDockerを実行できない場合は、エラーが示すように、dockerデーモンが起動していません。

次の手順は、Dockerを正常に起動するのに役立ちました。

  1. cmd(管理者モード)でコマンドを使用する

    docker-machine restart default
    
  2. 次に、次のようなメッセージが表示されます。

    open C:\User\\{User_name}\\.docker\machine\machines\default\config.json
    システムは指定されたファイルを見つけることができません。

  3. Windowsトレイ(デスクトップの右下隅)にあるDockerアイコンに移動します

  4. Dockerアイコンを右クリック> [設定]> [リセット]> [Dockerを再起動]

    少し時間がかかります

  5. 次に、次のメッセージが表示されます。

    Dockerは緑色のインジケーターで実行されています

:システムでDockerコンテナーを既に実行している場合は、次の手順に従わないでください。既存のコンテナを失う可能性があります。

ここに画像の説明を入力してください


3
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
クロエ

4

次のいずれかのオプションを使用して問題を解決してみてください。

オプションA

Start-Service "Hyper-V Virtual Machine Management"
Start-Service "Hyper-V Host Compute Service"

または

オプションB

  1. 「ウィンドウセキュリティ」を開く

  2. 「アプリとブラウザの制御」を開きます

  3. 下部にある「エクスプロイト保護設定」をクリックします

  4. 「プログラム設定」タブに切り替えます

  5. リストから「C:\ WINDOWS \ System32 \ vmcompute.exe」を見つけて展開します

  6. 「編集」をクリックします

  7. [コードフローガード(CFG)]まで下にスクロールし、[システム設定を上書きする]のチェックを外します

  8. PowerShell「netstartvmcompute」からvmcomputeを起動します

  9. 次に、システムを再起動します


4

Dockerバージョン19.03.12Windows10でも同じエラーが発生しました。以下の手順で解決しました。それが他の人に役立つことを願っています。

  1. Windowsの[スタート] -> [検索ボックス]に移動しますここに入力して検索します)。「サービス」と入力します。リストされたアイテムの中で、[サービスアプリ]をクリックします
  2. 次に、開いた[サービス]ウィンドウで[ Dockerデスクトップサービス]を検索します。それを右クリックして、サービスを開始します。そのステータスは「実行中」に変更する必要があります。
  3. 手順2で「依存関係サービスを開始できませんでした」などのエラーが発生した場合は、すべての依存関係サービスを開始します。私にとっては、「サーバー」というサービスを開始する必要がありました。
  4. デスクトップの「DockerDesktop」アイコンをダブルクリックします。これで、システムトレイに「Dockerデスクトップが実行されています」と表示されます。
  5. 次に、コマンドプロンプトまたはPowerShellからコマンド「dockerversion」を実行します。クリーンな出力が得られるはずです。
  6. 手順5で問題が発生した場合は、管理者としてコマンドプロンプトまたはPowerShellを実行します。

上記の解決策は、Dockerが既にインストールされており、システムでHyper-V /仮想化が有効になっていることを前提としています。


起動するサーバーのサービスが働いています。
ロードラン

3

同じ問題が発生しました。管理者の問題である可能性があるため、以下の手順に従ってDockerをセットアップしてください。

ウィンドウズ10

  1. dockerにログインした後、dockerhubからdockerデスクトップをダウンロードします。Docker Desktop Installer.exeファイルがダウンロードされます。
  2. ->インストール中にWindowsコンテナにマークを付けDocker Desktop Installer.exeてインストールしRun as administratorます。そうしないと、Linuxコンテナのみがインストールされます。ログアウトしてログインすると、ログアウトが要求され、メニューにdockerデスクトップが表示されます。
  3. インストール後、->コンピューター管理->ローカルユーザーとグループ->グループ-> docker-user->メンバーにユーザーを追加に移動します ここに画像の説明を入力してください
  4. を使用してDockerデスクトップを実行する Run as administrator ここに画像の説明を入力してください
  5. [通知]タブでDockerクジラのアイコンを確認します ここに画像の説明を入力してください
  6. コマンド> dockerversionを実行します ここに画像の説明を入力してください 。dockerを問題なく使用できます。


2

私にとっての問題は、仮想化が有効になっていないことでした。

Windows 10の場合:タスクマネージャー->パフォーマンス-> CPUに移動すると、「仮想化:有効」というセクションが表示されます。

このオプションが表示されない場合は、仮想化が有効になっていないことを意味します。

注意すべきもう1つの興味深い点は、HyperVを有効にする必要があることです。ただし、Parallels Desktopを使用していたため、Hyper Vを「真に有効」にするには、「ネストされた仮想化」を有効にする必要がありました。したがって、ウィンドウがVMの場合は、ネストされた仮想化が有効になっているParallels(または使用しているもの)の設定を確認してください。


2

以下、私がしたので、私は、Windows 10上にインストールした後、同じエラーを得ていたと私は再起動しようとしたが、それは仕事をしなかった(お勧めしません、これは新規インストールにあなたはしばらくの間ドッキングウィンドウで作業されている場合でした):

1)システムトレイでクジラを見つけて右クリックします

2)[設定]> [リセット]に移動します

3)工場出荷時のデフォルトにリセット

その後、Windows 10を使用してWebサイトのDockerチュートリアルを開始することができ、今では魅力のように機能します。


システムトレイにクジラはいない。
クロエ

Dockerワーカーを実行している私のマシンで実行されているデフォルトのVMがあります。そのVMをリセットしてから、WindowsのDockerエラーを解決しました
フリーランサー

2

私は最近同じ問題を抱えていました。問題は、セキュリティソフトウェア(トレンドマイクロ)がDockerをブロックしてHypervネットワークインターフェイスを作成していたことでした。また、ファイアウォール、インストールまたは構成をブロックしていないAVソフトウェアも確認する必要があります。


ありがとう。これは役に立ちました。
sv_vs

2

他の答えがうまくいかない場合は、次のことを試してください。ターミナルを開いて実行します。

wsl -l -v 

「インストール中」の状態でぶら下がっているdocker-desktopがあることに気付いた場合は、Dockerを閉じ、管理者としてpowershellを実行し、docker-desktopの登録を解除します。

PS C:\WINDOWS\system32> .\wslconfig.exe /u docker-desktop

dockerを再起動すると、うまくいけば動作します。そうでない場合は、最初にdockerをアンインストールしてから、docker-desktopの登録を解除し、Dockerを再インストールしてみてください。

ソース:https//github.com/docker/for-win/issues/7295#issuecomment-645989416


1

DockerToolboxでWindows7を使用していますが、修正するにはDockerクイックスタートターミナルを開き ます。

$ docker versionクライアント:バージョン:17.05.0-ce APIバージョン:1.29 Goバージョン:go1.7.5 Gitコミット:89658beビルド:Fri May 5 15:36:11 2017 OS / Arch:windows / amd64

サーバー:バージョン:17.05.0-ce APIバージョン:1.29(最小バージョン1.12)Goバージョン:go1.7.5 Gitコミット:89658beビルド:Thu May 4 21:43:09 2017 OS / Arch:linux / amd64実験:false


1

私の場合、Hyper-Vで実行されていた仮想Ubuntuインスタンス停止することでエラーが解決されました。

The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Ubuntuインスタンスが停止され、Dockerデスクトップが再起動されると、通常のdockerコマンドは問題なく実行されました。

PS:Docker Desktopが便利にコンパイルし、ユーザーフィードバックとしてDocker Hubに送信することを提案したエラーログのためにこれを試すことを考えました...ログは私のマシンがRAMに不足していて、Dockerが失敗していることを示しているように見えましたこの非常に単純な理由で。Ubuntuインスタンスを強制終了すると、それが解決しました。


1

win10の場合、同じ問題が発生しました。

error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/images/load?quiet=0: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Dockerサービスは機能しているように見えました。再起動しても役に立ちませんでした。管理者の助けを借りて、インストールディレクトリからバイナリを実行します。

私の場合:

run as administrator -> C:\Program Files\Docker\Docker\Docker for Windows.exe

これで私の問題は解決しました。WindowsコンテナでDockerWindowsCEを実行しています。ありがとうございました!
AA

'"C:\Program Files\Docker\Docker\Docker for Windows.exe"' is not recognized as an internal or external command, operable program or batch file.
クロエ


1

私の友人の一人が同様の問題を抱えていました、私たちはこれを試しました、そしてそれはうまくいきました。

Hyper-Vは、「Windowsの機能をオンまたはオフにする」にアクティブとしてリストされているにもかかわらず、実際にはアクティブではありませんでした。これは、PowerShellでsysteminfoを実行し、要件が満たされているとリストされていることを確認すると明らかになりました(これは、Hyper-Vが実際に実行されていると予想される出力ではありません)。

  1. 「Windowsの機能をオンまたはオフにする」を開きます
  2. これを行う方法がわからない場合は、https://www.howtogeek.com/250228/what-windows-10s-optional-features-do-and-how-to- [turn-them-on-or-を参照して ください。オフ/] [1]
  3. Hyper-Vをオフにします(チェックボックスをオフにし、すべてのサブコンポーネントがオフとしてマークされていることを確認します)
  4. 「OK」を押すと、マシンが再起動します。
  5. コンピューターが再起動したら、[Windowsの機能をオンまたはオフにする]を開き、Hyper-Vをオンに戻します。マシンが再起動します。

これで、docker hello-worldimageを実行してテストできます。



0

管理者特権のコマンドプロンプトから次のコマンドを実行してみてください。

SET DOCKER_CERT_PATH=C:\Users\[YourName]\.docker\machine\machines\default
SET DOCKER_HOST=tcp://[yourDockerDeamonIp]:2376
SET DOCKER_MACHINE_NAME=default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

また、これらの環境変数を設定しなくても、Dockerクイックスタートターミナルからコマンドを実行しても問題がない場合があります。


それらのコマンドが何をするのか説明してもらえますか?DOCKER_HOSTをネットワーク上に存在しないことがわかっているIPアドレスに設定することに抵抗があります。
Bobort 2017年

申し訳ありませんが、それは私のdockerデーモンのローカルIPでした。私は今それを削除しました。
KidCode 2017年

0

私もエラーに直面しました

"Access is denied. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running."

管理者モードで「powershell」を実行することにより、これを解決しました。


0

Dockerデスクトップアプリ、チェックイン通知を実行することで解決しました。必要に応じてセットアップします。

$ net start com.docker.service

Docker for WindowsServiceサービスが開始されています。Docker for WindowsServiceサービスが正常に開始されました。

$ docker version

$ net start com.docker.service

要求されたサービスはすでに開始されています。


0

dockerの最近の更新で、起動時にdockerアプリがハングするという問題が発生しました。taskmanagerを使用してwsl.exeを終了することで、これを解決しました。

ここに画像の説明を入力してください


0

私にとって、この問題はDockerDesktopで歌うことで解決しました。

ここに画像の説明を入力してください


0

サービスを実行するには、管理者権限が必要です

私も同様の問題を抱えていました。コマンドプロンプト(管理者として実行)を実行し、「dockerversion」と入力すると問題は解決します。

C:\ WINDOWS \ system32> dockerバージョン

クライアント:Dockerエンジン-コミュニティバージョン:19.03.8 APIバージョン:1.40 Goバージョン:go1.12.17 Gitコミット:afacb8bビルド:Wed Mar 11 01:23:10 2020 OS / Arch:windows / amd64実験:false

サーバー:Dockerエンジン-コミュニティエンジン:バージョン:19.03.8 APIバージョン:1.40(最小バージョン1.12)Goバージョン:go1.12.17 Gitコミット:afacb8bビルド:Wed Mar 11 01:29:16 2020 OS / Arch:linux / amd64実験的:false containerd:バージョン:v1.2.13 GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429 runc:バージョン:1.0.0-rc10 GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init:バージョン:0.18.0 GitCommit:fec3683


0

同様の問題に直面し、Windows VMにDockerデスクトップをインストールし、WSL2で実行しました。

解決:

Windowsを最新のビルドに更新し、VMToolsを最新(11.2)バージョンに更新し、問題を修正しました。現在、dockerはノンストップで実行されています。


0

私の解決策は非常に単純でした。dockerがWindowsコンテナーではなくLinuxコンテナーを実行していることに気づきました。私がしたことは、システムトレイのDockerアイコンを右クリックし、[ Windowsコンテナーに切り替え]を選択して、Windowsコンテナーに切り替えることです。


0

DockerデスクトップをPC(Windows 1)にインストールした後。あなたはこの場所を見つけるかもしれません。実際には何ですか?CLIを介してDockerデーモンを起動します

"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon

回答に詳細を入力してください。そうしないと、低品質としてマークされる可能性があります。
EthanVu20年

DockerデスクトップをPC(Windows One)にインストールした後。あなたはこの場所を見つけるかもしれません。実際には何ですか?CLIを介してDockerデーモンを起動します
DinuwanKalubowila20年

私はあなたのコメントに従って詳細を追加するためにあなたの答えを編集しました。自分で回答を編集することもできます。そして、賛成する答えを書くことについて記事があります、それはきちんとしています。
EthanVu20年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.