最近、新しいサーバー(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/
しかし、これは役に立たなかったようです。私は他に何を試すことができるのか分かりません。
動作しなかった理由は、ホスティングプロバイダー(SoYouStart/OVH)によってインストールされたUbuntuビルドで提供されたカーネルであることが判明しました。このカーネルでは、LXCに必要な機能を含め、有効化される機能が少なくなっています。 Generic Linuxカーネルをインストールしましたが、grubを正しく更新せず、有効にしました。
汎用カーネルを選択し、grubを更新して再起動する手順を実行した後、LXCは期待どおりに機能しました。同様の状況にある人の助けになることを願っています。
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
を再度実行してこの変更をキャンセルしてください。