皆さん
Docker イメージを使用して Web アプリケーションの開発を検討しているところ、次の問題が見つかりました。
(以下のすべてのコマンドは、Vagrantが管理するVBox仮想マシン内で実行されます。)
カスタム項目を作成して
Dockerfile
配置します$HOME/my_app
。FROM ubuntu:14.04 RUN apt-get -q update && apt-get install -y \ python-dev \ python-setuptools \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN easy_install pip RUN pip install virtualenv
上記のビルドイメージを使用してください
Dockerfile
。sudo docker build -t kamils/my_app:0.1 $HOME/my_app
最初のRUNレイヤーが完了するまで、ビルドプロセスは計画どおりに進みます。その後、仮想マシンは応答を停止します。担当のVBoxプロセスがホストCPUの制御を超えました(htopが200%使用量を示しました:P)。
何が起こっているのか、私が間違っているのかというアイデアはありますか?
編集する
(要求時)free -m
出力:
total used free shared buffers cached
Mem: 7890 7410 480 612 30 963
-/+ buffers/cache: 6416 1473
Swap: 7627 1450 6177
また、ホストシステムがUbuntu 14.04で実行されている間、ゲストVM自体はArch Linuxで動作することにも注意する必要があります。
答え1
もう少し掘り下げられ、答えはとても簡単になりました。
私が実行しているArch Linux Vagrantボックスは、 "aufs"モジュールが組み込まれていないカーネルを使用します。 Dockerはaufなしでコンテナを実行できますが、その上に追加のレイヤーを設定するとシステムクラッシュが発生する可能性があります。
残念ながら、Docker は aufs がシステムに存在しないことをユーザーに警告しません。
とにかく..解決されました。