LoginSignup
5
4

More than 5 years have passed since last update.

LXD上のCentOS7にhttpdをインストールするには(特権コンテナを利用する)

Last updated at Posted at 2016-02-15

はじめに

LXD上のCentOS7環境(コンテナ)にhttpd(Apache)をyumでインストールしようとすると、次のようなエラーが出てインストールに失敗します。

Installing : httpd-2.4.6-40.el7.centos.x86_64                                                                                                                                                                          6/6
Error unpacking rpm package httpd-2.4.6-40.el7.centos.x86_64
error: unpacking of archive failed on file /usr/sbin/suexec: cpio: cap_set_file
error: httpd-2.4.6-40.el7.centos.x86_64: install failed

これは、非特権コンテナであるため発生しているエラーとなります。

LXDでコンテナを作成すると通常は非特権コンテナとなりますが、CentOS7のように非特権コンテナで正常に動作しない、パッケージのインストールに失敗する場合は、特権コンテナを作成することで解決出来る場合があります。

LXC上のCentOS7にhttpdをインストールするまでの手順

まず最初に、LXDをインストールします。

https://linuxcontainers.org/ja/lxd/getting-started-cli/ より引用

# add-apt-repository ppa:ubuntu-lxc/lxd-stable
# apt-get update
# apt-get dist-upgrade
# apt-get install lxd

次に、
http://images.linuxcontainers.org/images/centos/7/amd64/default/
より、最新のlxd.tar.xz ファイル(CentOS7イメージ)をダウンロードします。

lxd.tar.xzをダウンロード後、イメージをインポートします。

# lxc image import lxd.tar.xz --alias centos/7

インポート後、CentOS7コンテナを構築出来るようになります。

rootユーザーで次のコマンドを実行すると、特権コンテナのCentOS7を作成することができます。

# lxc launch centos/7 test01 -c security.privileged=true

コンテナ作成後、次のコマンドを実行して作成したコンテナのシェルに入ります。

# lxc exec test01 /bin/bash

コンテナのシェルに入れたことを確認したら、yumを実行します。

[root@test01 ~]# yum install -y httpd

エラーにならずにyumの実行完了後に

Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos

と表示されれば、httpdが正常にインストールされています。

余談

LXDに関する情報は国内外まだまだ乏しいですね。今回の場合も、ググるとDockerに関するものばかりで困りました・・・(Dockerの場合はaufsのバグ?絡みで同様の問題が発生していたようですね)。

私の場合はDockerよりもLXDの方がしっくりくるというか、Immutable InfrastructureをしたいわけではなくこれまでKVMで構築していたVMのような使い方をしたいために、VMの代替(軽量なLinux仮想環境)としてLXDを使っています。DockerはImmutable Infrastructureのための道具としては良いのですが、initプロセスのような機能が無いので、VMの代替としては使いづらいんですよね。

LXDを使い始めたきっかけは、これまでFreeBSD jailを使っていたので、Linuxにおける同様の使い勝手のものを探していたらLXDがあったとそんな感じです。LXDは、FreeBSDのports installのコンパイルで待たされるようなものが無いので、とても気軽に使えて良いですね。(pkgngはまだ枯れていないのと提供されるパッケージがportsと比べて古かったりするので、やっぱりportsを使ってしまう・・・)

欠点としては、Ubuntuでしか使えないのと、若干動きが怪しいこと(コンテナのstopやrestartが出来ない場合があったり)、まだまだ(これからも?)マイナーであるということでしょうか。

参考

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4