事象
久しぶりに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