2015-12-26 14 views
6

OpenVZ VPSがあり、オペレーティングシステムがCentOS 6です.Dockerをインストールしようとしましたが、Dockerが起動しません。OpenVZ VPSにDockerをインストール

Starting cgconfig service: Error: cannot mount cpuset to /cgroup/cpuset: Invalid argument 
/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mounting failed 
Failed to parse /etc/cgconfig.conf or /etc/cgconfig.d  [FAILED] 
Starting docker:           [ OK ] 
+0

'cgroups'モジュールがロードされていないように見えます。インストールされていない可能性がありますか?しかし、 'docker'はcgroupsのサポートがなくても動作します。 'cgroups 'をインストールして有効にしてください:' sudo yum install libcgroup'と 'sudo service cgconfig start'。 'cgroups'のパスにアクセスできるはずです:' sudo ls -l/cgroup'。ドッカーサービスを再開し、それが動作するかどうかを確認します。 – Boynux

答えて

17

2016年12月に更新されました。@ Alien Life Formの回答を複製せずに詳細を追加しようとしました。

短い答え

ほとんどのケースでドッカーと互換性のない時代遅れのカーネルでOpenVZの6を使用するホスティングOpenVZは。

ドッカーは、OpenVZ 7(3.xカーネルに基づいて、https://openvz.org/Docker_inside_CT_vz7を参照)またはカーネルバージョン042stab105.4以上を持つOpenVZ 6(https://openvz.org/Docker_inside_CTを参照)でのみサポートされます。

長い答え:対照群と名前空間:

ドッカーが動作するために、Linuxカーネルの2つの機能が必要です。したがって、これらの機能を備えたカーネルが必要です。

OpenVZでは、カーネルを制御することはできず、ホスティング会社だけが行います。ほとんどのホスティング会社は、協力してカーネルを更新しないので、カーネルが互換性がなくなると、あなたは一般的に運が悪くなります。

OpenVZ 7はDockerをサポートするカーネルをベースにしていますが、OpenVZ 7のホスティングはまだ見ていません.KVMは、市場に参入する新しい低コストプロバイダにとって最も普及した仮想化のようです。

OpenVZ 6は古いプロバイダでよく使用され、2.6カーネル(Dockerとは一般的に互換性がありません)に基づいています。しかしOpenVZカーネルは普通の2.6カーネルではありませんが、3.xカーネルからバックポートされた機能はほとんどありません。実際、カーネル042stab105.4とそれ以降は、Dockerが公式のOpenVZ wiki(@Alien Life Formの答えを参照)に従って必要とする機能をサポートしています。

テキストは以下のみuname -aは、以降のカーネル042stab105.4かを示し6.

場合はOpenVZのバージョンに適用されます - あなたが必要な特殊なファイルシステムを実装するためのいくつかの調整とドッカーを使用することができます。

OpenVZとの互換性がないため、古いもので会社が共同作業をしたい場合は、メインラインカーネルをインストールすることはできません。彼らはhttps://openvz.org/Download/kernelのOpenVZパッチを持つ特別なカーネルをインストールする必要があります。好ましくは最新の安定版(書面の時点では042stab120.11)ですが、少なくとも042stab105.4です。これと比較すると、私が見たOpenVZホストはすべて2.6.32-042stab075.2のようなものを持っています。これはDockerと互換性がないだけでなく、脆弱です。したがって、脆弱性の議論を使ってサポートをアップグレードすることを試みることができます:)

XenやKVMなどの別の仮想化テクノロジーを使用してOpenVZからホスティングに移行することは、必ずしも可能ではありません。ただし、メインラインのCentOS 6カーネルには必要な機能がないため、CentOS 6は非在庫パッチ付きカーネルを使用している場合にのみDockerと互換性があります。 CentOS 7への移行を検討することもできます。

+0

明らかにdocker 1.10はこの2.6.32カーネルで動作した最後のバージョンでした。 その後のドッカーのリリースでは、次のようなエラーが表示されます。 Linuxカーネルのバージョン2.6.32-042stab123.2は、ドッカーの実行ではサポートされていません。カーネルを3.10.0以上にアップグレードしてください。 –

+0

詳細な回答ありがとうございます!それは私をたくさん助けました。 – Dmitriy

1

旧スレッド - しかし、解決策は、それがこのリンクでのDebian喘鳴であるかのようにCentOS6を処理することによって見つけることができます:https://openvz.org/Docker_inside_CT

基本的に/etc/init.d/dockerには、実行します。

prestart() { 
# ALF service cgconfig status > /dev/null 
# ALF 
# ALF if [[ $? != 0 ]]; then 
# ALF  service cgconfig start 
# ALF fi 
mount -t tmpfs tmpfs /sys/fs/cgroup 
mkdir /sys/fs/cgroup/freezer,devices 
mount -t cgroup cgroup /sys/fs/cgroup/freezer,devices -o freezer,devices 
mkdir /sys/fs/cgroup/cpu,cpuacct,cpuset 
mount -t cgroup cgroup /sys/fs/cgroup/cpu,cpuacct,cpuset/ -o cpu,cpuacct,cpuset 

} 
関連する問題