なんだこれは

はてなダイアリーから移転しました。

Docker で Network Timeout

Mac OSX の Docker Quickstart Terminal で Docker Hubからイメージの取得時に Network Timeout が発生する場合の直し方メモ

TLTR;

docker-machine restart default
eval "$(docker-machine env default)"

(https://github.com/docker/docker/issues/20910)


起動時にこんなメッセージがでて、

Starting "default"...
(default) Waiting for an IP...
Machine "default" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): 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...

こんなAAが表示されて、

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/

最後にこんなメッセージがでる

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

dockerの環境情報を設定して、

eval "$(docker-machine env default)"

(ローカルになかったら、新しいdocker imageをpullして)起動すると、

docker run centos

Unable to find image 'centos:latest' locally
Pulling repository docker.io/library/centos
docker: Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/centos/images. You may want to check your internet connection or if you are behind a proxy..
See 'docker run --help'

というエラーが表示された場合、defaultのイメージの起動がうまくいってないらしい。
そのためdefaultを再起動するとうまくいくらしい。

※ boot2dockerで stop startさせろとでてくるかもしれないがそれは古い情報で、
今のMac OSX の Docker Quickstart Terminalにはそのようなコマンドは含まれていません。

docker-machine restart default

再起動するとこんなメッセージがでる。

Restarting "default"...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

IPアドレスが変化するらしいので、もういっかい設定をしなおす。

eval "$(docker-machine env default)"

もういちど実行するとうまくいく。

docker run centos

Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a3ed95caeb02: Pull complete
5989106db7fb: Pull complete
Digest: sha256:1b9adf413b3ab95ce430c2039954bb0db0c8e2672c48182f2c5b3d30373d5b71
Status: Downloaded newer image for centos:latest