Download icon

News

LXC 2.1 リリースのお知らせ 2017 年 9 月 5 日

LXC チームは LXC 2.1 のリリースをお知らせすることを誇りに思います。 このリリースには LXC 2.0 以降に追加されたたくさんの機能が含まれています。

このリリースは LTS リリースではないことに注意してください。LTS リリースではありませんので、LXC 2.1 のサポートは 1 年間のみです。長い期間のサポートが必要なプロダクション環境では 2021 年 6 月までサポートされる LXC 2.0 を使い続けてください。

新機能

リソース制限のサポート

cgroupを使った制限を指定するのと同じように、コンテナの設定ファイル内で、制限名に "lxc.prlimit." というプレフィックスをつけて、カーネルが対応しているすべてのリソースの制限を設定できます。例えば、プロセス数の制限を設定し、同時に nice 値を指定するには、コンテナの設定ファイルで次のように指定します:

lxc.prlimit.nproc = unlimited
lxc.prlimit.nice = 4

非特権での Open vSwitch ネットワークのサポート

非特権ユーザで次のように openvswitch ネットワークを定義できるようになりました:

lxc.net.0.type = veth
lxc.net.0.link = ovsbr0
lxc.net.0.flags = up
lxc.net.0.name = eth0

LXC 2.1 は、シャットダウン時に openvswitch からホスト側の veth デバイスを適切に削除する処理を行います。

新たな設定項目 lxc.cgroup.dir

lxc.cgroup.dir を設定することで、コンテナ用の cgroup を作成する親となる cgroup 名を指定できるようになりました。lxc.cgroup.dir はシステムワイドの設定である lxc.cgroup.pattern を上書きします。

例えば、lxc.uts.name = c1 と設定されたコンテナに lxc.cgroup.dir = mycontainers と設定すると、LXC は cgroup 階層内のすべてのコントローラで、mycontainers/c1 という cgroup を作ります。

hybrid cgroup レイアウトのサポート

cgroup v2 が導入されてから、一部の init システムでは cgroup v1 のコントローラごとの階層と、空の cgroup v2 階層を同時に使える hybrid モードが使えるようになりました。hybrid モードを使うシステムは、通常は次と同じような cgroup レイアウトになります:

  /sys/fs/cgroup/blkio
  /sys/fs/cgroup/devices
  /sys/fs/cgroup/memory
  /sys/fs/cgroup/unified

マウントポイント /sys/fs/cgroup/unified は、通常は cgroup v2 階層の存在を示します。これは findmnt | grep cgroup2 が一致する行を返すかどうかをテストすることで確認できます。LXC 2.1 はこの hybrid モードをサポートします。

コンテナが割り当てることができる pty の数を制限する

lxc.pty.max を設定すると、LXC は、使える pty の数に指定した制限を設定した上で、コンテナの devpts をマウントします。例えば、lxc.pty.max = 10 と設定すると、コンテナは 10 個の pty だけしか割り当てられません。デフォルト値は 1024 です。

bool lxc_config_item_is_supported(const char *key) API 拡張

この関数は、特定の設定項目がライブラリでサポートされているかどうかをユーザが問い合わせるための関数です。この関数は、標準的な liblxc ライブラリや、新しい設定項目がバックポートされた liblxc よりもはるかに少ない設定オプションを持つ liblxc のバージョンを実行する組み込みユーザに特に役に立つでしょう。

新しいログ API 拡張

struct lxc_log {
    const char *name;
    const char *lxcpath;
    const char *file;
    const char *level;
    const char *prefix;
    bool quiet;
};

/*!
 *\brief Initialize the log
 *
 *\param log lxc log configuration.
 */
int lxc_log_init(struct lxc_log *log);

/*!
 * \brief Close log file.
 */
void lxc_log_close(void);

上記の構造体や関数は、ユーザが LXC のロギングを初期化できるようにするためのものです。liblxc の API を直接使うユーザには役に立つでしょう。

lxc-monitord が廃止予定に

