Comandos Clave - 352.1 Conceptos de Contenedores

Namespaces

ComandoDescripción
ls -la /proc/<PID>/ns/Ver namespaces de un proceso
lsnsListar todos los namespaces del sistema
lsns -p <PID>Namespaces de un proceso específico
unshare --net bashCrear nuevo namespace de red
unshare --pid --fork --mount-proc bashCrear namespace PID aislado
unshare --user bashCrear namespace de usuario
nsenter -t <PID> -n -p -mEntrar en namespaces de un proceso
nsenter -t <PID> --allEntrar en todos los namespaces
ip netns listListar namespaces de red
ip netns exec <ns> <cmd>Ejecutar comando en namespace de red

Cgroups v1

Ruta/ComandoDescripción
/sys/fs/cgroup/Raíz de cgroups v1
/sys/fs/cgroup/memory/<grupo>/memory.limit_in_bytesLímite de memoria
/sys/fs/cgroup/memory/<grupo>/memory.usage_in_bytesUso actual de memoria
/sys/fs/cgroup/cpu/<grupo>/cpu.sharesPeso relativo de CPU
/sys/fs/cgroup/cpu/<grupo>/cpu.cfs_quota_usCuota CPU en microsegundos
/sys/fs/cgroup/pids/<grupo>/pids.maxMáximo de PIDs
cgcreate -g memory,cpu:/<grupo>Crear cgroup (v1)
cgset -r memory.limit_in_bytes=512M <grupo>Establecer límite
cgexec -g memory,cpu:/<grupo> <cmd>Ejecutar en un cgroup

Cgroups v2

Ruta/ComandoDescripción
/sys/fs/cgroup/Raíz unificada de cgroups v2
cat /sys/fs/cgroup/cgroup.controllersControladores disponibles
echo "+memory +cpu" > cgroup.subtree_controlActivar controladores
echo "512M" > <grupo>/memory.maxLímite de memoria (v2)
cat <grupo>/memory.currentUso actual de memoria (v2)
echo "50000 100000" > <grupo>/cpu.maxCuota CPU: 50% de 1 core
echo "100" > <grupo>/cpu.weightPeso CPU (1-10000)
echo "max" > <grupo>/pids.maxSin límite de PIDs
cat <grupo>/cgroup.procsProcesos en el cgroup

OverlayFS

ComandoDescripción
mount -t overlay overlay -o lowerdir=X,upperdir=Y,workdir=Z /mergedMontar overlayfs
mount | grep overlayVer montajes overlay activos
cat /proc/filesystems | grep overlayVerificar soporte del kernel

Seguridad

ComandoDescripción
getpcaps <PID>Ver capabilities de un proceso
capsh --printMostrar capabilities del shell actual
grep Seccomp /proc/<PID>/statusVer modo seccomp de un proceso
cat /etc/subuidMapeo de UIDs para user namespaces
cat /etc/subgidMapeo de GIDs para user namespaces
newuidmap <PID> <inner> <outer> <count>Configurar mapeo de UIDs
newgidmap <PID> <inner> <outer> <count>Configurar mapeo de GIDs

Container Runtimes

ComandoDescripción
runc specGenerar config.json OCI de referencia
runc create <id>Crear contenedor OCI
runc start <id>Iniciar contenedor
runc listListar contenedores
runc delete <id>Eliminar contenedor
ctr containers listListar contenedores (containerd)
crictl podsListar pods (CRI-O)
skopeo inspect docker://<imagen>Inspeccionar imagen OCI remota
skopeo copy <origen> <destino>Copiar imagen entre registros

Archivos Importantes

RutaDescripción
/proc/<PID>/ns/Namespaces de un proceso
/proc/<PID>/cgroupCgroup de un proceso
/sys/fs/cgroup/Punto de montaje de cgroups
/etc/subuidRangos de UIDs subordinados
/etc/subgidRangos de GIDs subordinados