web-dev-qa-db-ja.com

LXCは、新しい特権のないコンテナを作成するときにエラーを返します

最近、新しいサーバー(Ubuntu 14.04、専用、仮想ではない)に移行し、LXC 1.1.2をインストールしました。以前のサーバーで問題なくLXCをセットアップしましたが、新しいサーバーでは、新しい特権のないコンテナーの作成に関する問題が常に発生しています(また、移行されたコンテナーを開始できません)。新しく作成したユーザーアカウントでは、一貫して次のエラーが発生します。

unshare: Operation not permitted
read pipe: Permission denied
lxc-create: lxccontainer.c: do_create_container_dir: 778 Failed to chown container dir
lxc-create: lxc_create.c: main: 274 Error creating container container-template-ubuntu-14.04-7

ここでいくつかの指示に従いました: https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/ そして/proc/sys/kernel/しかし、これは役に立たなかったようです。私は他に何を試すことができるのか分かりません。

2
Kevin Teljeur

動作しなかった理由は、ホスティングプロバイダー(SoYouStart/OVH)によってインストールされたUbuntuビルドで提供されたカーネルであることが判明しました。このカーネルでは、LXCに必要な機能を含め、有効化される機能が少なくなっています。 Generic Linuxカーネルをインストールしましたが、grubを正しく更新せず、有効にしました。

汎用カーネルを選択し、grubを更新して再起動する手順を実行した後、LXCは期待どおりに機能しました。同様の状況にある人の助けになることを願っています。

2
Kevin Teljeur

Debian 9でも同じ問題があり、このスレッドは常にduckduckgoの結果の上にあったので、askubuntuでDebianの問題に関する解決策を提供するために謝罪しますが、Ubuntuユーザーにも役立つかもしれません:

LXC(apt install lxc)をインストールしたら、このコマンドの結果を確認してください:

# cat /proc/sys/kernel/unprivileged_userns_clone

0の場合、これを行う必要がある場合があります。

# echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/80-lxc-userns.conf
# sysctl --system

Debian wikiのLXCページ でこの「トリック」を見ましたが、うまくいきました。

注:問題が解決しない場合は、/etc/sysctl.d/80-lxc-userns.confを削除し、sysctl --systemを再度実行してこの変更をキャンセルしてください。