V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

runsc

Es el runtime de contenedores de gVisor, desarrollado por Google. Su propósito principal es proporcionar una capa extra de seguridad entre los procesos del contenedor y el kernel del host, implementando un kernel de usuario, en Go, que intercepta las llamadas al sistema antes de que lleguen al kernel real. La diferencia con runc [ver], el runtime estándar, es que runc deja que los procesos del contenedor llamen directamente al kernel del host. runsc interpone un kernel en espacio de usuario que reimplementa las syscalls, reduciendo drásticamente la superficie de ataque.

# runsc install
integrar con Docker añadiendo "runsc" como runtime disponible
# systemctl restart docker (reiniciar docker
# docker info | grep -A5 Runtimes
verificar que Docker lo reconoce
$ docker run --runtime=runsc ubuntu uname -r
ejecutar un contenedor con aislamiento gVisor. Una vez instalado como runtime de Docker, se usa con --runtime=runsc. Se verá algo como 4.4.0, el kernel simulado de gVisor, no el del host
$ docker run --runtime=runsc -p 8080:80 nginx
Nginx dentro de gVisor
$ docker run --runtime=runsc -it debian bash
contenedor interactivo
$ docker run --runtime=runsc ubuntu cat /proc/version
comprobar que el aislamiento funciona, mostrando la versión del kernel de gVisor, no la del host
$ runsc create --bundle /tmp/mi-contenedor mi-contenedor
crear sin arrancar, útil para preparar el entorno
$ runsc start mi-contenedor
arrancar el proceso principal
$ runsc state mi-contenedor
ver estado
$ runsc exec mi-contenedor /bin/bash
ejecutar un proceso adicional dentro del contenedor
$ runsc exec mi-contenedor ps aux
$ runsc exec mi-contenedor ls /etc
$ runsc exec --user 1000 mi-contenedor whoami
con usuario específico
$ runsc kill mi-contenedor TERM
parar gracefully [SIGTERM]
$ runsc kill mi-contenedor KILL
forzar parada
$ runsc kill mi-contenedor 9
señal numérica
$ runsc pause mi-contenedor
congelar todos los procesos
$ runsc resume mi-contenedor
reanudar
$ runsc events --interval 5 mi-contenedor
estadísticas en tiempo real [cada 5 segundos]
$ runsc events mi-contenedor
esperar evento OOM
$ runsc list
listar contenedores gVisor activos
$ runsc checkpoint --image-path /tmp/checkpoint mi-contenedor
guardar el estado actual del contenedor a disco
$ runsc restore --bundle /tmp/mi-contenedor --image-path /tmp/checkpoint mi-contenedor-restaurado
restaurar desde el checkpoint
$ runsc port-forward mi-contenedor 8080:80
reenviar puerto 8080 local al 80 del contenedor
$ runsc debug --stacks mi-contenedor
información de debug del sandbox [stacks, estadísticas internas]
$ runsc usage mi-contenedor
ver uso de memoria por categorías
$ runsc help syscalls
ver compatibilidad de syscalls implementadas
$ runsc help platforms
ver plataformas de ejecución disponibles: ptrace, kvm, systrap...
$ runsc metric-server --exporter-prefix=runsc_ --metrics-export-address=:9090
arrancar servidor HTTP de métricas Prometheus
$ runsc export-metrics mi-contenedor
exportar métricas del sandbox a stdout
$ runsc --platform=systrap run ...
cambiar plataforma de ejecución, systrap es la opción por defecto moderna
$ runsc --platform=kvm run ...
más rápido si se tiene virtualización anidada
$ runsc --debug --debug-log=/tmp/runsc.log run ...
modo debug con logs detallados
$ runsc --network=none run ...
desactivar red. Sandbox completamente aislado
$ runsc --root=/var/run/runsc list
cambiar el directorio raíz de estado de los contenedores
$ runsc help syscalls
ver estado de compatibilidad de cada syscalls. gvisor no implementa todas las de linux

1.-

Generar la especificación OCI base y crea config.json con valores por defecto

$ cd /tmp/mi-contenedor
$ runsc spec
Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
5098 entradas - Acerca del Tractatus
La Pipa Plena 2026