2015年7月7日火曜日

【技術メモ】boot2docker for windowsでいきなりハマった3つのこと


仕事用の PC は Windows です。

Python を使いたくてあれこれ準備をしたのですが、パッケージ管理を動かすために古いコンパイラが必要とかバイナリで個別にダウンロードが必要とかちょっとインスタントじゃない。

Windows で Python は鬼門なんて言われる所以をまんまと目の当たりにしました。

Python でゴリゴリ開発!!ってわけじゃないので、IPython で動かせば事足りる。
じゃあ Docker コンテナ持ってきて動かしますか。
ということになりました。

Windows で動かすということで boot2docker を使っています。

が。ここでも罠が待ち構えているのでした。


1. dockerにつながらない

インストールが完了して起動すると、VMが起動してサーバが起きるところまでは進むのですが、クライアントがサーバとお話できないという事態。

状況的には新規インストールですが発生する模様。条件は違うようですが発生した内容は同じで X.509 の認証で失敗しているようです。

先例がありました。
boot2docker の issues にもありますね。

スクリプトの中を見てみると eth1 が準備出来ていないだけのような感じです。
起動が終わるまで待ちましょうという状態のようです。

Docker complains about invalid certificate after update to v1.7.0

boot2docker(v 1.4.1 and 1.5) bad cert issues on OSX 10.9.3 #824


2. DataVolulme がマウントできない

Win版 boot2docker は mingw の仕様が支配的です。

DataVolume をマウントする場合のよくあるパラメタの指定、$PWD にすると c:\users\[username]\ がマウント対象になります。

issue があったようです。
Basic volume mount fails with windows docker client against boot2docker #12751

起動するときは mingw の仕様に則って // が必要です。
$ docker run -d -v $PWD/[hostpath]://[dokerpath] dockerimage

3. 起動しているコンテナで bash が実行できない

起動しているコンテナを直接操作したい場合もうっかりしていると2と同じ罠にハマります。
$ docker exec -it <container-id> //bin/bash
またしても先人が踏みぬいたところを踏み抜きにいきました。
boot2docker equivalent of docker exec



多分数カ月後、同じ轍を自分が踏むのでメモ

0 件のコメント :

コメントを投稿