Enregistrez la partie obstruée comme rappel lorsque vous essayez de créer facilement un environnement à l'aide de l'image Docker de Kaggle dans votre ordinateur portable Windows.
En gros, je me réfère à l'article de "Teniro Graffiti", donc veuillez vous référer à cela en premier, sauf pour Win10 Pro dont l'OS est windows. Et si vous utilisez la boîte à outils Docker, cela vous sera utile.
Comme mentionné dans l'article ci-dessus, lorsque j'ai créé un fichier yaml pour docker-compose, j'ai eu une erreur.
version: "3"
services:
jupyter:
build: .
volumes:
- $PWD:/tmp/working
working_dir: /tmp/working
ports:
- 8888:8888
command: jupyter notebook --ip=0.0.0.0 --allow-root --no-browser
J'obtiens l'erreur "le nom du volume est trop court, les noms doivent contenir au moins deux caractères alphanumériques". Résultats de l'enquête, la notation de la variable d'environnement des volumes dans le fichier yaml est $ PWD
, mais dans l'environnement actuel Cela ne fonctionne pas, et il semble préférable d'exécuter les commandes $ {PWD}
et PWD (obtenir le chemin du répertoire courant).
Cela fonctionnait donc mieux avec $ {PWD} / tmp / working
au lieu de $ PWD: / tmp / working
(parce que je suis un débutant dans Docker, j'apprécierais que vous puissiez commenter la raison pour plus de détails).
Quand je l'ai exécuté avec le fichier yaml modifié par docker-compose up --build
, j'ai pu construire avec succès le conteneur avec le notebook jupyter fonctionnant dans l'environnement d'analyse kaggle.
Cependant, dans le navigateur "http: // localhost: 8888 /? Token = XXXX"
Tenter de se connecter au notebook jupyter via le port 8888 de Docker en entrant l'URL ne fonctionne pas.
Dans le cas de Docker toolbox, il n'est pas possible de se connecter directement à localhost (hôte local), donc obtenez l'adresse IP de la machine virtuelle exécutée sur Docker Toolbox et entrez-la dans l'URL au lieu de localhost Ingenuity / jusotech10 / items / b292ac38197926fc6afa) est requis.
> docker-machine ip default
192.168.XX.XX
Ensuite, j'ai pu me connecter avec succès au notebook jupyter.
La partie volume
du fichier yaml mentionnée ci-dessus représente le répertoire à monter, mais dans mon environnement, le montage n'a pas fonctionné et le système d'exploitation hôte (local) et le répertoire sur la VM ne se sont pas synchronisés.
À l'issue de l'enquête, il a été constaté que la cause était la suivante.
Le paramètre de partage de dossier d'Oracle Virtual Box n'est pas défini.
La version du fichier de démarrage de la VM (boot2docker.iso) côté docker ne correspond pas à la version de VirtualBox qui a été installée lors de l'installation de docker toolbox.
Lancement de "Oracle VM VirtualBox Manager" et utilisation de la VM de la machine docker actuellement utilisée.
Vous pouvez le monter en cochant Détails> Dossier partagé> Ajouter un nouveau dossier partagé> Montage / persistance automatique. Étant donné que la boîte à outils docker pour Windows passe par VirtualBox, la commande docker ne sera efficace que si ces paramètres sont définis.
** Icône VM VirtualBox **
** Gestionnaire VM VirtualBox **
** Fenêtre des paramètres du dossier partagé des détails de la VM **
Cependant, même si j'ai réglé environ 1., le montage ne fonctionnait pas. La cause est que la version de VirtualBox installée en premier et la version du fichier de démarrage de la VM de Docker ne correspondaient pas. (Je ne sais pas pourquoi c'est arrivé)
Je pourrais changer le fichier de démarrage pour qu'il corresponde à la version actuelle de VirtualBox, mais j'ai réinstallé VirtualBox vers la dernière version et mis à jour le fichier de démarrage en même temps.
Le fichier de démarrage est stocké sous le nom C: // Users / {user} /. Docker / machine / cache / boot2docker.iso
. Ce fichier est disponible sur ** ici **.
Vous pouvez trouver la version de VirtualBox dans Aide> À propos de VirtualBox, et vous pouvez télécharger le programme d'installation à ** ici **.
Remplacez le fichier de démarrage, réinstallez VirtualBox et supprimez l'ancienne machine VM Docker avec VirtualBox Manager. Lorsque vous démarrez Docker Quick Start Terminal, il lancera automatiquement une nouvelle VM pour docker en fonction du fichier de démarrage.
Bien qu'il s'agisse d'un petit détail, la différence entre la version du fichier de démarrage et la version de VirtualBox sera la même que la version du fichier de configuration appelé GuestAdditions.iso utilisé pour monter le système d'exploitation hôte, ce qui entraînera l'échec du montage.
J'ai créé un conteneur Docker avec un fichier yaml basé sur l'image Docker, mais comme la commande de démarrage du notebook jupyter est incluse à chaque démarrage du conteneur, le notebook jupyter démarrera avec le conteneur à chaque fois. À ce moment-là, en lançant et en attachant le conteneur avec la commande suivante, vous pouvez accéder au conteneur avec les mêmes paramètres, sauf que jupyter notebook n'est pas lancé dans les paramètres de fichier yaml mentionnés ci-dessus.
docker run -t -i --name {Nom du conteneur} -p 8888:8888 -v $PWD:/tmp/working:/tmp/working -w /tmp/working {Nom de l'image Docker} /bin/bash
Après avoir créé diverses installations et répertoires, jupyter notebook --ip = 0.0.0.0 --allow-root --no-browser Vous pouvez également lancer et utiliser jupyter notebook avec
. De même, vous pouvez créer et exécuter le fichier yaml qui correspond à la commande docker ci-dessus. (Je vais l'omettre ici)
Pour référence, les commandes docker qui sont souvent utilisées sont répertoriées ci-dessous.
#Lancer la VM
docker-machine start {Nom de la VM}
#Liste des images actuellement créées
docker images
#Liste des conteneurs actuellement créés
docker ps -a
#Démarrez le conteneur confirmé ci-dessus par nom ou ID
docker start {Nom du conteneur/ID du conteneur}
#Attacher au conteneur démarré
docker attach {Nom du conteneur/ID du conteneur}
#Quittez la VM
docker-machine stop {Nom de la VM}
#Supprimer les images inutiles
docker rmi {Nom de l'image/ID de l'image}
#Supprimer les conteneurs inutiles
docker rm {Nom du conteneur/ID du conteneur}
Si vous souhaitez analyser facilement avec un ordinateur portable Windows disponible dans le commerce, mais ne voulez pas polluer l'environnement, Docker est un logiciel très utile. J'ai résumé les points sur lesquels je suis tombé lorsque je l'ai présenté dans Windows 10 Home Edition. Je suis heureux que vous puissiez l'utiliser comme référence.