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