docker起動時エラーまとめ(Docker Quickstart Terminal.appが起動しない!他2件)

macでdockerを起動しようと、Docker Quickstart Terminal.appを実行しても、うんともすんとも言わなくなったのでちょっと調べた。

docker起動時エラー目次

  • Something went wrong running an SSH command!エラー
  • Cannot connect to the Docker daemon. Is the docker daemon running on this host? エラー
  • Docker Quickstart Terminal.appが起動しない

環境

ソフトウェア バージョン
mac OSX YOSEMITE 10.10.4
iTerm2 3.0.3
$ docker version
Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Tue Apr 26 23:44:17 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 17:52:38 2016
 OS/Arch:      linux/amd64

Something went wrong running an SSH command!エラー

とりあえず、状態を調べようと思ってlsしてみると、エラーが出ているのを発見。

$ docker-machine ls
NAME        ACTIVE   DRIVER       STATE     URL                     SWARM   DOCKER    ERRORS
default     *        virtualbox   Running                                   Unknown   Something went wrong running an SSH command!
command : ip addr show
err     : exit status 255
output  :

どうもdockerへSSH接続するための鍵がどうとからしい(違うかも)。

とりあえず、解決法としては、いったんイメージを削除して入れ直します。

$ docker-machine rm default
About to remove default
Are you sure? (y/n): y
Successfully removed default

削除する。

$ docker-machine create --driver virtualbox default
Running pre-create checks...
(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v1.12.1
(default) Downloading /Users/kobachi/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v1.12.1/boot2docker.iso...
(default) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
Creating machine...
(default) Copying /Users/kobachi/.docker/machine/cache/boot2docker.iso to /Users/kobachi/.docker/machine/machines/default/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Waiting for an IP...

ちょっと、待つ・・・ドキドキ・・・

Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

きたっしゅ。

$ docker-machine ls
NAME        ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default     -        virtualbox   Running   tcp://192.168.99.101:2376           v1.12.1

うああ、IPが192.168.99.100じゃない。1増えている。
埋まってたのかな・・

とりあえず、エラーは消えました。

Cannot connect to the Docker daemon. Is the docker daemon running on this host? エラー

docker-machine lsのエラーは消えたのですが、未だ起動してくれず。

そこで次のエラーを発見します。

$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

シェルとVMを繋ぎます。

$ eval "$(docker-machine env default)"
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

シェルからdocker deamonが見えるように(?)なりました。

なぜかコンテナは空っぽ。

削除したっけ?

とりあえず、これで改めてdocker pulldocker-compose.yamlを置いている場所まで移動してdocker-compose upします。

$ docker-compose up
Pulling my_mysql (mysql:5.7.10)...
5.7.10: Pulling from library/mysql
03e1855d4f31: Pull complete
a3ed95caeb02: Pull complete
ea9cb3d7d346: Pull complete
e47839e262bb: Pull complete
7898f5b7efac: Pull complete
b2d94e9a2da0: Pull complete
1dc7094cabe1: Pull complete
7222d4ba5522: Pull complete
084f64da661b: Pull complete
7af5709d8aa1: Pull complete

これで、コマンドラインから起動できるようになります。。

// コマンドラインから実行
$ /Applications/Docker/Docker\ Quickstart\ Terminal.app/Contents/Resources/Scripts/start.sh

Docker Quickstart Terminal.appが起動しない

それでも、Docker Quickstart Terminal.appは起動してくれません。

なんでappで起動できないんだと思っていたら、start.shと同じ位置にあるiterm.shをかきかえろとのこと

set itermRunning to (application "iTerm" is running)
set scriptPath to quoted form of POSIX path of ((path to me as text) & "::" & "start.sh")
set user_shell to do shell script "dscl /Search -read /Users/$USER UserShell | awk '{print $2}'"

tell application "iTerm"
    activate
    if not (exists window 1) or (itermRunning = false) then
        reopen
    end if

    try
        tell current window
            set newTab to (create tab with default profile)
            tell current session of newTab
                write text "bash --login " & scriptPath
            end tell
        end tell
    on error
        tell current session of (create window with default profile)
            write text "bash --login " & scriptPath
        end tell
    end try
end tell

何が変わったんだろうなーと思いつつ、iterm.shを開いてみると、バイナリファイル見たく@@@とかならんでる。
これを上のシェルスクリプトんに書きかえて、Docker Quickstart Terminal.appを実行すると、起動しました。

まとめ

どうにか、動きました。

dockerがどういう構造してて、ネットワーク作って動いているかわかれば、こんなハマる事もなかろうにと思うのですが、もうちょっと(かなり)かかりそうです。

とりあえず、githubのissueで解決策が連呼されてて面白かったです。

参考

Error getting IP address: Something went wrong running an SSH command #317
iTerm2でDocker Quickstart Terminalが起動しなくなった場合の対処方法

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク