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 ~]#
[root@dlp ~]# reboot
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 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
|
| Sponsored Link |
|
|