Esta página ha sido traducida por una máquina.

Incidencias conocidas

Estas incidencias conocidas se han identificado en Data Science.

Consulte también Solución de problemas.

Fallo al reasignar el espacio de nombres de usuario de Linux con un contenedor de Docker

Detalles

La función de espacio de nombres de usuario (userns) del núcleo de Linux agrega otra capa de seguridad a los contenedores de Linux. Permite a una máquina host ejecutar contenedores fuera del espacio de nombres de ID de usuario (UID) o ID de grupo (GID). Esto significa que todos los contenedores pueden tener una cuenta root (UID 0) en su propio espacio de nombres y ejecutar procesos sin recibir privilegios de usuario root de la máquina host. Cuando se crea userns, el núcleo de Linux proporciona una asignación entre el contenedor y la máquina host. Por ejemplo, si inicia un contenedor y ejecuta un proceso con UID 0 dentro de él (normalmente la cuenta root en el contenedor), el núcleo de Linux asigna el UID 0 del contenedor a un UID sin privilegios de la máquina host. Esto permite que el contenedor ejecute un proceso como si fuera el usuario root, cuando en realidad lo ejecuta el usuario no root en la máquina host.

El error se debe a un fallo de reasignación de userns. Cuando los archivos de la máquina host se configuran con un UID o un GID válido para la reasignación, el UID o el GID debe estar en el rango de 0 a 65535. Cuando un trabajo inicia el contenedor de Docker, Docker extrae una imagen y extrae capas de esa imagen. Si una capa contiene archivos con un UID o un GID fuera del rango aceptado, Docker no se podrá reasignar correctamente y fallará el inicio del contenedor.

Por ejemplo, si existe un archivo con un UID y un GID más altos en el rango permitido. Si copia este archivo en la imagen de Docker, puede mantener el UID y el GID altos.

Si ejecuta la imagen de contenedor y el archivo se debe utilizar en el contenedor, el contenedor fallará.

Solución alternativa 1

Asegúrese de que ninguno de los archivos que se utilicen en la imagen de Docker tengan un UID o un GID alto.

Solución alternativa 2

Si no sabe qué archivo tiene un UID o un GID alto en la imagen, puede buscarlos con:

  1. Introduzca el contenedor con:

    docker run it <image-name> sh
  2. Busque archivos con un UID/GID alto:

    • Busque usuarios:

      find / \( -uid 1000000 \) -ls 2>/dev/null
    • Busque grupos:

      find / \( -gid 1000000 \) -ls 2>/dev/null

    El número 1000000 es diferente porque es el error de ID.

  3. Si busca archivos, asegúrese de que el UID o el GID sea más bajo, ya sea en la ubicación donde está almacenado el archivo o en el contenedor.
Solución alternativa 3

En el archivo de Docker, después de copiar los archivos que necesita en la imagen, ejecute una de las siguientes opciones:

En la carpeta:

RUN chown -R root:root /root 

Directamente en el archivo:

RUN chown -R root:root job_logs.py

OSError: [Errno 28] No space left on device

Detalles

Este error se produce cuando se utiliza un almacenamiento del sistema de archivos local que no está en la ubicación /home/datascience.

En los trabajos, puede especificar el tamaño del almacenamiento de bloques. El almacenamiento de bloques está montado en la carpeta local /home/datascience, que puede utilizar durante la ejecución del trabajo. Tiene un tamaño de almacenamiento igual al tamaño definido por el almacenamiento de bloques antes de la ejecución del trabajo. Si utiliza o crea un directorio fuera de esta ubicación, puede quedarse sin espacio rápidamente y aparecerá el mensaje de error. Depende del tamaño del contenido que se va a almacenar.

Solución alternativa

Asegúrese de que trabaja siempre en la carpeta principal que tiene el tamaño completo del almacenamiento de bloques, que es /home/datascience. Cree, edite y descargue todo el contenido de esta ubicación. Cree directorios en esta ubicación.

Imagen de Docker en Apple y M1 MacBook

Detalles

Por defecto, Docker en M1 MacBook crea imágenes linux/arm64, que solo funcionan en las máquinas que utilizan la arquitectura ARM. Las máquinas basadas en Intel utilizan la arquitectura AMD. Como resultado, es posible que las imágenes de docker creadas en M1 MacBook no funcionen en máquinas basadas en Intel.

Solución alternativa
Ninguno.