Mac OS 10.9.5を実行しています。 https://docs.docker.com/installation/mac/ に従ってdockerをインストールしました。 boot2docker VMがバックグラウンドで実行されているにもかかわらず、dockerを実行するとタイムアウトエラーメッセージが表示されます。
nikhil@macbook ~> boot2docker status
running
nikhil@macbook ~> boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
nikhil@macbook ~> docker run hello-world
2014/11/01 01:01:31 Post https://192.168.59.103:2376/v1.15/containers/create: dial tcp 192.168.59.103:2376: i/o timeout
nikhil@macbook ~> docker search ubuntu
2014/11/01 01:02:40 Get https://192.168.59.103:2376/v1.15/images/search?term=ubuntu: dial tcp 192.168.59.103:2376: i/o timeout
Dockerがboot2docker vm内で実行されており、ポートが正しいことを確認しました。
nikhil@macbook ~> boot2docker ssh
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.3.1, build master : 9a31a68 - Fri Oct 31 03:14:34 UTC 2014
Docker version 1.3.1, build 4e9bbfa
docker@boot2docker:~$ Sudo netstat -ntpl | grep docker
tcp 0 0 :::2376 :::* LISTEN 629/docker
私もこの問題を抱えており、ここに一時的な解決策があります。
まず、virtualboxを開き、boot2docker vmのネットワーク設定を確認して、Host only
アダプタに名前が付けられます。私の場合、vboxnet1です。あなたにとっては、vboxnet0かもしれません。
次に、このコマンドを適用します。
Sudo route -nv add -net 192.168.59 -interface vboxnet1
これで、Dockerコマンドを実行できるはずです。
詳細については、 この問題 を参照してください
edit:私はこの問題の共通点がCisco anyconnect(私を含む)、fwiwであることに気づいています
私はOSX YosemiteとCisco Anyconnectを使用しています(boot2dockerを使用するのは明らかに悪いコンボです)、次は最終的に私のために働きました( リンクされたGitHub問題のコメント のおかげで):
これらの手順では、ポート転送ルールを追加し、127.0.0.1
または他のNATされたIPではなく192.168.59.103
を指すように環境を変更します。
まず-boot2dockerをインストールする必要がありますが、実行しないでください。
現在実行中の場合-今すぐ停止します。
boot2docker down
Boot2docker vmの127.0.0.1:2376
からポート2376
にトラフィックを転送するルールを追加します。
vboxmanage modifyvm "boot2docker-vm" --natpf1 "docker,tcp,127.0.0.1,2376,,2376"
Boot2dockerを開始します。
boot2docker up
デフォルトのDOCKER環境変数を設定します。
$(boot2docker shellinit)
DOCKER_Host
変数をオーバーライドして、127.0.0.1
を指すようにします。
export DOCKER_Host=tcp://127.0.0.1:2376
これで、Dockerコマンドを実行できるはずです。
docker version
この問題を解決するために私がしたことは次のとおりです(私はOSX Yosemiteを使用していますが、受け入れられた答えは私にはうまくいきませんでした)。
boot2docker delete
-警告:これにより、すべてのDockerイメージが削除されます。boot2docker init
boot2docker up
現在、DockerはiTerm2を介してOS Xコマンドラインから動作します。
これは私にも起こり、上記のどれも問題を解決しませんでした。
今日、同僚の提案のおかげで、私は最初にVPNを起動しませんでした。私はマシンをリブートし、最初からdockerで始めました。
boot2docker init
boot2docker up
$(boot2docker shellinit)
docker run hello-world
期待通りに働きました!
Florian Rosenbergによる post が便利だと思いました。私はそれを詳しく読みましたが、彼が最初の部分で提案していることのほとんどは、boot2dockerの最新バージョンに組み込まれていると思います。しかし、洞察力に富んだビットは「VPNに接続することは壊れます」でした。提案されているのは、何に対しても拒否するファイアウォールルールを探すことです。そのため、VPNが起動しなかったため、このルールを探しましたが、そこにはありませんでした。案の定、VPNを起動すると、次の(異なる)エラーが発生しました...
docker run hello-world
2014/11/13 11:11:18 Post https://192.168.59.103:2376/v1.15/containers/create: dial tcp 192.168.59.103:2376: permission denied
ファイアウォールルールをチェックし、新しいルールが十分に追加されたことを確認しました... Sudo ipfw -a list | grep "deny ip" 00411 1 64 anyからanyへのipを拒否
ファイアウォールルールを削除したら:Sudo ipfw delete 00411
OSXコマンドシェルからdockerと話すことができました。
わかりましたので、これは私にも起こった。
まず、環境変数の設定が必要です。しかし、その後、I/Oタイムアウトエラーが発生し続けました。
そのため、アプリケーションパッケージを実行して(boot2dockerアイコンをクリックして)boot2dockerを起動する代わりに、コマンドラインから起動しました。
私が最初に実行した、
$boot2docker init
つまり、VMはすでに実行されていました。
それから私は先に進み、それを始めようとしました。
$boot2docker start
これはそれを始めました。
実行して確認できます
$boot2docker info
実行中のインスタンスに関するJSONを出力します。
その後、あなたはそれにsshして実行することができます
$boot2docker ssh
$docker run hello-world
それでおしまい。それが役に立てば幸い。
Cisco AnyConnectの実行後にこの問題が発生しました。 AnyConnectをシャットダウンした後でも、問題は続きました。 @ treehau5の答えは機能しますが、私にとってもうまくいったのはboot2docker poweroff
その後、アクティビティモニターを使用して、AnyConnectによって残されたciscod
を強制終了します。その後、新しいターミナルウィンドウを開き、通常どおりboot2dockerを起動し、dockerコマンドは正常に機能しました。
簡単でした。 virtualboxをアップグレードすると、この問題はなくなりました。
Treehau5メソッドを試しましたが、うまくいきませんでした。 VirtualBoxのboot2docker vm設定のネットワーク設定を変更しました-「ホスト専用アダプターの無差別モード」を「すべて許可」に変更しました
VirtualBoxの設定からvboxnet0を削除し、2番目のboot2docker vm(boot2docker --vm = "boot2docker-vm2" init)を初期化して、正しい設定でvboxnet0を再作成しました。この後、物事は正常に戻ったように見えました。
これが私が似たような障害に見舞われたときに私にとってうまくいったことです。 VirtualBoxをアップグレードしたことを確認してから:
boot2docker stop
_boot2docker init
_boot2docker start; eval "$(boot2docker shellinit)"
次に、正気のために、_$DOCKER_Host
_が$(boot2docker ip)
と一致することを確認します。私は最初に始めたとき、_$DOCKER_Host
_が何らかの形で設定されなくなっていたので、私は多くのことが起こっていたと思う。
この問題といくつかの議論はGitHubの問題のページで見つけることができます ここ -むしろ、単にVirtualBoxが不安定な場合のように見えます。