pct - Tool to manage Linux Containers (LXC) on Proxmox VE
pct <COMMAND> [ARGS] [OPTIONS]
pct create <vmid> <ostemplate> [OPTIONS]
Create or restore a container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<ostemplate> string
The OS template or backup file.
-arch (amd64 | i386) (default=amd64)
OS architecture type.
-cmode (console | shell | tty) (default=tty)
Console mode. By default, the console command tries to open a
connection to one of the available tty devices. By setting
cmode to 'console' it tries to attach to /dev/console instead.
If you set cmode to 'shell', it simply invokes a shell inside
the container (no login).
-console boolean (default=1)
Attach a console device (/dev/console) to the container.
-cpulimit number (0 - 128) (default=0)
Limit of CPU usage. Note if the computer has 2 CPUs, it has
total of '2' CPU time. Value '0' indicates no CPU limit.
-cpuunits integer (0 - 500000) (default=1024)
CPU weight for a VM. Argument is used in the kernel fair
scheduler. The larger the number is, the more CPU time this VM
gets. Number is relative to weights of all the other running
VMs.
NOTE: You can disable fair-scheduler configuration by setting
this to 0.
-description string
Container description. Only used on the configuration web
interface.
-force boolean
Allow to overwrite existing container.
-hostname string
Set a host name for the container.
-lock (backup | migrate | rollback | snapshot)
Lock/unlock the VM.
-memory integer (16 - N) (default=512)
Amount of RAM for the VM in MB.
-mp[n] [volume=]<volume> [,backup=<[1|0]>] [,mp=<Path>]
[,size=<DiskSize>]
Use volume as container mount point (experimental feature).
-nameserver string
Sets DNS server IP address for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-net[n] bridge=<vmbr<Number>>, name=<String> [,firewall=<[1|0]>]
[,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<MAC>]
[,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]
[,mtu=<Number>] [,tag=<VlanNo>]
Specifies network interfaces for the container.
-onboot boolean (default=0)
Specifies whether a VM will be started during system bootup.
-ostype (archlinux | centos | debian | ubuntu)
OS type. Corresponds to lxc setup scripts in
/usr/share/lxc/config/<ostype>.common.conf.
-password string
Sets root password inside container.
-pool string
Add the VM to the specified pool.
-protection boolean (default=0)
Sets the protection flag of the container. This will prevent
the remove operation. This will prevent the CT or CT's disk
remove/update operation.
-restore boolean
Mark this as restore task.
-rootfs [volume=]<volume> [,backup=<[1|0]>] [,size=<DiskSize>]
Use volume as container root.
-searchdomain string
Sets DNS search domains for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-startup [[order=]\d+] [,up=\d+] [,down=\d+]
Startup and shutdown behavior. Order is a non-negative number
defining the general startup order. Shutdown in done with
reverse ordering. Additionally you can set the 'up' or 'down'
delay in seconds, which specifies a delay to wait before the
next VM is started or stopped.
-storage string (default=local)
Default Storage.
-swap integer (0 - N) (default=512)
Amount of SWAP for the VM in MB.
-template boolean (default=0)
Enable/disable Template.
-tty integer (0 - 6) (default=2)
Specify the number of tty available to the container
-unused[n] string
Reference to unused volumes.
pct destroy <vmid>
Destroy the container (also delete all uses files).
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct list
LXC container index (per node).
pct migrate <vmid> <target> [OPTIONS]
Migrate the container to another node. Creates a new migration task.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<target> string
Target node.
-online boolean
Use online/live migration.
pct restore <vmid> <ostemplate> [OPTIONS]
Create or restore a container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<ostemplate> string
The OS template or backup file.
-arch (amd64 | i386) (default=amd64)
OS architecture type.
-cmode (console | shell | tty) (default=tty)
Console mode. By default, the console command tries to open a
connection to one of the available tty devices. By setting
cmode to 'console' it tries to attach to /dev/console instead.
If you set cmode to 'shell', it simply invokes a shell inside
the container (no login).
-console boolean (default=1)
Attach a console device (/dev/console) to the container.
-cpulimit number (0 - 128) (default=0)
Limit of CPU usage. Note if the computer has 2 CPUs, it has
total of '2' CPU time. Value '0' indicates no CPU limit.
-cpuunits integer (0 - 500000) (default=1024)
CPU weight for a VM. Argument is used in the kernel fair
scheduler. The larger the number is, the more CPU time this VM
gets. Number is relative to weights of all the other running
VMs.
NOTE: You can disable fair-scheduler configuration by setting
this to 0.
-description string
Container description. Only used on the configuration web
interface.
-force boolean
Allow to overwrite existing container.
-hostname string
Set a host name for the container.
-lock (backup | migrate | rollback | snapshot)
Lock/unlock the VM.
-memory integer (16 - N) (default=512)
Amount of RAM for the VM in MB.
-mp[n] [volume=]<volume> [,backup=<[1|0]>] [,mp=<Path>]
[,size=<DiskSize>]
Use volume as container mount point (experimental feature).
-nameserver string
Sets DNS server IP address for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-net[n] bridge=<vmbr<Number>>, name=<String> [,firewall=<[1|0]>]
[,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<MAC>]
[,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]
[,mtu=<Number>] [,tag=<VlanNo>]
Specifies network interfaces for the container.
-onboot boolean (default=0)
Specifies whether a VM will be started during system bootup.
-ostype (archlinux | centos | debian | ubuntu)
OS type. Corresponds to lxc setup scripts in
/usr/share/lxc/config/<ostype>.common.conf.
-password string
Sets root password inside container.
-pool string
Add the VM to the specified pool.
-protection boolean (default=0)
Sets the protection flag of the container. This will prevent
the remove operation. This will prevent the CT or CT's disk
remove/update operation.
-rootfs [volume=]<volume> [,backup=<[1|0]>] [,size=<DiskSize>]
Use volume as container root.
-searchdomain string
Sets DNS search domains for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-startup [[order=]\d+] [,up=\d+] [,down=\d+]
Startup and shutdown behavior. Order is a non-negative number
defining the general startup order. Shutdown in done with
reverse ordering. Additionally you can set the 'up' or 'down'
delay in seconds, which specifies a delay to wait before the
next VM is started or stopped.
-storage string (default=local)
Default Storage.
-swap integer (0 - N) (default=512)
Amount of SWAP for the VM in MB.
-template boolean (default=0)
Enable/disable Template.
-tty integer (0 - 6) (default=2)
Specify the number of tty available to the container
-unused[n] string
Reference to unused volumes.
pct template <vmid>
Create a Template.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct config <vmid>
Get container configuration.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct resize <vmid> <disk> <size> [OPTIONS]
Resize a container mountpoint.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<disk> (mp0 | mp1 | mp2 | mp3 | mp4 | mp5 | mp6 | mp7 | mp8 | mp9 |
rootfs)
The disk you want to resize.
<size> \+?\d+(\.\d+)?[KMGT]?
The new size. With the '+' sign the value is added to the
actual size of the volume and without it, the value is taken
as an absolute one. Shrinking disk size is not supported.
-arch (amd64 | i386) (default=amd64)
OS architecture type.
-cmode (console | shell | tty) (default=tty)
Console mode. By default, the console command tries to open a
connection to one of the available tty devices. By setting
cmode to 'console' it tries to attach to /dev/console instead.
If you set cmode to 'shell', it simply invokes a shell inside
the container (no login).
-console boolean (default=1)
Attach a console device (/dev/console) to the container.
-cpulimit number (0 - 128) (default=0)
Limit of CPU usage. Note if the computer has 2 CPUs, it has
total of '2' CPU time. Value '0' indicates no CPU limit.
-cpuunits integer (0 - 500000) (default=1024)
CPU weight for a VM. Argument is used in the kernel fair
scheduler. The larger the number is, the more CPU time this VM
gets. Number is relative to weights of all the other running
VMs.
NOTE: You can disable fair-scheduler configuration by setting
this to 0.
-description string
Container description. Only used on the configuration web
interface.
-digest string
Prevent changes if current configuration file has different
SHA1 digest. This can be used to prevent concurrent
modifications.
-hostname string
Set a host name for the container.
-lock (backup | migrate | rollback | snapshot)
Lock/unlock the VM.
-memory integer (16 - N) (default=512)
Amount of RAM for the VM in MB.
-mp[n] [volume=]<volume> [,backup=<[1|0]>] [,mp=<Path>]
[,size=<DiskSize>]
Use volume as container mount point (experimental feature).
-nameserver string
Sets DNS server IP address for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-net[n] bridge=<vmbr<Number>>, name=<String> [,firewall=<[1|0]>]
[,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<MAC>]
[,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]
[,mtu=<Number>] [,tag=<VlanNo>]
Specifies network interfaces for the container.
-onboot boolean (default=0)
Specifies whether a VM will be started during system bootup.
-ostype (archlinux | centos | debian | ubuntu)
OS type. Corresponds to lxc setup scripts in
/usr/share/lxc/config/<ostype>.common.conf.
-protection boolean (default=0)
Sets the protection flag of the container. This will prevent
the remove operation. This will prevent the CT or CT's disk
remove/update operation.
-rootfs [volume=]<volume> [,backup=<[1|0]>] [,size=<DiskSize>]
Use volume as container root.
-searchdomain string
Sets DNS search domains for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-startup [[order=]\d+] [,up=\d+] [,down=\d+]
Startup and shutdown behavior. Order is a non-negative number
defining the general startup order. Shutdown in done with
reverse ordering. Additionally you can set the 'up' or 'down'
delay in seconds, which specifies a delay to wait before the
next VM is started or stopped.
-swap integer (0 - N) (default=512)
Amount of SWAP for the VM in MB.
-template boolean (default=0)
Enable/disable Template.
-tty integer (0 - 6) (default=2)
Specify the number of tty available to the container
-unused[n] string
Reference to unused volumes.
pct set <vmid> [OPTIONS]
Set container options.
<vmid> integer (1 - N)
The (unique) ID of the VM.
-arch (amd64 | i386) (default=amd64)
OS architecture type.
-cmode (console | shell | tty) (default=tty)
Console mode. By default, the console command tries to open a
connection to one of the available tty devices. By setting
cmode to 'console' it tries to attach to /dev/console instead.
If you set cmode to 'shell', it simply invokes a shell inside
the container (no login).
-console boolean (default=1)
Attach a console device (/dev/console) to the container.
-cpulimit number (0 - 128) (default=0)
Limit of CPU usage. Note if the computer has 2 CPUs, it has
total of '2' CPU time. Value '0' indicates no CPU limit.
-cpuunits integer (0 - 500000) (default=1024)
CPU weight for a VM. Argument is used in the kernel fair
scheduler. The larger the number is, the more CPU time this VM
gets. Number is relative to weights of all the other running
VMs.
NOTE: You can disable fair-scheduler configuration by setting
this to 0.
-delete string
A list of settings you want to delete.
-description string
Container description. Only used on the configuration web
interface.
-digest string
Prevent changes if current configuration file has different
SHA1 digest. This can be used to prevent concurrent
modifications.
-hostname string
Set a host name for the container.
-lock (backup | migrate | rollback | snapshot)
Lock/unlock the VM.
-memory integer (16 - N) (default=512)
Amount of RAM for the VM in MB.
-mp[n] [volume=]<volume> [,backup=<[1|0]>] [,mp=<Path>]
[,size=<DiskSize>]
Use volume as container mount point (experimental feature).
-nameserver string
Sets DNS server IP address for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-net[n] bridge=<vmbr<Number>>, name=<String> [,firewall=<[1|0]>]
[,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<MAC>]
[,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]
[,mtu=<Number>] [,tag=<VlanNo>]
Specifies network interfaces for the container.
-onboot boolean (default=0)
Specifies whether a VM will be started during system bootup.
-ostype (archlinux | centos | debian | ubuntu)
OS type. Corresponds to lxc setup scripts in
/usr/share/lxc/config/<ostype>.common.conf.
-protection boolean (default=0)
Sets the protection flag of the container. This will prevent
the remove operation. This will prevent the CT or CT's disk
remove/update operation.
-rootfs [volume=]<volume> [,backup=<[1|0]>] [,size=<DiskSize>]
Use volume as container root.
-searchdomain string
Sets DNS search domains for a container. Create will
automatically use the setting from the host if you neither set
searchdomain or nameserver.
-startup [[order=]\d+] [,up=\d+] [,down=\d+]
Startup and shutdown behavior. Order is a non-negative number
defining the general startup order. Shutdown in done with
reverse ordering. Additionally you can set the 'up' or 'down'
delay in seconds, which specifies a delay to wait before the
next VM is started or stopped.
-swap integer (0 - N) (default=512)
Amount of SWAP for the VM in MB.
-template boolean (default=0)
Enable/disable Template.
-tty integer (0 - 6) (default=2)
Specify the number of tty available to the container
-unused[n] string
Reference to unused volumes.
pct delsnapshot <vmid> <snapname> [OPTIONS]
Delete a LXC snapshot.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<snapname> string
The name of the snapshot.
-force boolean
For removal from config file, even if removing disk snapshots
fails.
pct listsnapshot <vmid>
List all snapshots.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct rollback <vmid> <snapname>
Rollback LXC state to specified snapshot.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<snapname> string
The name of the snapshot.
pct snapshot <vmid> <snapname> [OPTIONS]
Snapshot a container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<snapname> string
The name of the snapshot.
-description string
A textual description or comment.
pct resume <vmid>
Resume the container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct shutdown <vmid> [OPTIONS]
Shutdown the container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
-forceStop boolean (default=0)
Make sure the Container stops.
-timeout integer (0 - N) (default=60)
Wait maximal timeout seconds.
pct start <vmid>
Start the container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct stop <vmid>
Stop the container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct suspend <vmid>
Suspend the container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct console <vmid>
Launch a console for the specified container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct enter <vmid>
Launch a shell for the specified container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct exec <vmid> [<extra-args>]
Launch a command inside the specified container.
<vmid> integer (1 - N)
The (unique) ID of the VM.
<extra-args> array
Extra arguments as array
pct unlock <vmid>
Unlock the VM.
<vmid> integer (1 - N)
The (unique) ID of the VM.
pct help [<cmd>] [OPTIONS]
Get help about specified command.
<cmd> string
Command name
-verbose boolean
Verbose output format.
pct is a tool to manages Linux Containers (LXC). You can create and destroy containers, and control execution (start/stop/suspend/resume). Besides that, you can use pct to set parameters in the associated config file, like network configuration or memory.
Create a container based on a Debian template (provided you downloaded the template via the webgui before)
pct create 100 /var/lib/vz/template/cache/debian-8.0-standard_8.0-1_amd64.tar.gz
Start a container
pct start 100
Start a login session via getty
pct console 100
Enter the lxc namespace and run a shell as root user
pct enter 100
Display the configuration
pct config 100
Add a network interface called eth0, bridged to the host bridge vmbr0, set the address and gateway, while it's running
pct set 100 -net0 name=eth0,bridge=vmbr0,ip=192.168.15.147/24,gw=192.168.15.1
Reduce the memory of the container to 512MB
pct set -memory 512 100
/etc/pve/lxc/<vmid>.conf
Configuration file for the container <vmid>
Copyright (C) 2007-2015 Proxmox Server Solutions GmbH
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.