0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerDesktop for Windowsが起動しない、そんなあたなへ【2022年8月】

Posted at

概要

 自分自身、Dockerの知識・経験が非常に浅かったことも要因かとは思うのですが…「DockerDesktop for Windows」を使用し開発しようとしたものの、

  • DockerDesktopアプリが起動しない(&再度使おうとしたものの、また使えなくなった)
  • コマンドdocker builddocker compose up -dでエラーが出て進まない

などなど…悩み、時間を費やし、苦しみを味わいまくりました。同じ悩みを抱える方がいらっしゃるのであれば、その苦しみが少しでも減りますようこのメモを残します:sheep::sheep:

:warning: 注意 :warning:

  • こちらは社内に2022年8月頃に作成・公開したメモのため、情報が古くなっている可能性があります。が、「ひょっとしたら誰かの役に立つ情報があるかもしれない!」という思いで載せることにしました。
  • これらの方法以外にも、それぞれの原因に合った良い解決方法は存在すると思います。適宜ググってください!
  • 現在はDockerDesktop for Windowsを使用していないこともあり、私から質問にはお答えすることは難しいです…すみません。

(超ザックリと)環境・状況に関する情報

  • Windows10
  • 「Hiper-V」有効化済
  • DockerDesktopのwindows版のダウンロードは完了
    • 「Use WSL2 ...」はチェックを外してインストール(Hyper-Vを利用するため)
    • コマンド「docker version」実行での確認完了

STEP1:そもそものDockerアプリが起動しない

エラー「Not enough memory to start Docker」発生

上記を参考に、必要メモリ数を減らした。

エラー「Docker Desktop service is not running, would you like to start it? Windows will ask you for elevated access.」

上記を参考に、制御フローガード(CFG)を見直した。アップデート関係無く、効くときは効く。

DockerDesktopを起動し画面が表示されるものの…①「Docker desktop stopped...」が表示されたまま

上記を参考に、管理者で起動したpowershellにてコマンド実行。
上記でNGだった場合は下記を参考にsettings.jsonを編集しても良いかも。

DockerDesktopを起動し画面が表示されるものの…②読み込みのグルグルのまま…

上記項目『 DockerDesktopを起動するも…①「Docker desktop stopped...」』と同様の対応でOK。

DockerDesktopアイコンをクリックして起動させても無反応、または上記以外のエラー

1回目の起動では無理だったが、2回目以降は無事に起動したことがあった。(なんで・・・??)
何度か試すのも手かもしれない。

STEP2:Dockerアプリは起動したが「docker build」「docker compose up -d」でエラー

エラー「[internal] load metadata for docker.io/library/hoge」①設定の見直し

例えば、下記のようなエラー。

------
 > [internal] load metadata for docker.io/library/python:3.10
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = Unknown desc = failed to fetch oauth token: Post "https://auth.docker.io/token": proxyconnect tcp: tls: first record does not look like a TLS handshake

ファイル「DockerFile」内で「FROM」を用いて呼び出しているライブラリ(上記だとpython:3.10)に対して
プロキシが関係していそうなエラー。

上記を参考に、DockerDesktopアプリのDocker Engine 設定画面にて設定を変更。

エラー「[internal] load metadata for docker.io/library/hoge」②pullしてまえ

上記でも解決しなかった場合…下記のように、
docker build(またはdocker compose)する前にpullしておくとエラーが出なくなることがある。
(pullが成功するとdockerのimageが(この場合は「python3.10」等の名前で)作成されているかも。要確認)

docker pull python:3.10

エラー「invalid volume specification」①不要なimageの削除

time="2022-06-28T14:02:23+09:00" level=warning msg="network default: network.external.name is deprecated in favor of network.name"
[+] Running 0/1
- Container trial-back  Creating                                                                                                                               0.2s
Error response from daemon: invalid volume specification: 'C:\work\hoge\backend\app:/app:rw'

「無料でDockerを使っている場合はvolumeに制限がある」と推測。使用容量を減らす方法として、まず
コマンド「docker images」実行し不要なimageを見つけ、「docker image rm 」で削除

エラー「invalid volume specification」②軽いライブラリを使用する

ライブラリによっては不可能な対処法だが、
例えばpython3.10の場合、python3.10の代わりに「python:3.10-slim」を使用するよう変更しても良いかも。
(DockerFileの変更等が必要)

エラー「The requested image's platform (linux/amd64) does not match ...」

---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (windows/amd64) and no specific platform was requested

「Linux container を作れません。なぜって、Windows containerモードやし」とのこと。

2024年11月現在、リンクが無効になってしまっていましたがDockerでエラー(The virtual machine or container with the specified identifier is not runningを参考に「Docker - Switch to Linux container」を実施し解決させていたようです。
またこのとき、DockerDesktopが自動で再起動(Restart)されるはずなので注意!

エラー:pip installできない※ローカル環境

Step X/Y : RUN pip install hogehoge
---> Running in 3c6edf9b380d
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8de19f1e10>: Failed to establish a new connection: [Errno -5] No address associated with hostname')': /hoge/hogehoge/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8de19f3250>: Failed to establish a new connection: [Errno -5] No address associated with hostname')': /hoge/hogehoge/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8de19f1360>: Failed to establish a new connection: [Errno -5] No address associated with hostname')': /hoge/hogehoge/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8de19f0fd0>: Failed to establish a new connection: [Errno -5] No address associated with hostname')': /hoge/hogehoge/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8de19f0310>: Failed to establish a new connection: [Errno -5] No address associated with hostname')': /hoge/hogehoge/
ERROR: Could not find a version that satisfies the requirement hogehoge (from versions: none)
ERROR: No matching distribution found for hogehoge

プロキシで引っ掛かっていてpip installできないヤツ。以下はローカル環境では有効な方法なのだが、
ファイル「DockerFile」にて「pip install hogehoge」する記述の前にプロキシ設定してあげると良いかも。

ENV https_proxy "http://<ユーザ名>:<パスワード>@proxy.example.com:XXXX"
ENV http_proxy "http://<ユーザ名>:<パスワード>@proxy.example.com:XXXX"

おわり!

 余談&自戒ですが、PCの動作に不安がある場合は、別の作業をする(dockerが不要になった)際は、起動しているdockerを全てstopさせ、imageが残っている状態でDockerDesktopアプリを閉じる(Quit Docker Desktop)方が良いと思います。(一度、リモートデスクトップ繋いでデスクトップでdocker起動中、別のコードが見たくなりVSCodeを別途立ち上げたらデスクトップPCが動かなくなった上にリモートデスクトップが落ち、しばらく繋がらなくなりました…:sob:

 皆さまの環境で、無事にDockerDesktop for Windowsが起動しますように!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?