Problèmes connus
Ces problèmes connus ont été identifiés dans le service de science des données.
Voir aussi Dépannage.
Échec du remappage de l'espace de noms d'utilisateur Linux avec un conteneur Docker
- Détails
-
La fonction d'espace de noms d'utilisateur (
userns
) du noyau Linux ajoute une autre couche de sécurité aux conteneurs Linux. Elle permet à une machine hôte d'exécuter des conteneurs en dehors de son espace de noms ID utilisateur (UID) ou ID groupe (GID). Cela signifie que tous les conteneurs peuvent avoir un compte racine (UID 0) dans leur propre espace de noms et exécuter des processus sans recevoir de privilèges racines de la machine hôte. Lorsqu'une valeuruserns
est créée, le noyau Linux fournit un mappage entre le conteneur et la machine hôte. Par exemple, si vous démarrez un conteneur et exécutez un processus avec l'UID 0 à l'intérieur (généralement le compte racine du conteneur), le noyau Linux mappe l'UID 0 du conteneur à un UID sans privilège sur la machine hôte. Cela permet au conteneur d'exécuter un processus comme s'il était l'utilisateur racine, alors qu'il est en cours d'exécution par l'utilisateur non racine sur la machine hôte.L'erreur est causée par un échec du remappage de
userns
. Lorsque les fichiers de machine hôte sont configurés avec un UID ou un IDG valide pour le remappage, celui-ci doit être compris entre 0 et 65535. Lorsqu'un travail démarre le conteneur Docker, Docker extrait une image et des couches de celle-ci. Si une couche contient des fichiers dont l'UID ou l'IDG ne figure pas dans l'intervalle accepté, Docker ne peut pas être remappé. Le démarrage du conteneur échoue donc.Par exemple, s'il existe un fichier dont l'UID et l'IDG sont supérieurs à l'intervalle autorisé. Si vous copiez ce fichier dans l'image Docker, il peut conserver l'UID et l'IDG élevés.
Si vous exécutez l'image du conteneur et que le fichier doit être utilisé dans ce dernier, le conteneur échoue.
- Solution de rechange 1
-
Assurez-vous qu'aucun des fichiers utilisés dans votre image Docker n'a un UID ou un IDG élevé.
- Solution de rechange 2
-
Si vous ne savez pas quel fichier a un UID ou un IDG élevé dans votre image, vous pouvez les trouver en procédant comme suit :
-
Entrez le conteneur avec :
docker run it <image-name> sh
-
Recherchez les fichiers ayant un UID/IDG élevé :
-
Recherchez des utilisateurs :
find / \( -uid 1000000 \) -ls 2>/dev/null
-
Recherchez des groupes :
find / \( -gid 1000000 \) -ls 2>/dev/null
Le numéro
1000000
est différent, car il s'agit de l'erreur d'ID. -
- Si vous trouvez des fichiers, assurez-vous que l'UID ou l'IDG est inférieur, soit à l'emplacement où le fichier est stocké, soit dans le conteneur.
-
- Solution de rechange 3
-
Dans votre fichier Docker, après avoir copié les fichiers dont vous avez besoin dans l'image, exécutez l'une des actions suivantes :
Sur le dossier :
RUN chown -R root:root /root
Directement sur le fichier :
RUN chown -R root:root job_logs.py
OSError : [Errno 28] Pas d'espace disponible sur le périphérique
- Détails
-
Cette erreur se produit lorsque vous utilisez un stockage de système de fichiers local qui n'est pas à l'emplacement
/home/datascience
.Dans les travaux, vous pouvez spécifier la taille du stockage par blocs. Le stockage par blocs est monté sur le dossier local
/home/datascience
que vous pouvez utiliser lors de l'exécution de travail. Sa taille de stockage égale à celle définie pour le stockage par blocs avant l'exécution de travail. Si vous utilisez ou créez un répertoire en dehors de cet emplacement, il peut rapidement manquer d'espace et le message d'erreur s'affiche. Cela dépend de la taille du contenu stocké. - Solution de rechange
-
Veillez à travailler systématiquement dans le dossier principal doté de la taille totale du stockage par blocs, c'est-à-dire
/home/datascience
. Créez, modifiez et téléchargez tout le contenu à cet emplacement. Créez des répertoires sous cet emplacement.
Image Docker sur Apple sur M1 MacBook
- Détails
-
Par défaut, Docker sur une M1 MacBook crée des images
linux/arm64
, qui ne fonctionnent que sur les machines qui utilisent l'architecture ARM. Les machines Intel utilisent l'architecture AMD. Par conséquent, les images docker créées sur M1 MacBook risquent de ne pas fonctionner sur les machines Intel. - Solution de rechange
- Aucun.