4.9 KiB
LXC Container Management Guide
This guide covers how to use PSProxmox to manage LXC containers on a Proxmox VE server.
Overview
Proxmox VE supports Linux Containers (LXC) as a lightweight alternative to full virtual machines. LXC containers provide an isolated environment for applications with minimal overhead compared to VMs.
PSProxmox provides cmdlets for creating, managing, and removing LXC containers, as well as working with TurnKey Linux templates.
Container Management Cmdlets
PSProxmox includes the following cmdlets for managing LXC containers:
Get-ProxmoxContainer: List all LXC containers or get details for a specific containerNew-ProxmoxContainer: Create a new LXC containerNew-ProxmoxContainerBuilder: Create a builder for configuring container parametersRemove-ProxmoxContainer: Delete an LXC containerStart-ProxmoxContainer: Start an LXC containerStop-ProxmoxContainer: Stop an LXC containerRestart-ProxmoxContainer: Restart an LXC container
TurnKey Template Management Cmdlets
PSProxmox also includes cmdlets for working with TurnKey Linux templates:
Get-ProxmoxTurnKeyTemplate: List available TurnKey templatesSave-ProxmoxTurnKeyTemplate: Download a TurnKey template to a Proxmox storageNew-ProxmoxContainerFromTurnKey: Create a new LXC container from a TurnKey template
Basic Container Operations
Listing Containers
To list all containers on a Proxmox server:
Get-ProxmoxContainer
To get a specific container by ID:
Get-ProxmoxContainer -CTID 100
To get containers on a specific node:
Get-ProxmoxContainer -Node "pve1"
To get containers by name pattern (supports wildcards and regex):
# Using wildcards
Get-ProxmoxContainer -Name "web*"
# Using regex
Get-ProxmoxContainer -Name "^web\d+$"
Creating Containers
To create a new container using parameters:
New-ProxmoxContainer -Node "pve1" -Name "web-container" -OSTemplate "local:vztmpl/ubuntu-20.04-standard_20.04-1_amd64.tar.gz" -Storage "local-lvm" -Memory 512 -Swap 512 -Cores 1 -DiskSize 8 -Unprivileged -StartOnBoot -Start
To create a new container using a builder (for more complex configurations):
$builder = New-ProxmoxContainerBuilder -Name "db-container"
$builder.WithOSTemplate("local:vztmpl/ubuntu-20.04-standard_20.04-1_amd64.tar.gz")
.WithStorage("local-lvm")
.WithMemory(1024)
.WithSwap(1024)
.WithCores(2)
.WithDiskSize(16)
.WithUnprivileged($true)
.WithStartOnBoot($true)
.WithStart($true)
.WithDescription("Database container")
New-ProxmoxContainer -Node "pve1" -Builder $builder
Managing Container State
To start a container:
Start-ProxmoxContainer -Node "pve1" -CTID 100 -Wait
To stop a container:
Stop-ProxmoxContainer -Node "pve1" -CTID 100 -Wait
To restart a container:
Restart-ProxmoxContainer -Node "pve1" -CTID 100 -Wait
Removing Containers
To remove a container:
Remove-ProxmoxContainer -Node "pve1" -CTID 100 -Confirm:$false
Working with TurnKey Linux Templates
TurnKey Linux provides pre-built appliances that can be used as templates for LXC containers.
Listing TurnKey Templates
To list all available TurnKey templates:
Get-ProxmoxTurnKeyTemplate
To list templates by name pattern:
Get-ProxmoxTurnKeyTemplate -Name "wordpress*"
To include templates that have already been downloaded:
Get-ProxmoxTurnKeyTemplate -IncludeDownloaded
Downloading TurnKey Templates
To download a TurnKey template to a storage:
Save-ProxmoxTurnKeyTemplate -Node "pve1" -Name "wordpress" -Storage "local"
Creating Containers from TurnKey Templates
To create a container from a TurnKey template:
New-ProxmoxContainerFromTurnKey -Node "pve1" -Name "wordpress" -Template "wordpress" -Storage "local-lvm" -Memory 512 -Cores 1 -DiskSize 8 -Start
Best Practices
- Use Unprivileged Containers: For better security, create unprivileged containers when possible.
- Resource Allocation: Allocate appropriate resources (memory, CPU, disk) based on the container's purpose.
- Storage Selection: Choose the appropriate storage type for your containers (local-lvm is often a good choice for performance).
- Naming Convention: Use a consistent naming convention for your containers to make management easier.
- Template Management: Download and maintain templates on a central storage for easy access from all nodes.
Examples
See the LXC Container Management Examples for more detailed examples.