web-dev-qa-db-ja.com

TCPタイムアウトのため、Dockerはboot2dockerに接続できません

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
63
nikhil

私もこの問題を抱えており、ここに一時的な解決策があります。

まず、virtualboxを開き、boot2docker vmのネットワーク設定を確認して、Host onlyアダプタに名前が付けられます。私の場合、vboxnet1です。あなたにとっては、vboxnet0かもしれません。

次に、このコマンドを適用します。

Sudo route -nv add -net 192.168.59 -interface vboxnet1

これで、Dockerコマンドを実行できるはずです。

詳細については、 この問題 を参照してください

edit:私はこの問題の共通点がCisco anyconnect(私を含む)、fwiwであることに気づいています

57
darethas

私は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
64
user2472759

この問題を解決するために私がしたことは次のとおりです(私はOSX Yosemiteを使用していますが、受け入れられた答えは私にはうまくいきませんでした)。

  • boot2docker delete-警告:これにより、すべてのDockerイメージが削除されます。
  • Virtualboxで、VirtualBox(メニュー)=> Preferences => Network => Host Only Networks に移動します。
    • ホストのみのネットワークを削除してから、追加し直しました
  • boot2docker init
  • boot2docker up

現在、DockerはiTerm2を介してOS Xコマンドラインから動作します。

45
KLaw

これは私にも起こり、上記のどれも問題を解決しませんでした。

今日、同僚の提案のおかげで、私は最初に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と話すことができました。

6
bobbiejc

わかりましたので、これは私にも起こった。

まず、環境変数の設定が必要です。しかし、その後、I/Oタイムアウトエラーが発生し続けました。

そのため、アプリケーションパッケージを実行して(boot2dockerアイコンをクリックして)boot2dockerを起動する代わりに、コマンドラインから起動しました。

私が最初に実行した、

$boot2docker init

つまり、VMはすでに実行されていました。

それから私は先に進み、それを始めようとしました。

$boot2docker start

これはそれを始めました。

実行して確認できます

$boot2docker info

実行中のインスタンスに関するJSONを出力します。

その後、あなたはそれにsshして実行することができます

$boot2docker ssh
$docker run hello-world

それでおしまい。それが役に立てば幸い。

5
wlan0

Cisco AnyConnectの実行後にこの問題が発生しました。 AnyConnectをシャットダウンした後でも、問題は続きました。 @ treehau5の答えは機能しますが、私にとってもうまくいったのはboot2docker poweroffその後、アクティビティモニターを使用して、AnyConnectによって残されたciscodを強制終了します。その後、新しいターミナルウィンドウを開き、通常どおりboot2dockerを起動し、dockerコマンドは正常に機能しました。

4
Dan Tenenbaum

簡単でした。 virtualboxをアップグレードすると、この問題はなくなりました。

3
Rimian

Treehau5メソッドを試しましたが、うまくいきませんでした。 VirtualBoxのboot2docker vm設定のネットワーク設定を変更しました-「ホスト専用アダプターの無差別モード」を「すべて許可」に変更しました

2
surajz

VirtualBoxの設定からvboxnet0を削除し、2番目のboot2docker vm(boot2docker --vm = "boot2docker-vm2" init)を初期化して、正しい設定でvboxnet0を再作成しました。この後、物事は正常に戻ったように見えました。

0
lenny

これが私が似たような障害に見舞われたときに私にとってうまくいったことです。 VirtualBoxをアップグレードしたことを確認してから:

  1. _boot2docker stop_
  2. _boot2docker init_
  3. boot2docker start; eval "$(boot2docker shellinit)"

次に、正気のために、_$DOCKER_Host_が$(boot2docker ip)と一致することを確認します。私は最初に始めたとき、_$DOCKER_Host_が何らかの形で設定されなくなっていたので、私は多くのことが起こっていたと思う。

この問題といくつかの議論はGitHubの問題のページで見つけることができます ここ -むしろ、単にVirtualBoxが不安定な場合のように見えます。

0
Alex Lynham