はじめに
Proxmox VEでLXCコンテナを操作するための公式CLIツール、pct(Proxmox Container Toolkit)のコマンドを使用頻度別にまとめました。GUIからでも大半の操作はできますが、SSH接続してCLIから素早く操作したい場面や、スクリプトに組み込みたい場面でよく使うコマンドを中心に整理しています。
pctはLXCコンテナ専用のツールです。KVM/QEMUベースの**仮想マシン(VM)**を操作する場合は、同じ体系を持つ別のコマンドqmを使います(qm start・qm shutdown等、コマンド名以外はほぼ同じ感覚で使えます)。
本記事の見方
- 🔥:よく使う。反射的に打てるようにしておきたい
- ⭐:頻度は高くないが、覚えておくと役立つ
- 📝:知っていると便利な発展コマンド
- ⚠️:実行前に内容をよく確認すべき、注意が必要なコマンド
以降の例では<CTID>をコンテナID(例: 106)に置き換えてください。
状態確認
| 頻度 | コマンド | 説明 |
|---|---|---|
| 🔥 | pct list |
全コンテナの一覧(ID・状態・名前)を表示 |
| 🔥 | pct status <CTID> |
指定コンテナの起動状態(running/stopped)を表示 |
| ⭐ | pct config <CTID> |
指定コンテナの設定内容(IPアドレス・メモリ・ネットワーク設定等)を表示 |
| ⭐ | pct df <CTID> |
コンテナ内のディスク使用状況を表示 |
| 📝 | pct cpuunits <CTID> |
CPU優先度(cgroup重み)を表示・変更する |
pct list # 全コンテナをざっと確認
pct config 106 # 106番コンテナのネットワーク設定などを確認
起動・停止・再起動
| 頻度 | コマンド | 説明 |
|---|---|---|
| 🔥 | pct start <CTID> |
コンテナを起動する |
| 🔥 | pct stop <CTID> |
コンテナを強制停止する(電源を抜くような停止) |
| 🔥 | pct shutdown <CTID> |
コンテナに正常終了(グレースフルシャットダウン)を指示する |
| 🔥 | pct reboot <CTID> |
コンテナを再起動する |
| ⭐ | pct suspend <CTID> |
コンテナを一時停止する(状態をメモリに保持) |
| ⭐ | pct resume <CTID> |
一時停止したコンテナを再開する |
pct shutdown 106 # まずは正常終了を試す
pct stop 106 # shutdownで反応がない場合の強制停止
pct stopは「正常終了を待たずに強制的に停止する」操作です。可能な限りpct shutdownを先に試し、反応がない場合の最終手段としてpct stopを使うのが安全です。
コンテナへのアクセス
| 頻度 | コマンド | 説明 |
|---|---|---|
| 🔥 | pct enter <CTID> |
コンテナ内のシェルに直接入る(Proxmoxホストのコンソールから) |
| 🔥 | pct exec <CTID> -- <コマンド> |
コンテナに入らず、ホスト側から直接1コマンドだけ実行する |
| ⭐ | pct console <CTID> |
コンテナのコンソール(TTY)に接続する |
pct enter 106 # 106番コンテナのシェルに入る(抜けるにはexit)
pct exec 106 -- systemctl status nginx # 入らずにコマンドだけ実行
pct exec 106 -- bash -c "apt update && apt install -y curl" # 複数コマンドをまとめて実行
pct execはSSHでコンテナに個別にログインする手間を省き、Proxmoxホストから一括でスクリプト的に操作したい場合に特に便利です。
作成・削除・複製
| 頻度 | コマンド | 説明 |
|---|---|---|
| 🔥 | pct create <CTID> <テンプレート> [オプション] |
新規コンテナを作成する |
| ⚠️ | pct destroy <CTID> |
コンテナを完全に削除する(設定・ディスクとも復元不可) |
| ⭐ | pct clone <CTID> <新CTID> |
既存コンテナを複製して新しいコンテナを作る |
| 📝 | pct restore <CTID> <バックアップファイル> |
バックアップからコンテナを復元する |
| 📝 | pct template <CTID> |
コンテナをテンプレート化する(以降cloneのベースにできる) |
pct create 106 local:vztmpl/debian-13-standard_13.0-1_amd64.tar.zst \
--hostname my-container \
--cores 2 \
--memory 2048 \
--net0 name=eth0,bridge=vmbr1,ip=192.168.100.14/24,gw=192.168.100.1 \
--rootfs local-lvm:8 \
--unprivileged 1 \
--start 1
pct destroyは取り消せません。実行前に本当に削除してよいコンテナIDかをpct listで必ず再確認してください。
設定変更(pct set)
コンテナ停止中・起動中問わず、設定を変更できます(一部の設定は反映に再起動が必要)。
| 頻度 | コマンド | 説明 |
|---|---|---|
| 🔥 | pct set <CTID> --nameserver <IP> |
コンテナのDNSサーバーを明示的に指定する |
| ⭐ | pct set <CTID> --memory <MB> |
メモリ割り当てを変更する |
| ⭐ | pct set <CTID> --cores <数> |
CPUコア数を変更する |
| ⭐ | pct set <CTID> --net0 <設定> |
ネットワーク設定(IP・ブリッジ等)を変更する |
| 📝 | pct set <CTID> --onboot 1 |
ホスト起動時にコンテナも自動起動するよう設定する |
| 📝 | pct set <CTID> --features nesting=1 |
コンテナ内でさらにDocker等を動かすためのネスト機能を有効化する |
pct set 106 --nameserver 192.168.11.96 # DNSサーバーを明示指定
pct reboot 106 # 一部設定の反映には再起動が必要
--nameserverは、コンテナが独自の名前解決先(自宅DNSサーバー等)を使ってほしい場合によく使う設定です。設定変更後は、cat /etc/resolv.conf(コンテナ内)で反映を確認するとよいでしょう。
リサイズ・移動
| 頻度 | コマンド | 説明 |
|---|---|---|
| ⭐ | pct resize <CTID> <ディスク> <サイズ> |
ディスクサイズを拡張する(縮小は不可) |
| 📝 | pct move-volume <CTID> <ボリューム> <移動先ストレージ> |
ディスクを別のストレージに移動する |
| 📝 | pct migrate <CTID> <移動先ノード> |
コンテナを別のProxmoxノードへライブマイグレーションする(クラスタ構成時) |
pct resize 106 rootfs +4G # rootfsディスクを4GB分拡張する
スナップショット
| 頻度 | コマンド | 説明 |
|---|---|---|
| ⭐ | pct snapshot <CTID> <スナップショット名> |
現在の状態のスナップショットを作成する |
| ⭐ | pct listsnapshot <CTID> |
スナップショット一覧を表示する |
| ⭐ | pct rollback <CTID> <スナップショット名> |
指定スナップショットの状態に巻き戻す |
| 📝 | pct delsnapshot <CTID> <スナップショット名> |
スナップショットを削除する |
pct snapshot 106 before-upgrade # アップデート前にスナップショットを作成
pct rollback 106 before-upgrade # 問題があれば巻き戻す
まとめ:迷ったときの基本フロー
pct list # 1. コンテナ一覧・状態を確認
pct config <CTID> # 2. 対象コンテナの設定を確認
pct exec <CTID> -- <コマンド> # 3. 個別にコマンドを実行(入らずに済む)
pct enter <CTID> # 4. 込み入った作業はシェルに入って実施
pct shutdown <CTID> # 5. 作業後は正常終了で停止
各コマンドの詳細オプションはpct <サブコマンド> --help、またはProxmoxホスト上でman pctで確認できます。