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 fileuserns
, 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:
-
Inserire il contenitore con:
docker run it <image-name> sh
-
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. -
- 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.