Preguntas frecuentes sobre el Aislamiento de Contenedores Mejorado
Esta página responde a las preguntas más frecuentes sobre el Aislamiento de Contenedores Mejorado (ECI) que no se tratan en la documentación principal.
¿Tengo que cambiar la forma en que uso Docker cuando ECI está activado?
No. ECI funciona automáticamente en segundo plano creando contenedores más seguros. Puedes continuar utilizando todos tus comandos de Docker, flujos de trabajo y herramientas de desarrollo existentes sin ningún cambio.
¿Funcionan bien todas las cargas de trabajo de los contenedores con ECI?
La mayoría de las cargas de trabajo de los contenedores se ejecutan sin problemas cuando ECI está activado. Sin embargo, algunas cargas de trabajo avanzadas que requieren acceso específico a nivel del kernel pueden no funcionar. Para obtener detalles sobre qué cargas de trabajo se ven afectadas, consulta las Limitaciones de ECI.
¿Por qué no restringir simplemente el uso de la bandera --privileged?
Los contenedores privilegiados sirven para propósitos legítimos como Docker-in-Docker, Kubernetes-in-Docker y el acceso a dispositivos de hardware. ECI proporciona una solución mejor al permitir que estas cargas de trabajo avanzadas se ejecuten de forma segura, al tiempo que evita que comprometan la VM de Docker Desktop.
¿Afecta ECI al rendimiento del contenedor?
ECI tiene un impacto mínimo en el rendimiento del contenedor. La única excepción son los contenedores que realizan muchas llamadas al sistema mount y umount, ya que estas son inspeccionadas por el entorno de ejecución Sysbox por seguridad. La mayoría de las cargas de trabajo de desarrollo no experimentan diferencias de rendimiento notables.
¿Puedo anular el entorno de ejecución del contenedor con ECI activado?
No. Cuando ECI está activado, todos los contenedores utilizan el entorno de ejecución Sysbox, independientemente de cualquier bandera --runtime:
$ docker run --runtime=runc alpine echo "test"
# Esto sigue utilizando sysbox-runc, no runc
Se ignora la bandera --runtime para evitar que los usuarios eludan la seguridad de ECI ejecutando contenedores como root real en la VM de Docker Desktop.
¿Protege ECI los contenedores creados antes de activarlo?
No. ECI solo protege los contenedores creados después de su activación. Elimina los contenedores existentes antes de activar ECI:
$ docker stop $(docker ps -q)
$ docker rm $(docker ps -aq)
Para obtener más detalles, consulta Habilitar el Aislamiento de Contenedores Mejorado.
¿Qué contenedores protege ECI?
La protección de ECI varía según el tipo de contenedor y la versión de Docker Desktop:
Siempre protegidos
- Contenedores creados con
docker runydocker create. - Contenedores que utilizan el controlador de construcción
docker-container. - Kubernetes con el proveedor Kind.
Dependiente de la plataforma
- Docker Build: Protegido en Docker Desktop para Mac, Linux y Windows con el motor Hyper-V.
No protegidos
- Extensiones de Docker.
- Contenedores de Docker Debug.
- Kubernetes con el proveedor Kubeadm.
Para ver los detalles completos, consulta las Limitaciones de ECI.
¿Puedo montar el socket de Docker con ECI activado?
Por defecto, no. ECI bloquea los montajes tipo bind del socket de Docker por seguridad. Sin embargo, puedes configurar excepciones para imágenes de confianza como Testcontainers.
Para ver detalles de configuración, consulta Configurar excepciones del socket de Docker.
¿Qué montajes tipo bind restringe ECI?
ECI restringe los montajes tipo bind de los directorios de la VM de Docker Desktop, pero permite los montajes de directorios del host configurados en la configuración de Docker Desktop.