2014年6月16日月曜日

dockerコンテナを別のコマンドで立ち上げる方法はver.1.1から?

docker1.1からコンテナを別のコマンドで立ち上げることができるようになるかも。
https://github.com/dotcloud/docker/issues/1228#issuecomment-45546178

dockerコンテナは停止してもstartコマンドで再度立ち上げることができる。
しかし、現在(v1.0)はstartコマンドはdocker runの時に実行したコマンドでしか起動できない。
もし障害が起きてコンテナが停止して、更にはコンテナがstartで起動しなくなっていたら、原因解析やデータを救出したりすることが難しくなる。

現時点でできる対策としては
・必ずsshdを同時に起動しておく
・volumeや--volumes-fromなどを使ってデータを隔離しておく
といったところ。

最悪これらの設定をしていなかった場合は停止したコンテナを一度commitしてイメージを作成してから再度docker runすることでコンテナが停止したタイミングのデータにアクセスできる。
まぁこれができれば問題ないじゃんって話もあるけど同じコンテナですぐに繋げられる方が楽だよね。

nsinitというのを使って直接dockerの空間にアタッチする方法があるので、それを使えばデータ救出や障害解析ができそう。

とはいえ、実験とかの時に無駄にコンテナを量産しなくてすむし、ぜひぜひ別コマンドでの起動に対応して欲しい。

0 件のコメント:

コメントを投稿