This commit is contained in:
Mike McFetridge
2026-07-20 09:23:17 -04:00
parent c1315882da
commit 72272e4006
3179 changed files with 562960 additions and 14 deletions
@@ -0,0 +1,108 @@
---
tags:
- Proxmox
- Containers
---
# Setting Up Containers for Lightweight Workloads
Linux Containers (LXC) are a powerful feature in Proxmox, allowing you to run lightweight, resource-efficient workloads with minimal setup. Whether youre hosting a small web server, testing a new application, or setting up a DNS service, LXC containers are a great way to get started quickly without the overhead of a full virtual machine.
In this guide, Ill walk you through the process of setting up LXC containers in Proxmox and share tips to optimize them for lightweight workloads. Even though I primarily use containers for testing in my homelab, theyve proven invaluable for quick experiments and resource-efficient deployments.
---
## Prerequisites
Before setting up an LXC container, make sure you have:
1. **Proxmox VE Installed**: Ensure your Proxmox host is up and running.
2. **Storage Configured**: Define storage locations for container images and data.
3. **Templates Available**: Download LXC templates via the Proxmox interface.
---
## Step-by-Step Setup
### Step 1: Download an LXC Template
1. Log in to the Proxmox web interface.
2. Navigate to **`Datacenter > Storage`** and select the storage youve designated for containers.
3. Click **Templates**, then browse the list of available templates (e.g., Ubuntu, Debian, Alpine).
4. Select a template suitable for your workload and click **Download**.
### Step 2: Create a New LXC Container
1. In the Proxmox web interface, navigate to **`Create CT`** (short for Create Container).
2. Fill out the following details:
- **Node**: Select the Proxmox host.
- **Hostname**: Enter a name for the container (e.g., `lightweight-app`).
- **Password**: Set a strong root password for the container.
3. Choose the **template** you downloaded in Step 1.
### Step 3: Configure Resources
Assign resources to the container:
- **CPU**: Specify the number of cores (e.g., 1 or 2 for lightweight workloads).
- **Memory**: Allocate sufficient RAM (e.g., 512 MB or 1 GB).
- **Disk Space**: Define the disk size (e.g., 8 GB).
These settings ensure the container remains lightweight while providing enough capacity for the workload.
### Step 4: Network Configuration
1. Select the **network bridge** (e.g., `vmbr0`) for the container.
2. Assign an IP address. You can:
- Use DHCP to automatically get an IP from your network.
- Assign a static IP for more control.
3. Set the DNS server, if needed (e.g., your Pi-hole instance).
### Step 5: Finalize and Start
1. Review your settings in the summary screen.
2. Click **Finish** to create the container.
3. Once created, start the container and access its console to verify functionality.
---
## Post-Setup Configuration
### Install Required Packages
Use your containers package manager (e.g., `apt`, `apk`, or `yum`) to install necessary software. For example, if youre setting up a web server:
```bash
apt update && apt install nginx -y
```
### Optimize for Lightweight Workloads
- **Resource Limits**: Adjust CPU and memory limits via the Proxmox interface if needed.
- **Reduce Startup Services**: Disable unnecessary services within the container to save resources.
- **Backups**: Schedule regular backups using Proxmoxs built-in tools.
---
## Example Use Case: Hosting a Simple Web Server
1. Create a container using an Ubuntu template.
2. Install Nginx with:
```bash
apt update && apt install nginx -y
```
3. Start Nginx and verify its running:
```bash
systemctl start nginx
systemctl enable nginx
```
4. Access the containers IP in your browser to see the default Nginx page.
---
## Final Thoughts
Setting up LXC containers in Proxmox is straightforward and efficient, making them ideal for lightweight workloads. While I mostly use containers for testing in my homelab, theyve consistently proven their value for quick, low-resource deployments. If youre just getting started, try creating a small container to explore its capabilities—you might find its the perfect fit for more than just testing!