環境:
- Mac OSX 10.11.2
- Docker Toolbox 1.9.1i
何をどうしたかサッパリ身に覚えが無いものの、docker-compose up
をすると、以下の様なエラーが表示されるようになってしまいました。
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
docker-machine start default
は当然実行済みなのでなんだろうと思いつつも、ひとまずdocker-machine env default
をしてみようと思ったところ、今度は次のエラーが。
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "<<IP Address>>:2376": dial tcp <<IP Address>>:2376: i/o timeout
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
TLSが無効になってるから、regenerate-certsしろとあります。参考:http://qiita.com/kooohei/items/d370701d6c39727334f3
なので、docker-machine regenerate-certs default
をするわけですが、すると今度もエラー...
$ docker-machine regenerate-certs default
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
This machine has been allocated an IP address, but Docker Machine could not
reach it successfully.
SSH for the machine should still work, but connecting to exposed ports, such as
the Docker daemon port (usually <ip>:2376), may not work properly.
You may need to add the route manually, or use another related workaround.
This could be due to a VPN, proxy, or host file configuration issue.
You also might want to clear any VirtualBox host only interfaces you are not using.
docker-machine restart
するも効果なし。
Issueにあるように、VirtualBoxの設定からHost-onlyを削除するも効果なし。
最終的には、以下で(恐らく)解決
docker-machine stop default
- VirtualBoxの設定からHost-onlyのネットワークアダプタを削除 ←必要か不明
- 手動で以下をexport
$ export DOCKER_CERT_PATH=~/.docker/machine/machines/default/
$ export DOCKER_TLS_VERIFY="1"
$ export DOCKER_HOST="tcp://192.168.99.100:2376"
$ export DOCKER_MACHINE_NAME="default"
これで、docker-machine regenerate-certs default
が通るようになりました。