Aislamiento de contenedores por namespaces

Esta pagina indica los pasos adicionales necesarios para aislar los contenedores con los user namespace de Linux.

  1. Asegurarse de que Docker y Cyberwatch están instalados

  2. Crear el usuario cyberwatch:

    sudo useradd --create-home --shell /bin/bash cyberwatch
    
  3. Editar el archivo /etc/subuid:

    cyberwatch:231072:65536
    cyberwatch:1001:1
    

    La primera linea permite definir el mapeo de user/groups ids en un user namespace. Esta linea generalmente se agrega automáticamente por el sistema al crear el usuario, pero algunos sistemas no lo hacen automáticamente (algunas versiones de CentOS, por ejemplo).

    Por ejemplo, cyberwatch:231072:65536 significa que el usuario cyberwatch puede usar 65536 user ids a partir del id 231072.

    La linea cyberwatch:1001:1 permite que los archivos creados por root pertenezcan al usuario con el id 1001 (reemplazar por el id del usuario cyberwatch).

  4. Editar el archivo /etc/subgid:

    cyberwatch:231072:65536
    cyberwatch:1001:1
    
  5. Reiniciar el servidor para que los cambios se tengan en cuenta:

    sudo reboot
    
  6. Configurar docker para activar la opción userns-remap:

    cat >> /etc/docker/daemon.json <<EOL
    {
      "userns-remap": "cyberwatch"
    }
    EOL
    
  7. Reiniciar docker:

    systemctl restart docker
    

Troubleshooting

Los problemas que pueden derivar de la activación de userns-remap suelen estar relacionados con los permisos en los volumenes.

Puede ser útil consultar los logs del contenedor de base de datos para descartar problemas de permisos:

sudo cyberwatch logs db

Volver arriba

English Français Español