フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

windows環境でひさしぶりに起動したdockerが起動しなくなった

事象


久しぶりにWindows環境のDockerを起動したときに下記のエラーが発生した

$ docker ps

error during connect: Get https://192.168.99.100:2376/v1.40/containers/json: dial tcp 192.168.99.100:2376: connectex: No connection could be made because the target machine actively refused it.

調べてみるとバージョンの違いがあるがgithubのissueにたどり着きました。

error during connect Get https://192.168.99.100:2376/v1.38/containers/json

試した事①


docker-machine env default のコマンドを実行するとエラーの内容と解消する方法のコマンドを教えてくれる。 解消するコマンドはおそらく人それぞなので、コマンド実行時のエラー内容を確認しましょう。

$  docker-machine env default
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: connectex: No connection could be made because the target machine actively refused it.
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which might stop running containers.

自分の場合、docker-machine regenerate-certs [name]コマンドしてdockerのデーモンを再起動する内容がだったので、下記のコマンドを実行する

現在、virtualboxで有効になっているものを確認する。Nameが「default」になっていることを確認する

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           Unknown   Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: dial tcp 192.168.99.100:2376: connectex: No connection could be made because the target machine actively refused it.

docker-machine regenerate-certs defaultのコマンドを実行したところ違うエラーが発生して解消されず。

$ docker-machine regenerate-certs default
Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...

Unable to verify the Docker daemon is listening: Maximum number of retries (10) exceeded

試したこと②(こちらで解決しました)


既に作成されているバーチャルマシンを削除する。

$ docker-machine rm -f default
About to remove default
WARNING: This action will delete both local reference and remote instance.

バーチャルマシンを再度作成することで正常にdockerを起動することができました。

$ docker-machine create -d virtualbox default

結論

このissueの記事を参考に解決しました。