docker関連のerrorと対処法集
dockerを勉強し始めて,詰まった部分などを書き溜めていく.
同じエラーで詰まった人の助けになれば幸いです.
エラーに遭遇する度に追加していく予定
tips
何かしらのエラーでうまく動かないときは,
docker logs [container id]
でログを見ることができる.unicornのエラーは標準出力には出力されなかったので,直接エラーログファイルを見に行く必要があった.
例えば,以下のようなエラーの場合は,unicorn系のエラーだったのでrun bashで内部に入って,同様のコマンドを実行してエラーログファイルを参照した.
[error] 5#5: *11 connect() to unix:/share/unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.168.99.1, server: , request: "GET / HTTP/1.1", upstream: "http://unix:/share/unicorn.sock:/", host: "192.168.99.104"
eval $(docker-machine env default)
dockerの接続先を指定するためのコマンド.(この場合は指定先をdefault
にするコマンド)
ターミナルが変われば,この接続先は再指定する必要がある.
逆に,ターミナルごとに接続先を指定できる.
docker-machine ls
でACTIVEにマークがついているかちょくちょく確認したほうがよい.
docker-machine起動関連のエラー
- error
$ docker-machine env default Error checking TLS connection: Host is not running
- 解決法
docker-machineが起動していなかった.
$ docker-machine start default
- error
$ 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.101:2376": x509: certificate is valid for 192.168.99.100, not 192.168.99.101 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.
- 解決法
前起動していたときとIPが変わっているために発生するエラー.
エラー文に書いているが,
$ 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... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon...
これで起動する.
- error
$ 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... Too many retries waiting for SSH to be available. Last error: Maximum number of retries (60) exceeded
- 解決法
docker-machineを起動していない.
$ docker-machine start default && docker-machine regenerate-certs default