docker daemon is not running になり、Hyper-V を無効化した

2021年6月から、N予備校でプログラミング入門コースを受講しています。

授業で作った「匿名掲示板」をHerokuにリリースしました。
ほっとしたのも束の間、翌日PCを開いたところ Dockerが起動しなくなりました。

なんとか復活できたので、記録を残そうと思います。
初心者のため、解釈が間違っていることもあるかもしれません。
ご容赦ください。

#目次
[1.動作環境](#1-動作環境)
[2.エラー現象](#2-エラー現象)
[3.Hyper-V の無効化](#3-hyper-v-の無効化)
[4.古いコンテナを削除](#4-古いコンテナを削除)
[5.最後に](#5-最後に)

#1. 動作環境
　Windows 10 Pro

#2. エラー現象

#####- 2-1.　コマンドラインのエラー表示#####


```
$ docker-compose up -d

Server:
ERROR: error during connect: 
This error may indicate that the docker daemon is not running.: 
Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/
info": open //./pipe/docker_engine: 
The system cannot find the file specified.errors pretty printing info
```
サーバーエラーで Docker が起動できませんでした。
下記コマンドを入れたところ、同じエラーが返ってきました。

```$ docker-compose down```
```$ docker-ps```

また、次のコマンドは使うことができました。

```$ ls```
```$ docker-v```　　




#####- 2-2.　Docker Desktopの状態#####


いつもは水色のクジラが、オレンジ色になっていました。
![スクリーンショット 2021-12-23 142334.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/6a29a43c-4f38-0075-55bb-09bb684701b1.png)

Settngsを開くと、どこも 選択・クリックできない状態でした。

![スクリーンショット 2021-12-23 142152.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/d322279c-1605-56d4-73c7-02e6b5d09967.png)



<details><summary><b>===================================<br>&nbsp;&nbsp;&nbsp;初心者考えで試してみて、有効ではなかったことです。
　気になる方は クリックしてください。<br>&nbsp;=====================================</b></summary><div>

#####- 2-3-1.　Reset to factory defaults#####
　
![タイトル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/72f84687-516b-c7c0-7629-110cc5ff380c.png)
状態は変わりませんでした。
ちなみに**通常のリセット後は、何もする必要がない**そうです。
N予備校のmoesukeさんより、アドバイスをいただきました。
ありがとうございます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/d4544713-d6e9-0cc0-d567-0dbe21bc6941.png)



#####- 2-3-2.　アップデート#####
　画面中央でぐるぐる回り(スピニング・ホイール)、処理がいつまでも終わらないため、中断しました。


#####- 2-3-3.　アンインストール#####
　2時間経っても処理が終わらず、あきらめました。
　

</div></details>
       










#3. Hyper-V の無効化

N予備校の moesukeさんからアドバイスをいただき、**Hyper-V** を無効にしました。

　参考：[BlueStacks 5：WindowsでHyper-Vを無効にする方法]
(https://support.bluestacks.com/hc/ja/articles/360055244412-BlueStacks-5-Windows%E3%81%A7Hyper-V%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)



#####- 1.　画面左端のWindowsマーク ＞ コントロールパネルを開く。#####

#####- 2.　プログラム　＞　プログラムと機能　＞　Windowsの機能有効化または無効化#####

#####- 3.　Hyper-V のチェックを外し、OKをクリック。#####

![h.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/0846a027-32dc-32bf-925a-89ba7a3b95cb.png)


**　- 4.　再起動を求められます。**

**　- 5.　Docker dektop が正常に起動しました！**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/b34d1475-56a8-56db-c046-f4f495298019.png)


#4. 古いコンテナを削除
インストール時の状態にすっかり戻りました。
画面の Start をクリックします。

表示されるコマンドをクリックすると、Dockerの処理が始まります。
終わったら次のコマンドをまたクリックして、という感じで進みました。

ここで **エラー発生**。

```
$ docker run --name repo alpine/
git clone https://github.com/docker/getting-started.git

docker:Error response from daemon: Confrict.
The container name "/repo" is already in use by container 
"xxxxxxxxxxxxxxxxx(ｱﾙﾌｧﾍﾞｯﾄと数字)xxxxxxxxxxxxxxxxx".
You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.


$ docker cp repo:/git/getting-started/ .
Error: No such container:path: repo:/git/getting-started/
```



エラーメッセージ で検索し、このページを参考にさせていただきました。
[Docker Setup, cannot clone the repository because container name already taken]
(https://stackoverflow.com/questions/67577684/docker-setup-cannot-clone-the-repository-because-container-name-already-taken)

>  ```This failure can happen when a container with the same name is no longer　
>  running. Your second command failed because a container repo was not created
>   properly in the previous step.```

どうやら
**同じ名前のコンテナが すでにあるようです。**
2番目のコマンドは、これから作ろうとしているものと競合するコンテナが、すでにあるため
実行されませんでした。

リンク先に載っていた2つのコマンドのうち、どちらかを試せばOKとのこと。
Git Bashで両方を使ってみました。


#####- 1.　使われていないコンテナを全て削除する#####

```
$ docker system prune -f

Deleted Containers: xxxxxxxxxxxxx(ｱﾙﾌｧﾍﾞｯﾄと数字)xxxxxxxxxxxxxxx
Deleted Networks:
adding-up_default
Deleted Images:
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
Deleted build cache objects:
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
Total reclaimed space: 475.5MB
```
競合していたコンテナ、イメージやキャッシュが消えました。



#####- 2.　repoコンテナを明示的に削除して、再試行する#####

```
$docker rm -f repo

Error: No such container: repo
```

前のコマンドを実行し、競合するコンテナがなくなっていたので、エラーになりました。
ここで、Docker Desktopがインストール時 当初の画面に戻りました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/b34d1475-56a8-56db-c046-f4f495298019.png)

もう一度やり直したところ、Docker-Hubに同期し
無事にコンテナ内で Dockerを起動することができました。

**まるで何もなかったかのように！！！**
（Docker-Hubは、Dockerが動かなくなってから 登録しました。）

そして、N予備校のフォーラムで Dockerが動いたことを報告し
再び、アドバイスをいただきました。
> 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1971613/2f118adc-2611-19dd-4f77-b1bd6453c060.png)
>  

疑問にスパっと答えてくださり、ありがたいです。



#5. 最後に
Dockerが使えないと、プログラミングの授業も予習も
画面を眺めるばかりで手元を動かせず、本当に困りました。

**N予備校では、Slackやフォーラムで分からない箇所を 気軽に質問することができます。**
下記リンクは今回、私が相談したページです。

[昨日まで動いていたDockerが起動しなくて困っています。](https://www.nnn.ed.nico/questions/25627)

同じようにプログラミングを学ぶ生徒さんや、先生、
運営に携わる方が答えてくださるので、とても助かっています。
今回も たびたび 疑問にお答えいただき、無事 解決することができました。

よく分からないトラブルを1人で解こうとすると、堂々巡りになることがあります。
頭の中でループしては、くよくよしたり、イライラしたり・・・手詰まり感・・・

そんなときにヒントとなる神の手が！
「もういいや」と思っていたヤル気もよみがえるのでした。

moesukeさん、本当にありがとうございました！

---
他、参考にしたページです。

[Windows 10 の Hyper-V の概要](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/about/)
[デーモン(daemon)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word11000.html)
[Dockerデーモンに関するもう少し詳しい説明](https://www.memotansu.jp/docker/377/)