Skip to Content
ドキュメント開発仮想マシンとコンテナ

仮想マシンとコンテナ

この記事では、Ubuntu 26.04 で利用可能なさまざまな仮想化およびシステム コンテナー テクノロジについて説明します。

ハードウェア仮想化サポートを確認する

開始する前に、CPU がハードウェア仮想化をサポートしていることを確認してください。

# Check for virtualization support egrep -c '(vmx|svm)' /proc/cpuinfo

0 より大きい結果はサポートを示します。 cpu-checker を使用することもできます。

sudo apt install cpu-checker -y kvm-ok

KVM/QEMU

KVM (カーネルベースの仮想マシン) は、Linux カーネルに組み込まれた仮想化ソリューションです。 QEMU と組み合わせると、完全な仮想化機能が提供されます。

KVM と関連ツールをインストールする

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager -y

現在のユーザーを必要なグループに追加します。

sudo usermod -aG libvirt $USER sudo usermod -aG kvm $USER

グループの変更を有効にするには、ログアウトしてから再度ログインします。

インストールの検証

# Check libvirt service status sudo systemctl status libvirtd # Verify connection virsh list --all

virt-manager の使用 (GUI)

virt-manager

virt-manager は、仮想マシンを作成および管理するための直感的なグラフィカル インターフェイスを提供します。

コマンドライン経由でVMを作成する

# Create a disk image qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-vm.qcow2 40G # Install a VM from ISO virt-install \ --name ubuntu-vm \ --ram 4096 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=40 \ --os-variant ubuntu26.04 \ --network bridge=virbr0 \ --graphics vnc \ --cdrom /path/to/ubuntu-26.04-desktop-amd64.iso
Note

osinfo-query os | grep ubuntu を実行して、ローカル osinfo-db に ubuntu26.04 が含まれているかどうかを確認します。そうでない場合は、osinfo-db をアップグレードするか、最も近い ubuntu24.04 にフォールバックするか、--osinfo detect=on,require=off を使用して virt-install が自動検出できるようにします。

一般的な virsh コマンド

# List all VMs virsh list --all # Start a VM virsh start ubuntu-vm # Shut down a VM virsh shutdown ubuntu-vm # Force stop virsh destroy ubuntu-vm # Suspend and resume virsh suspend ubuntu-vm virsh resume ubuntu-vm # Create snapshots virsh snapshot-create-as ubuntu-vm --name "clean-install" virsh snapshot-list ubuntu-vm virsh snapshot-revert ubuntu-vm --snapshotname "clean-install" # Delete a VM virsh undefine ubuntu-vm --remove-all-storage

QEMU を直接使用する

libvirt を使用せず、QEMU を直接使用します。

# Create a disk qemu-img create -f qcow2 disk.qcow2 20G # Start a VM qemu-system-x86_64 \ -enable-kvm \ -m 4G \ -smp 2 \ -hda disk.qcow2 \ -cdrom ubuntu.iso \ -boot d \ -net nic -net user,hostfwd=tcp::2222-:22

バーチャルボックス

VirtualBox は、クリーンなグラフィカル インターフェイスを備えた Oracle のオープンソース仮想化ソフトウェアです。

VirtualBoxをインストールする

# Method 1: Install from Ubuntu repository sudo apt install virtualbox -y # Method 2: Install from Oracle's official repository (newer version) wget -qO- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor -o /etc/apt/keyrings/oracle-virtualbox.gpg echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/oracle-virtualbox.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list sudo apt update # Install VirtualBox (run apt-cache search virtualbox to confirm the current # available package name, e.g. virtualbox-7.1 or a newer version) sudo apt install virtualbox-7.1 -y

拡張パックをインストールする

拡張パックは、USB 3.0、RDP リモート デスクトップ、およびその他の機能を提供します。

# Install the extension pack after downloading the matching version sudo VBoxManage extpack install Oracle_VirtualBox_Extension_Pack-*.vbox-extpack

VBoxManage コマンドライン

# List VMs VBoxManage list vms # Start a VM (headless mode) VBoxManage startvm "vm-name" --type headless # Shut down a VM VBoxManage controlvm "vm-name" acpipowerbutton # Create a snapshot VBoxManage snapshot "vm-name" take "snapshot-name"

LXD / LXC システムコンテナ

LXC は Linux コンテナー テクノロジーであり、LXD はその管理デーモンであり、VM のようなエクスペリエンスを提供しますが、より軽量です。

LXD をインストールする

sudo snap install lxd

LXDを初期化します

lxd init --minimal

または、対話型構成を使用してその他のオプションを選択することもできます。

lxd init

LXD 基本操作

# Launch an Ubuntu container lxc launch ubuntu:26.04 mycontainer # Launch a VM (yes, LXD supports VMs too) lxc launch ubuntu:26.04 myvm --vm # List instances lxc list # Enter a container lxc exec mycontainer -- bash # Push and pull files lxc file push local-file.txt mycontainer/root/ lxc file pull mycontainer/root/file.txt . # Stop and delete lxc stop mycontainer lxc delete mycontainer # Create snapshots lxc snapshot mycontainer snap0 lxc restore mycontainer snap0

LXD プロファイル構成

# View default profile lxc profile show default # Create a custom profile lxc profile create dev-profile lxc profile set dev-profile limits.cpu 4 lxc profile set dev-profile limits.memory 8GB # Launch a container with a custom profile lxc launch ubuntu:26.04 devbox --profile dev-profile

きぬたぬき

Incus は、Linux Containers コミュニティによって維持されている LXD のコミュニティ フォークです。同様の機能がありますが、独自に開発されています。

Incus をインストールする

# Add the Zabbly repository (officially recommended for Incus) curl -fsSL https://pkgs.zabbly.com/key.asc | sudo gpg --dearmor -o /etc/apt/keyrings/zabbly.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/zabbly.gpg] https://pkgs.zabbly.com/incus/stable $(. /etc/os-release && echo "$VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/zabbly-incus-stable.list sudo apt update sudo apt install incus -y

初期化して使用する

# Initialize sudo incus admin init --minimal # Add user to the incus-admin group sudo usermod -aG incus-admin $USER newgrp incus-admin # Usage is similar to LXD incus launch images:ubuntu/26.04 mycontainer incus list incus exec mycontainer -- bash incus stop mycontainer incus delete mycontainer

LXD から Incus への移行

sudo incus admin migrate-lxd

技術比較

特徴KVM/QEMUバーチャルボックスLXD/インカス
仮想化の種類完全仮想化完全仮想化システムコンテナ/VM
パフォーマンスネイティブに近い良いネイティブに近い
分離強い強い中 (コンテナ) / 強 (VM)
リソースの使用量中くらいより高い低(コンテナ)
ユースケースサーバー、本番環境デスクトップの開発/テスト開発環境、軽量分離

実稼働サーバーには KVM、デスクトップ ユーザーには VirtualBox、開発分離環境には LXD または Incus など、ユース ケースに基づいて適切な仮想化アプローチを選択してください。