LXC 2.1 から lxc-monitord バイナリは廃止予定になりました。デーモン化されたコンテナの起動には lxc-monitord はもう不要です。代わりに、LXC 2.1 では abstract unix ドメインソケットペアを使った実装に切り替えました。これは、LXD のような高度にスレッド化されたコンテナの起動において、起動するプロセスがひとつ少なくなるという利点があります。

また、重い負荷で行った新しい実装のテストで、このソリューションがより堅牢で信頼性が高いことがわかりました。

lxc-copytmpfs 上にスナップショットを作ります

-e オプションを付けて起動した一時的 (ephemeral) なコンテナは tmpfs 上に置かれます。 tmpfs 上にコンテナを置きながらデータの保存は要求できません。そして、バッキングストアとして overlay か aufs を使わなければならず、オリジナルのコンテナは directory でなくてはいけません。

overlay もしくは aufs ファイルシステムを使った一時的なスナップショットのために、ユーザの要求に応じて新しい tmpfs がコンテナディレクトリ上にマウントされます。これは最も簡単なオプションです。それ以外の場合は、現在の overlay と aufs スナップショットのマウントレイアウトを変更する必要があります。標準では overlay と aufs のスナップショットクローンのレイアウトは次のようになります:

        /var/lib/lxc/CLONE_SNAPSHOT/delta0      <-- upperdir
        /var/lib/lxc/CLONE_SNAPSHOT/rootfs
        /var/lib/lxc/CLONE_SNAPSHOT/olwork
        /var/lib/lxc/CLONE_SNAPSHOT/olwork/work <-- workdir

with the lowerdir being

        /var/lib/lxc/CLONE_PARENT/rootfs

upperdir と workdir がコンテナディレクトリ以下の共通のサブディレクトリ内に置かれていないということは、新しい tmpfs を単純に upperdir と workdir の下にマウントできないということになります。なぜなら overlayfs はこのふたつが同じファイルシステム上にあることを期待しているからです。

コンテナディレクトリ上に新しい tmpfs をマウントするので、upperdir (現在はデフォルトで "delta0" という名前) 内にクローン中に作成される、更新された /etc/hostname ファイルが隠されてしまいます。

したがって、ユーザが古い名前をクローンで保存しないように要求した場合は、このファイルを tmpfs 上に再作成します。 これで、通常のクローン処理での正確な動作をリストアするために必要なことすべてのはずです。 注: もしコンテナを再起動した場合、すべての変更は失われます。リブートごとに rootfs が再度マウントされますので、これを防ぐのは容易ではありません。

設定項目名の変更

コンテナの設定がより一貫性を持って行えるように、多数の設定項目の名前が変わりました。 LXC 2.1 では、すべての設定項目が "." で分けられた適切なネームスペースから構成されるサブキーを持つようになりました。

ネットワーク設定

ネットワークの設定で、新しいプレフィックスを導入しました。いくつかの項目はリネームされました。 LXC 2.1 からは、(以前の) "lxc.network" を使ったネットワークの設定項目は廃止予定という扱いになります。 これは "lxc.net" プレフィックスを使った設定に置き換えられます。 さらにインデックスを使わないネットワーク定義は廃止予定とマークされます。次のようなネットワーク設定は legacy なネットワーク設定であるとみなされます:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxcbr0
lxc.network.name = wlp2s0

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxcbr0
lxc.network.name = eno1

上の設定は 2 つの異なったネットワークを定義しています。LXC 2.1 以降は、次のように置き換えてください:

lxc.net.0.type = veth
lxc.net.0.flags = up
lxc.net.0.link = lxcbr0
lxc.net.0.name = wlp2s0

lxc.net.1.type = veth
lxc.net.1.flags = up
lxc.net.1.link = lxcbr0
lxc.net.1.name = eno1

この方法だけで定義を行うと、定義する順序には依存しない、一貫性のある定義になる利点があります。 つまり、次のような 2 つのネットワークの設定と同等となります:

lxc.net.1.link = lxcbr0
lxc.net.0.name = wlp2s0
lxc.net.0.type = veth

