CentOS Stream 9

LXC : インストール2026/04/17

 

コンテナー型仮想化ソフトウェア LXC (Linux Containers) をインストールします。

ホストとカーネルを共有する準仮想化のため、Windows のような別種の OS は利用できません。

[1] LXC をインストールします。
# EPEL からインストール

[root@dlp ~]#
dnf --enablerepo=epel -y install lxc lxc-templates
[2] コンテナー用のブリッジネットワークを構成しておきます。
[enp1s0] のインターフェース名の部分は環境によって異なるため、自身の環境に読み替えてください。
# ブリッジ [lxcbr0] を追加

[root@dlp ~]#
nmcli connection add type bridge autoconnect yes con-name lxcbr0 ifname lxcbr0

Connection 'br0' (ced3dbca-7cc3-41bd-a42c-86857ecd1f7f) successfully added.
# [lxcbr0] の IP アドレス設定

[root@dlp ~]#
nmcli connection modify lxcbr0 ipv4.addresses 10.0.0.30/24 ipv4.method manual
# [lxcbr0] の ゲートウェイ設定

[root@dlp ~]#
nmcli connection modify lxcbr0 ipv4.gateway 10.0.0.1
# [lxcbr0] の DNS 設定

[root@dlp ~]#
nmcli connection modify lxcbr0 ipv4.dns 10.0.0.10
# [lxcbr0] の DNS サーチベース 設定

[root@dlp ~]#
nmcli connection modify lxcbr0 ipv4.dns-search srv.world
# 既存のインターフェースは一旦削除

[root@dlp ~]#
nmcli connection del enp1s0
# [lxcbr0] のメンバーとして再度追加

[root@dlp ~]#
nmcli connection add type bridge-slave autoconnect yes con-name enp1s0 ifname enp1s0 master lxcbr0
[root@dlp ~]#
reboot
[root@dlp ~]#
ip addr show lxcbr0

4: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:7e:d7:d1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.30/24 brd 10.0.0.255 scope global noprefixroute lxcbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::1b1e:cfb7:f4d7:aff6/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[3] 例として、CentOS コンテナーを作成します。
CentOS 以外にも様々な OS テンプレートが提供されており、下記 URL で確認できます。
⇒ https://images.linuxcontainers.org/
# [centos9] コンテナー作成

[root@dlp ~]#
lxc-create --name centos9 --template download -- --dist centos --release 10-Stream --arch amd64

Downloading the image index
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs

---
You just created a Centos 10-Stream x86_64 (20260416_07:08) container.

# コンテナーを一覧表示

[root@dlp ~]#
lxc-ls

centos9

# コンテナー情報を表示

[root@dlp ~]#
lxc-info -n centos9

Name:           centos9
State:          STOPPED

# コンテナーをデーモンで起動

[root@dlp ~]#
lxc-start -n centos9 -d

[root@dlp ~]#
lxc-info -n centos9

Name:           centos9
State:          RUNNING
PID:            2416
Link:           vethTQDwGw
 TX bytes:      1.43 KiB
 RX bytes:      852 bytes
 Total bytes:   2.27 KiB

# コンテナーに接続

[root@dlp ~]#
lxc-attach -n centos9

[root@centos9 ~]#     # コンテナーのシェルに接続した

# ホストのコンソールに戻るには [Ctrl + d] キー

[root@centos9 ~]#
exit
[root@dlp ~]#
# コンテナーを停止するには以下

[root@dlp ~]#
lxc-stop -n centos9
[4] その他の基本的な操作方法です。
# 作成したコンテナーは以下の場所に保存されている

[root@dlp ~]#
ll /var/lib/lxc

total 0
drwxrwx---. 3 root root 34 Apr 17 08:45 centos9

# 例として [ubuntu2404] コンテナー作成

[root@dlp ~]#
lxc-create --name ubuntu2404 --template download -- --dist ubuntu --release noble --arch amd64

[root@dlp ~]#
lxc-start -n ubuntu2404 -d

# 特定のコマンドを実行して結果をホストのコンソールに表示

[root@dlp ~]#
lxc-attach -n ubuntu2404 -- /bin/echo "Welcome to the LXC World!"

Welcome to the LXC World!
# コンテナーを削除する

[root@dlp ~]#
lxc-stop -n ubuntu2404

[root@dlp ~]#
lxc-destroy -n ubuntu2404

[root@dlp ~]#
lxc-ls

centos9
# コンテナーのスナップショットを取得

[root@dlp ~]#
lxc-snapshot -n centos9

lxc-snapshot: centos9: ../src/lxc/lxccontainer.c: do_lxcapi_snapshot: 4129 Snapshot of directory-backed container requested
lxc-snapshot: centos9: ../src/lxc/lxccontainer.c: do_lxcapi_snapshot: 4130 Making a copy-clone.  If you do want snapshots, then
lxc-snapshot: centos9: ../src/lxc/lxccontainer.c: do_lxcapi_snapshot: 4131 please create overlay clone first, snapshot that
lxc-snapshot: centos9: ../src/lxc/lxccontainer.c: do_lxcapi_snapshot: 4132 and keep the original container pristine

[root@dlp ~]#
lxc-snapshot -n centos9 --list

snap0 (/var/lib/lxc/centos9/snaps) 2026:04:17 09:09:52
# スナップショットからのリストア

[root@dlp ~]#
lxc-snapshot -n centos9 -r snap0
関連コンテンツ