読者です 読者をやめる 読者になる 読者になる

This is a Pen

プログラミングとITと日記

dockerでネットワークエラー

Docker Errors

f:id:pierrot-nose:20160521001851j:plain

Dockerが爆発的に流行ってからだいぶ経ちますが、
それでもエラーというエラーで悩まされる方が多いかと思います。
本記事がちょっとした助けになればと思います。

※docker-toolbox @ virtualboxの環境で発生したエラーのため、
各自こころの目、もしくは超補正でご覧になってください。


"An error occurred trying to connect:"エラー

事象

  • An error occurred trying to connect: Get http://%2F 〜 The system cannot find the file specified
    というエラーが出る

  • 下記コマンドは問題なく動作する(※クライアント側は動作する)

    • docker-machine info
    • docker -v
    • docker-compose
  • docker本体(サーバー側)へ繋げようとするとエラーが発生する ⇛ docker info 等のコマンドでエラー

  • Error checking TLS connection: Could not find matching IP 〜 が表示される
  • docker-machine ssh とかはつながる
  • ホストオンリーうんたらのネットワークでエラーが起きる

原因

Dockerマシン(virutal Box経由またはその他)が作成されているが、
環境変数が正しく設定出来ていないため、繋がらない。

解決策

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

上記で動かなかった場合は、
実行する前に下記コマンドでマシンを削除し、再度作成しちゃいましょう。

$ docker-machine rm default
$ docker-machine create default --driver virtualbox

"command not found"系のエラー

事象

dockerコマンドが呼び出せない、
または呼び出すとエラーが発生する

原因

dockerインストール時のパスの設定が正しく出来ていない場合に発生し、
各コマンドが正しく呼び出されない場合に出力されるエラーです。

解決策

  • 環境変数にパスを通す
    windows機ならば環境変数Mac系ならば.bashrcやお使いのシェルうんぬんの設定ファイルにpathを通してください。)

やり方としてはwindows特有の環境変数に呼び出されているcommandのパスを通すだけ。
注意としてユーザー環境変数に入れること。下の記事にもおなじ事をかいています。

acchi-muite-hoi.hatenablog.com

http://acchi-muite-hoi.hatenablog.com/entry/2016/05/16/011046

同じ様な記事を書いていた事に反省。
Windowsは上の記事を参照してください。

Macユーザーの方はDockerのルートフォルダにあるbinにパスを通せば問題無いかと思います。


VirtualBoxでマシンの作成が無限ループする

事象

  • VirtualBoxでマシンを作る際に永遠と終わらない
    • IPが正しく振られず、マシンの作成が永遠に終わらない
  • ② マシン作成後、コマンドが正しく実行されていかない

原因

① に関しては、dockerというよりかはVirtualBoxの問題のほうが大きい。
 マシンを作る際にIPが正しく設定出来ない。
 PCのネットワークアダプタvirtualBoxに関係あり

② は本記事の最初のエラーと同様、環境変数を通せば解決

解決策

  • ① 現在(2017年1月)時点では、docker for mac, windowsがあるのでそちらを利用するほうをおすすめする。

それでも使いたい場合はVirtualBoxのバージョンに気をつける。

 windows10でDocker Toolboxのエラーとインストール【ざっくり手順あり】 - This is a Pen

  • ② 下記コマンドを実行
$ eval` "$(docker-machine env default)"

ダメだった場合は実行前に書きコマンドを追加

$ docker-machine rm default
$ docker-machine create default --driver virtualbox

docker tool-boxならdocker quickstart terminal にて下記コマンドを入力してください

$ docker-machine env default --shell cmd
# ここでいうdefaultはvirtualbox上で作られたマシン名です
# これで環境変数が表示されます


VirtualBoxでマシンの作成が無限ループする(設定編)

事象

  • VirtualBoxでマシンを作る際に永遠と終わらない
    • IPが正しく振られず、マシンの作成が永遠に終わらない
  • ネットワークアダプター(ホストオンリー)の作成に失敗

原因と解決策

VirtualBox仕事しろ。

windowsというかvirtualBoxのもつエラーのようなもので
virtualboxのアダプター設定をいじる必要がある。

f:id:pierrot-nose:20160521004446p:plain

VBoxの環境設定 ⇒ ネットワーク⇒ホストオンリー欄の中のアダプターをひとつだけ残す(複数ある)

  • 上記のアダプタが大量にあるために衝突が発生している?
    ↑↑毎回マシンを作成しているために大量発生?
    niiz様のqiita記事を参考

解決策その2

windows10には hyper-V という仮想化機能が標準で入っていますが
virtualbox経由で動かすdocker tool-boxで競合しうまく動作しない時があります。

その場合はコマンドプロンプトを開き下記コマンドを入力

bcdedit /set hypervisorlaunchtype off
# PC再起動
# 反対の場合は hypervisorlaunchtype auto

もしくわ
「コントロールパネル」➡「windowsの機能」➡「Hyper-V
を直接無効化するやり方もありますが、これにより エミュレータ系のソフトが動かない可能性がありますので注意が必要です。


更新(2016/06/23)

acchi-muite-hoi.hatenablog.com

ネットワークというか、virtualBoxのネットワーク関連。
もしかしたら役に立つかもしれない・・・

まとめ

エラー大杉わロタ。辛いわ

お探しのエラーでないかもしれませんが、引き続きエラー解析がメインとなる記事を書いていきます。
エラーにより時間が過ぎていくのは現場でもプライベートでももやもやします。

幸い、人気があるがためにググればたくさん情報があるのが救いですね。


マツケンの事を嫌いになっても・・dockerの事は嫌いにならないでくださいっ・・!!

Related Posts Plugin for WordPress, Blogger...