3

Ubuntu 13.06 x64 にインストールすると、OpenVZ 仮想マシンになります。

スクリプトに従って手紙を書き、いくつかのエラーを受け取りました...

root@dev:/# sudo apt-get install linux-image-extra-`uname -r`
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-extra-2.6.32-042stab081.3
E: Couldn't find any package by regex 'linux-image-extra-2.6.32-042stab081.3'
root@dev:/#

私はできるが:

root@dev:/# uname -r
2.6.32-042stab081.3
root@dev:/#

次に、インストールしようとすると、次のメッセージが表示されます(これは2回目の試行であるため、明らかに削除されています)

root@dev:/# sudo apt-get install lxc-docker
Reading package lists... Done
Building dependency tree
Reading state information... Done
lxc-docker is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
4 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Setting up lxc (0.9.0-0ubuntu3.4) ...
start: Job failed to start
invoke-rc.d: initscript lxc-net, action "start" failed.
dpkg: error processing lxc (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of lxc-templates:
 lxc-templates depends on lxc (>= 0.8.0~rc1-4ubuntu43); however:
  Package lxc is not configured yet.

dpkg: error processing lxc-templates (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of lxc-docker-0.6.3:
 lxc-docker-0.6.3 depends on lxc; however:
  Package lxc is not configured yet.

dpkg: error processing lxc-docker-0.6.3 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of lxc-docker:
lxc-docker depends on lxc-docker-0.6.3; however:
  Package lxc-docker-0.6.3 is not configured yet.

dpkg: error processing lxc-docker (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 lxc
 lxc-templates
 lxc-docker-0.6.3
 lxc-docker
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@dev:/#
4

2 に答える 2

9

ここには 2 つの明確な問題があります。

  1. linux-image-extra-$(uname -r)パッケージがありません。

    これは、Docker インストール スクリプトが、カーネルを実行している場合、たとえば3.8.0-30、パッケージからインストールされ、余分なファイル (Docker の実行に必要な AUFS モジュールを含む) を含むlinux-image-3.8.0-30パッケージが存在するはずであるという大胆な仮定を行うためです。linux-image-extra-3.8.0-30ストック Ubuntu カーネルではないカーネルを実行している場合、この仮定は誤りであり、linux-image-extra-...パッケージは存在せず、スクリプトは惨めに失敗します。

    ただし、カーネルで AUFS がサポートされていることがわかっている場合 (または、カーネルの AUFS モジュールが何らかの方法でインストールされている場合) は、この手順を安全にスキップできます。

    確かに、インストール スクリプトは環境についてもう少し調査し、-extra-意味がある場合にのみこのパッケージのインストールを試みる必要があります。

  2. lxcOpenVZ コンテナー内にパッケージをインストールできません。

    パッケージのpostinstallスクリプトは、ブリッジをセットアップしようとするサービスを開始しようとします。これをテストするための OpenVZ 環境はここにはありませんが、OpenVZ 環境内でブリッジを作成することはできないと思います。そのため、サービスの開始に失敗し、スクリプトは失敗を報告し、パッケージを「インストール済み」として記録できず、依存関係が正しくインストールされていない場合、Docker パッケージ ( ) はインストールを希望しません。lxclxc-netlxcbr0postinstalllxclxc-docker

    この問題は、サービスが開始されないようにすることで回避できます。たとえば、次のようにします。

    echo exit 101 | sudo tee /usr/sbin/policy-rc.d
    sudo chmod +x /usr/sbin/policy-rc.d
    

    ただし、OpenVZ 内でコンテナーを実行できないため、OpenVZ 内で Docker を実行できないことはほぼ確実です。繰り返しますが、テストする OpenVZ 環境はありません。しかし、それがうまくいったとしたら、私は非常に驚くでしょう。

OpenVZ 内ではなく、より新しいカーネル (3.8 など) で Docker を実行することを強くお勧めします。

ただし、どうしても OpenVZ 内で Docker を実行する必要がある場合は、実行する方法があります。しかし、それは非常にハックです。パフォーマンスが低下し、副作用が発生する可能性があります。とにかく試してみたい場合は、Sekexeを確認してください。ユーザーモード Linux カーネル内で任意のプロセスを開始できます。Travis CI内で Docker テストを実行するためにそれをうまく使用しました。ただし、それ以外の場合はお勧めしません。

于 2013-10-01T07:30:23.767 に答える
0

私は sekexe で少し遊んでいましたが、jpetazzo に完全に同意します。クールですが、生産用ではありません。代わりに、debootstrap + chrooted jail を使用して、同様の Docker 風のエクスペリエンスを実現し始めました (ただし、もちろん docker ほどクールではありません)。

これを確認することをお勧めします: http://coderofsalvation.github.io/debootstrap-container

私はこれを OpenVZ VPS で使用して、きちんとしたコンテナー内のパッケージ/プロジェクトを分離しています。免責事項: 私は著者です。

于 2014-05-05T18:16:38.987 に答える