lxc.net.1.type = veth
lxc.net.1.flags = up
lxc.net.0.flags = up
lxc.net.0.link = lxcbr0
lxc.net.1.name = eno1

同じインデックスの同じ設定が複数ある場合は、LXC は最後の設定を採用することに注意が必要です。これはこれまでのバージョンの LXC と同じ動作です。例えば:

lxc.net.2.link = lxcbr0
lxc.net.2.link = lxdbr0
lxc.net.2.link = br0
lxc.net.2.link = virbr0

上のような設定では、LXC は、最後の設定が virbr0 に設定されているため、ネットワークは virbr0 に関連付けられます。

変更された設定項目一覧

次の表は左の列に以前の設定項目 ("Legacy Key") を、右の列に変更後の設定項目 ("New Key") を一覧したものです。完全に削除された項目は、"New Key" に "-" と表記し、"Comments" 欄に "removed" と書いています。

Legacy Key                           | New Key                       | Comments
-------------------------------------|-------------------------------|---------
lxc.aa_profile                       | lxc.apparmor.profile          |
lxc.aa_allow_incomplete              | lxc.apparmor.allow_incomplete |
lxc.console                          | lxc.console.path              |
lxc.devttydir                        | lxc.tty.dir                   |
lxc.haltsignal                       | lxc.signal.halt               |
lxc.id_map                           | lxc.idmap                     |
lxc.init_cmd                         | lxc.init.cmd                  |
lxc.init_gid                         | lxc.init.gid                  |
lxc.init_uid                         | lxc.init.uid                  |
lxc.kmsg                             | -                             | removed
lxc.limit                            | lxc.prlimit                   |
lxc.logfile                          | lxc.log.file                  |
lxc.loglevel                         | lxc.log.level                 |
lxc.mount                            | lxc.mount.fstab               |
lxc.network                          | lxc.net                       |
lxc.network.                         | lxc.net.[i].                  |
lxc.network.flags                    | lxc.net.[i].flags             |
lxc.network.hwaddr                   | lxc.net.[i].hwaddr            |
lxc.network.ipv4                     | lxc.net.[i].ipv4.address      |
lxc.network.ipv4.gateway             | lxc.net.[i].ipv4.gateway      |
lxc.network.ipv6                     | lxc.net.[i].ipv6.address      |
lxc.network.ipv6.gateway             | lxc.net.[i].ipv6.gateway      |
lxc.network.link                     | lxc.net.[i].link              |
lxc.network.macvlan.mode             | lxc.net.[i].macvlan.mode      |
lxc.network.mtu                      | lxc.net.[i].mtu               |
lxc.network.name                     | lxc.net.[i].name              |
lxc.network.script.down              | lxc.net.[i].script.down       |
lxc.network.script.up                | lxc.net.[i].script.up         |
lxc.network.type                     | lxc.net.[i].type              |
lxc.network.veth.pair                | lxc.net.[i].veth.pair         |
lxc.network.vlan.id                  | lxc.net.[i].vlan.id           |
lxc.pivotdir                         | -                             | removed
lxc.pts                              | lxc.pty.max                   |
lxc.rebootsignal                     | lxc.signal.reboot             |
lxc.rootfs                           | lxc.rootfs.path               |
lxc.se_context                       | lxc.selinux.context           |
lxc.seccomp                          | lxc.seccomp.profile           |
lxc.stopsignal                       | lxc.signal.stop               |
lxc.syslog                           | lxc.log.syslog                |
lxc.tty                              | lxc.tty.max                   |
lxc.utsname                          | lxc.uts.name                  |

lxc-update-config スクリプト

LXC 2.1 には新しく lxc-update-config スクリプトが付属します。これは、以前の設定項目名を LXC 2.1 で有効な設定にアップグレードするのに使えます。次のように実行します

lxc-update-config -c /path/to/config

