Comando Linux lxc

Linux 命令大全Manual completo de comandos de Linux


LXC (Linux Containers) es una tecnología de virtualización a nivel de sistema operativo que permite ejecutar múltiples entornos Linux aislados (contenedores) en un solo sistema Linux. A diferencia de las máquinas virtuales tradicionales, los contenedores LXC comparten el kernel del sistema host, por lo que son más ligeros y eficientes.

LXC proporciona un aislamiento cercano al de las máquinas virtuales, manteniendo una eficiencia de ejecución cercana al rendimiento nativo. Es la base de tecnologías de contenedores como Docker.


Conceptos básicos de LXC

Contenedor

Un contenedor es un espacio de procesos ligero y aislado, con su propio sistema de archivos, configuración de red y árbol de procesos.

Plantilla

Las plantillas son configuraciones predefinidas y diseños de sistema de archivos utilizados para crear contenedores. LXC ofrece varias plantillas, como ubuntu, debian, centos, etc.

Grupos de control (cgroups)

Funcionalidad del kernel de Linux que se utiliza para limitar, registrar y aislar el uso de recursos de grupos de procesos (CPU, memoria, E/S de disco, etc.).

Espacios de nombres (Namespaces)

Funcionalidad del kernel de Linux que proporciona aislamiento de procesos, incluyendo espacios de nombres como PID, red, puntos de montaje, UTS, etc.


Sintaxis del comando LXC

Formato básico del comando:

lxc [选项]  [参数]

: Habilitar salida de depuración

  • --debug: Especificar archivo de registro
  • --logfile=<文件>: Mostrar información de versión
  • --version: Mostrar información de ayuda
  • --helpComandos comunes de LXC

Comandos comunes de LXC

Gestión de contenedores

Ejemplo:

lxc-create -n  -t  [-- ]

Iniciar contenedor

lxc-create -n mycontainer -t ubuntu -- -r jammy

Detener contenedor

lxc-start -n  [-d]  # -d 表示在后台运行

Eliminar contenedor

lxc-stop -n 

Información del contenedor

lxc-destroy -n 

Información del contenedor

Ver estado del contenedor

lxc-ls [--active]  # --active 只显示运行中的容器

Ver consola del contenedor

lxc-info -n 

Configuración del contenedor

lxc-console -n 

Configuración del contenedor

Congelar/Descongelar contenedor

lxc-copy -n  -N 

Ejemplo

Ejemplo

lxc-freeze -n   # Descongelar
lxc-unfreeze -n   Modificar configuración del contenedor

Archivo de configuración de LXC

lxc-config -n  -s =

Archivo de configuración de LXC

Elementos de configuración comunes:

/var/lib/lxc//config

Ejemplo

Ejemplo

# Límites de recursos
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up

Ejemplos prácticos
lxc.cgroup.cpu.shares = 512
lxc.cgroup.memory.limit_in_bytes = 512M

Ejemplos prácticos

Ejemplo 1: Crear y ejecutar un contenedor Ubuntu

Ejemplo

# Iniciar contenedor
lxc-create -n myubuntu -t ubuntu -- -r jammy

# Entrar a la consola del contenedor
lxc-start -n myubuntu -d

# Ejecutar comandos dentro del contenedor
lxc-console -n myubuntu

Ejemplo 2: Limitar recursos del contenedor
lxc-attach -n myubuntu -- apt update

Ejemplo 2: Limitar recursos del contenedor

y agregar:/var/lib/lxc/myubuntu/configEjemplo

Ejemplo

lxc.cgroup.cpu.shares = 256
lxc.cgroup.memory.limit_in_bytes = 256M

Ejemplo

Ejemplo

lxc-stop -n myubuntu
lxc-start -n myubuntu -d

Resolución de problemas comunes

Problema 1: El contenedor no puede iniciarse

  • Asegurarse de que el kernel admita LXC:cat /var/log/lxc/<容器名>.log
  • Problema 2: Problemas de conexión de redgrep CONFIG_CGROUP /boot/config-$(uname -r)

Problema 2: Problemas de conexión de red

  • Asegurarse de que lxc-net esté instalado:brctl show
  • Problema 3: Problemas de permisosapt install lxc-net

Problema 3: Problemas de permisos

  • o agregar el usuario al grupo lxc:
  • Uso avanzadousermod -aG lxc <用户名>

Uso avanzado

Usar la API de LXC

Ejemplo

Ejemplo

import lxc

container = lxc.Container("mycontainer")
if not container.defined:
    container.create("ubuntu", {"release": "jammy"})
container.start()

Instantáneas de contenedores

Ejemplo

lxc-snapshot -n   # Restaurar instantánea
lxc-snapshot -n  -r snap0  Migración de contenedores

Migración de contenedores

Ejemplo

# En el host de destino
lxc-checkpoint -n  -D /path/to/dump

Resumen
lxc-restore -n  -D /path/to/dump

Resumen

Manual completo de comandos de Linux


Linux 命令大全Otras extensiones

IA pensando...