2021年6月から、N予備校でプログラミング入門コースを受講しています。
授業で作った「匿名掲示板」をHerokuにリリースしました。
ほっとしたのも束の間、翌日PCを開いたところ Dockerが起動しなくなりました。
なんとか復活できたので、記録を残そうと思います。
初心者のため、解釈が間違っていることもあるかもしれません。
ご容赦ください。
#目次
1.動作環境
2.エラー現象
3.Hyper-V の無効化
4.古いコンテナを削除
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の状態#####
Settngsを開くと、どこも 選択・クリックできない状態でした。
===================================
初心者考えで試してみて、有効ではなかったことです。
気になる方は クリックしてください。
=====================================
#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をクリック。#####
** - 4. 再起動を求められます。**
** - 5. Docker dektop が正常に起動しました!**
#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)
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がインストール時 当初の画面に戻りました。
もう一度やり直したところ、Docker-Hubに同期し
無事にコンテナ内で Dockerを起動することができました。
まるで何もなかったかのように!!!
(Docker-Hubは、Dockerが動かなくなってから 登録しました。)
そして、N予備校のフォーラムで Dockerが動いたことを報告し
再び、アドバイスをいただきました。
疑問にスパっと答えてくださり、ありがたいです。
#5. 最後に
Dockerが使えないと、プログラミングの授業も予習も
画面を眺めるばかりで手元を動かせず、本当に困りました。
N予備校では、Slackやフォーラムで分からない箇所を 気軽に質問することができます。
下記リンクは今回、私が相談したページです。
同じようにプログラミングを学ぶ生徒さんや、先生、
運営に携わる方が答えてくださるので、とても助かっています。
今回も たびたび 疑問にお答えいただき、無事 解決することができました。
よく分からないトラブルを1人で解こうとすると、堂々巡りになることがあります。
頭の中でループしては、くよくよしたり、イライラしたり・・・手詰まり感・・・
そんなときにヒントとなる神の手が!
「もういいや」と思っていたヤル気もよみがえるのでした。
moesukeさん、本当にありがとうございました!
他、参考にしたページです。
Windows 10 の Hyper-V の概要
デーモン(daemon)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
Dockerデーモンに関するもう少し詳しい説明