Problemi noti

Questi problemi noti sono stati identificati in Data Science.

Vedere anche risoluzione dei problemi.

Errore di mappatura dello spazio di nomi utente Linux con un contenitore Docker

Dettagli

La funzione dello spazio di nomi utente (userns) del kernel Linux aggiunge un altro livello di sicurezza ai container Linux. Consente a un computer host di eseguire i contenitori al di fuori del relativo spazio di nomi ID utente (UID) o ID gruppo (GID). Ciò significa che tutti i container possono avere un account root (UID 0) nel proprio spazio di nomi ed eseguire processi senza ricevere privilegi root dal computer host. Quando si crea un file userns, il kernel Linux fornisce una mappatura tra il contenitore e il computer host. Ad esempio, se si avvia un contenitore ed esegue un processo con UID 0 al suo interno (di solito l'account root nel contenitore), il kernel Linux mappa l'UID 0 del contenitore a un UID non privilegiato sul computer host. Ciò consente al contenitore di eseguire un processo come se fosse l'utente root, mentre in realtà viene eseguito dall'utente non root sul computer host.

L'errore è causato da un errore di rimappatura userns. Quando i file del computer host sono configurati con un UID o un GID valido per la rimappatura, l'UID o il GID deve essere compreso nell'intervallo 0-65535. Quando un job avvia il container Docker, Docker estrae un'immagine ed estrae i layer da tale immagine. Se un layer contiene file con UID o GID al di fuori dell'intervallo accettato, il mapping di Docker non può essere eseguito correttamente in modo che il contenitore non venga avviato.

Ad esempio, se esiste un file con UID e GID superiori all'intervallo consentito. Se copi questo file nell'immagine Docker, può conservare l'UID e il GID elevati.

Se si esegue l'immagine del contenitore e il file deve essere utilizzato nel contenitore, il contenitore non riesce.

Soluzione alternativa 1

Assicurarsi che nessuno dei file utilizzati nell'immagine Docker disponga di un UID o di un GID elevato.

Soluzione alternativa 2

Se non sai quale file ha un alto UID o GID nella tua immagine, puoi trovarli con:

  1. Inserire il contenitore con:

    docker run it <image-name> sh
  2. Cercare i file con UID/GID elevato:

    • Trova utenti:

      find / \( -uid 1000000 \) -ls 2>/dev/null
    • Trova gruppi:

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

    Il numero 1000000 è diverso perché si tratta dell'errore ID.

  3. Se si trovano file, assicurarsi che l'UID o il GID sia inferiore, nella posizione in cui è memorizzato il file o nel contenitore.
Soluzione alternativa 3

Nel file Docker, dopo aver copiato i file necessari nell'immagine, eseguire una delle seguenti operazioni:

Nella cartella:

RUN chown -R root:root /root 

Direttamente sul file:

RUN chown -R root:root job_logs.py

OSError: [Errno 28] Spazio esaurito sul dispositivo

Dettagli

Questo errore si verifica quando si utilizza una memorizzazione file system locale che non si trova nella posizione /home/datascience.

Nei job è possibile specificare la dimensione dello storage a blocchi. Lo storage a blocchi viene installato nella cartella locale /home/datascience che è possibile utilizzare durante l'esecuzione del job. Ha una dimensione di storage uguale al set di dimensioni dello storage a blocchi prima dell'esecuzione del job. Se si utilizza o si crea una directory esterna a questa posizione, lo spazio può esaurirsi rapidamente e viene visualizzato il messaggio di errore. Dipende dalla dimensione del contenuto che viene memorizzato.

Soluzione alternativa

Assicurarsi di lavorare sempre sotto la cartella principale che ha le dimensioni complete dello storage a blocchi, che è /home/datascience. Crea, modifica e scarica tutto il contenuto in questa posizione. Creare directory in questa posizione.

Docker Image su Apple a M1 MacBook

Dettagli

Per impostazione predefinita, Docker in un'architettura M1 MacBook crea immagini linux/arm64 che funzionano solo sui computer che utilizzano l'architettura ARM. I computer basati su Intel utilizzano l'architettura AMD. Di conseguenza, le immagini docker create su un dispositivo M1 MacBook potrebbero non funzionare su computer basati su Intel.

Soluzione alternativa
Nessuno.