このスクリプトは、最初に現在の設定ファイルのバックアップを取得します。 バックアップファイルの名前は `.backup です。 バックアップファイルは、万が一、アップグレードで生成した設定ファイルが LXC 2.1 で使えないのに備えて作成します。 バックアップを生成したあと、スクリプトが以前の設定が新しい設定に置き換えます。

廃止予定の警告

LXC 2.1 は 2.1 より前の設定ファイルとの完全な下位互換性を持っています。 つまり、いかなる廃止予定の設定であっても、コンテナが使えなくなるようにはなりません。しかし、LXC 2.1 は廃止予定の設定があると警告を行います。コンテナの起動時に、LXC 2.1 は 一度だけ 次のような警告メッセージを出力します:

The configuration file contains legacy configuration keys.
Please update your configuration file.

すべてのユーザは、前述の lxc-update-config スクリプトを使って、設定ファイルを更新することをおすすめします。 コンテナでロギングが有効な場合、ログには検出された以前の設定項目に関する警告が含まれます。ログを使えば、手動で設定ファイルを更新するほうが好きなユーザの役に立つでしょう。

Changelog

Downloads

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.1 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチが Github にあります。

LXC 2.0.8 リリースのお知らせ 2017 年 5 月 11 日

このリリースは LXC 2.0 の 7 回目のバグフィックスリリースです。

重要な変更 :

バグ修正 :

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.8 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable-2.0 ブランチが Github にあります。

LXC 1.0.10 リリースのお知らせ 2017 年 5 月 11 日

このリリースは LXC 1.0 の 10 回目のバグフィックスリリースです。

重要な変更:

バグ修正 :

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.0.10 のパッケージをリリースするでしょう。

LXC 開発元として、1.0 ユーザには 2.0 LTS リリースへのアップグレードを強くおすすめします。 1.0 ブランチは 2019 年 6 月までサポートが続きます。しかし現時点では、重大なバグフィックスとセキュリティホール対策のみがバックポートされます。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable-1.0 ブランチが Github にあります。

LXC 2.0.7 リリースのお知らせ 2017 年 1 月 23 日

このリリースは LXC 2.0 の 7 回目のバグフィックスリリースです。

このリリースに含まれる主なバグフィックスは以下です:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.6 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable-2.0 ブランチが Github にあります。

LXC 2.0.6 リリースのお知らせ 2016 年 11 月 23 日

このリリースは LXC 2.0 の 6 回目のバグフィックスリリースです。

重要な変更:

バグ修正 :

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.6 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable-2.0 ブランチが Github にあります。

LXC 1.0.9 リリースのお知らせ 2016 年 11 月 23 日

このリリースは LXC 1.0 の 9 回目のバグフィックスリリースです。

重要な変更:

バグ修正:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.0.9 のパッケージをリリースするでしょう。

1.0 ユーザに対して、LXC開発元は 2.0 LTS リリースへのアップグレードを強くおすすめします。 1.0 ブランチは 2019 年 6 月までサポートが続きます。しかし現時点では、重大なバグフィックスとセキュリティホール対策のみがバックポートされます。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable-1.0 ブランチが Github にあります。

LXC 2.0.5 リリースのお知らせ 2016 年 10 月 5 日

このリリースは LXC 2.0 の 5 回目のバグフィックスリリースです。

このリリースの主なバグフィックスは以下です:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.5 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチが Github にあります。

LXC 1.1 EOL のお知らせ 2016 年 9 月 1 日

LXC 1.1 は EOL となりました。

stable-1.1 ブランチはクローズされ、今後このブランチに対するバグ修正やセキュリティ対策のリリースは行われません。

今でも LXC 1.1 をお使いの場合、なるべく早く 2.0 へアップグレードしてください。

現在、以下のリリースがサポート中です:

LXC 2.0.4 リリースのお知らせ 2016 年 8 月 15 日

このリリースは LXC 2.0 の 4 回目のバグフィックスリリースです。

このリリースの主なバグフィックスは以下です:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.4 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチが Github にあります。

LXC 2.0.3 リリースのお知らせ 2016 年 6 月 28 日

このリリースは LXC 2.0 の 3 回目のバグフィックスリリースです。

LXC 2.0.3 は、LXC 2.0.2 に正しくない AppArmor プロファイルが含まれてしまったので、LXC 2.0.2 リリース直後にリリースしました。

このリリースのバグフィックスは以下です:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.3 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチが Github にあります。

LXC 2.0.2 リリースのお知らせ 2016 年 6 月 28 日

このリリースは LXC 2.0 の 2 回目のバグフィックスリリースです。

LXC 2.0.2 は使用せず、代わりに 2.0.3 を使用してください。2.0.3 では AppArmor に関する不具合を修正しています。

このリリースの主なバグの修正は以下の通りです:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.2 のパッケージをリリースするでしょう。(訳注: 前述のように 2.0.2 の代わりに 2.0.3 を使用してください)

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチが Github にあります。

LXC 2.0.1 リリースのお知らせ 2016 年 5 月 16 日

このリリースは LXC 2.0 に対する最初のバグフィックスリリースです。

このリリースの主なバグの修正は以下の通りです:

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.1 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチが Github にあります。

LXC 2.0.0 リリースのお知らせ 2016 年 4 月 6 日

LXC チームは LXC 2.0 のリリースをお知らせできることをうれしく思います!

ハイライト

このリリースは合計 96 名のコントリビュータからの 720 コミットからなる貢献によってリリースできました。

新しい設定オプション

新機能

挙動の変更

このリリースで、コマンドの中には大きく作り直されたものがあります。 我々は、コマンドラインツールは stable な ABI とはみなしていませんので、ご自身のスクリプトをテストして変更する必要があるかもしれません。 そのスクリプトを、LXC の stable な C API か、言語バインディングのどれかを使って書きなおすのがよりベターでしょう。

廃止予定の警告

"lxc-clone" と "lxc-start-ephemeral" コマンドは、"lxc-copy" に置き換えられ、将来廃止の予定です。 これらのコマンドは --enable-legacy フラグを使ってビルドできますが、使用の際に警告が表示されます。そして、LXC の将来のリリースで削除される予定です。

サポート

これは 2 度目の LXC の長期サポートリリースであり、2021 年 6 月 1 日までサポートされます。 前の長期サポートリリース版である LXC 1.0 も、2019 年 6 月 1 日までサポートされます。 そして、先の stable リリースである LXC 1.1 は 2016 年 9 月 1 日に EOL となります。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 2.0.0 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、master ブランチが Github にあります。

LXC 1.0.8 リリースのお知らせ 2015 年 11 月 9 日

このリリースは LXC 1.0 の 8 回目のバグフィックスリリースです。

重要な変更:

コア:

ドキュメント :

バインディング :

テスト :

設定 :

テンプレート :

コマンド :

これらの stable の修正は 59 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.0.8 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.1.5 リリースのお知らせ 2015 年 11 月 9 日

このリリースは LXC 1.1 の 5 回目のバグフィックスリリースです。

コア:

Init スクリプト:

コマンド :

テンプレート :

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.1.5 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチ (stable-1.1) は Github にあります。

LXC 1.1.4 リリースのお知らせ 2015 年 10 月 6 日

このリリースは LXC 1.1 の 4 回目のバグフィックスリリースです。

重要な変更:

コア:

ツール :

ドキュメント :

テンプレート :

これらの stable の修正は 14 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.1.4 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチ (stable-1.1) は Github にあります。

LXC 1.1.3 リリースのお知らせ 2015 年 8 月 14 日

このリリースは LXC 1.1 の 3 回目のバグフィックスリリースです。

変更点

重要な変更:

コア:

コマンド:

テンプレート:

これらの stable の修正は 31 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.1.3 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチ (stable-1.1) は Github にあります。

LXC 1.1.2 リリースのお知らせ 2015 年 4 月 10 日

このリリースは LXC 1.1 の 2 回目のバグフィックスリリースです。

変更点

これらの stable の修正は 9 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.1.2 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチ (stable-1.1) は Github にあります。

LXC 1.1.1 リリースのお知らせ 2015 年 3 月 16 日

このリリースは LXC 1.1 の初めてのバグフィックスリリースです。

変更点

これらの stable の修正は 13 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.1.1 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチ (stable-1.1) は Github にあります。

LXC 1.1.0 リリースのお知らせ 2015 年 1 月 30 日

LXC チームは LXC 1.1 のリリースを発表しました。

このリリースは 2016 年 1 月か、その時点で LXC の次のリリース (1.2) がなされていない場合は、次のリリースの 2 ヶ月後までサポートされます。

プロダクション環境での長期間のサポートが必要であれば、2019 年 4 月まで安定版リリースとしてサポートされる LXC 1.0 を使い続けることを強くおすすめします。

一方でそこまでの厳密さが不要であれば、LXC 1.1 を cgmanager 0.35 以降、lxcfs 0.5 以降と一緒に使うこともおすすめです。

注目の新機能

LXC 1.1 は CRIU を使ったコンテナのチェックポイント・リストアの機能を新たに導入しました。

コンテナ内の init として systemd の実行のサポートも大きな改良点です。lxcfs と最新の systemd の組み合わせで、特権、非特権の両方のコンテナが動作するでしょう。

init スクリプトが更新されました。これにより LXC を使ういかなるシステムでも、DHCP サーバと DNS サーバ機能を dnsmasq によって提供する lxcbr0 ブリッジがデフォルトとなり、同じように動くようになりました。現時点で systemd、sysvinit、upstart 向けの init スクリプトを提供しています。

このリリースは 84 名の開発者からのコントリビュートによりリリースできました。

新機能

動作の変更点

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションが長期サポートの 1.0 リリースの採用を続ける決定をしない場合は、すぐに LXC 1.1.0 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、master ブランチは Github にあります。

LXC 1.0.7 リリースのお知らせ 2014 年 12 月 5 日

このリリースは LXC 1.0 シリーズの 7 回目のバグフィックスとなるリリースです。

変更点

コア :

バインディング :

Tests:

コマンド :

テンプレート :

ドキュメント :

これらの stable の修正は 27 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.0.7 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.6 リリースのお知らせ 2014 年 9 月 24 日

このリリースは LXC 1.0 シリーズの 6 回目のバグフィックスとなるリリースです。

LXC 1.0 と将来リリースする LXC 1.1 の両方を簡単にサポートするために、このバージョンでは lxc-start に -F オプションを追加しました。(現在の 1.0 で) デフォルトでフォアグラウンドで起動している lxc-start ではこのオプションは不要ですが、この動きは LXC 1.1 で変わる予定です (訳注: バックグラウンドがデフォルトに変わる予定です)。1.0 で -F を導入したのは、アップグレード後も作成したスクリプトが変わらずに動くようにするためです。

変更点

これらの stable の修正は 24 名のコントリビュータによってなされました。

このリリースの tarball は ダウンロードページ から取得できます。 そして、各ディストリビューションがすぐに LXC 1.0.6 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.5 リリースのお知らせ2014 年 7 月 14 日

このリリースは LXC 1.0 シリーズの 5 回目のバグフィックスとなるリリースです。

seccomp profile

通常のバグフィックス以外に、このリリースは重要な変更を一つ含みます。LXC が seccomp サポートでビルドされているシステムでは、コンテナは seccomp プロファイルが有効になります。このプロファイルにより、以下のシステムコールの呼び出しを防ぎます: kexec_load, open_by_handle_at, init_module, finit_module, delete_module.

これは特に、最近よく見られる "shocker" エクスプロイトのような攻撃を防ぐでしょう。

このプロファイルは新しいコンテナや、(共通の設定を lxc.include で読み込んでいる) 新しいスタイルの LXC 設定ファイルを使ったコンテナに適用されます。つまり、現時点では以下のディストリビューションに適用されます: centos, debian, fedora, gentoo, oracle, plamo, ubuntu.

コンテナの設定で "lxc.seccomp =" を追加することにより、このプロファイルの適用をオフにできます。

共通の設定を読み込む仕組みを使っていないコンテナでこの機能をオンにしたい場合は、"lxc.seccomp = /usr/share/lxc/config/common.seccomp" というような設定を、コンテナの設定ファイルに追加します。

変更点

これらの stable の修正は 11 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。 そして、各ディストリビューションがすぐに LXC 1.0.5 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.4 リリースのお知らせ2014 年 6 月 13 日

このリリースは LXC 1.0 シリーズの 4 回目のバグフィックスとなるリリースです。

変更点

これらの stable の修正は 14 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。 そして、各ディストリビューションがすぐに LXC 1.0.4 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.3 リリースのお知らせ2014 年 4 月 8 日

このリリースは LXC 1.0 シリーズの 3 回目のバグフィックスとなるリリースです。

変更点

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。 そして、各ディストリビューションがすぐに LXC 1.0.3 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.2 リリースのお知らせ2014 年 3 月 27 日

このリリースは LXC 1.0 シリーズの 2 回目のバグフィックスとなるリリースです。

変更点

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。 そして、各ディストリビューションがすぐに LXC 1.0.2 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.1 リリースのお知らせ2014 年 3 月 6 日

このリリースは LXC 1.0 シリーズの最初のバグフィックスとなるリリースです。

変更点

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。 そして、各ディストリビューションがすぐに LXC 1.0.1 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは Github にあります。

LXC 1.0.0 リリースのお知らせ2014 年 2 月 20 日

はじめに

LXC チームが LXC 1.0 のリリースをアナウンスできるのは大きな喜びです!

このリリースは、最初の安定版リリースとして位置づけられる重要な節目となるリリースです。コンテナのセキュリティ、ツールの一貫性、ドキュメントの更新、複数の言語に対するバインディングなど、広範囲に渡る改良を提供しています。

60 名を超える人が貢献した、最高の LXC のリリースとなります! この成果は個人のラップトップから、携帯電話、クラウドインスタンスまで多様な分野で目にすることができるでしょう。そして、LXC 1.0 のリリースにより、LXC の利用が更に拡大し、多数の新しいエキサイティングなプロジェクトで利用される事を確信しています。

どのような変更がされ、開発がどのように進んだのかをご覧になりたい場合は、メインリポジトリが Github にあります。

新機能について

LXC 1.0 は 10 ヶ月に及ぶ開発と、1000 を超えるコミットからなり、LXC の構造を広範囲に変更する作業を含みますので、このリリースの変更をまとめるのはほとんど不可能に近いですが、以下にハイライトをいくつかあげます:

LXC の紹介と、1.0 の新機能のいくつかにハイライトを当てたブログ記事のシリーズが こちら で公開されています。

LXC 1.0 は最初の安定版リリースであり、少なくとも Ubuntu 14.04LTS が EOL(end of life) に達する 2019 年 4 月までのメンテナンスが約束されます。5 年を少し超えるサポートですよ!

stable ブランチは別に管理され、必要に応じてバックポートされます。頻繁に 1.0 のバグフィックス版を出す予定なので、各ディストリビューションは単純にそれを使用すれば良く、stable ブランチを自身でフォローする手間を省くことができます。

バグレポートと連絡先

バグレポートは Github に提出するようにおねがいします。Github のアカウントを作成したくない場合は、メールで適切な メーリングリスト に送ってください。 パッチについても同様です。どちらかというと lxc-devel メーリングリストに直接パッチを送ってもらえる方がうれしいですが、Github に直接 pull request を送ってもらっても受け付けます。

LXC 1.0 は、2013 年 9 月にプロジェクトのメンテナが変わってから最初のリリースでもあります。我々は Daniel Lezcano 氏の偉大な業績と、LXC に対する長年に渡る取り組みに感謝の意を表したいと思います。そして彼の新しいプロジェクトの成功を祈ります!

現在のプロジェクトメンテナは Serge HallynStéphane Graber です。