Je ne suis plus en mesure d'utiliser Docker ou d'exécuter efficacement de nouvelles images - il est signalé que j'ai 100% d'utilisation du disque. Ici, vous pouvez voir que je lance une copie vierge d'ubuntu, et pourtant il me dit que je n'ai plus d'espace disque:
$ docker run -t -i ubuntu /bin/bash
root@3838b70bd76e:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 19G 18G 0 100% /
none 19G 18G 0 100% /
tmpfs 1005M 0 1005M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sda1 19G 18G 0 100% /etc/hosts
tmpfs 1005M 0 1005M 0% /proc/kcore
Séparément, j'essaie de démarrer une instance mysql et cela me donne des messages d'erreur qui, je pense, sont liés au fait que je n'ai pas de disque disponible. Lorsque j'essaie d'exécuter orchardup / mysql, j'obtiens:
ERROR: 1030 Got error 28 from storage engine
Ce qui signifie qu'il n'a plus d'espace de stockage.
Compte tenu de cela, comment dois-je interpréter le rapport df -h ci-dessus et comment puis-je déterminer ce qui consomme 100% de mon disque? J'utilise docker 1.3, fonctionnant sous OSX 10.9.4, en utilisant boot2docker.
Merci.
Edit: Comme solution de contournement, j'ai exécuté boot2docker delete
, puis boot2docker init
, et il semble avoir supprimé toutes mes images (heureusement, je peux les reconstruire avec mes fichiers dockerfiles ). Maintenant, quand je démarre une nouvelle image Ubuntu:
root@f53d637e3d33:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 19G 373M 17G 3% /
none 19G 373M 17G 3% /
tmpfs 1005M 0 1005M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sda1 19G 373M 17G 3% /etc/hosts
tmpfs 1005M 0 1005M 0% /proc/kcore
Tellement mieux. Mais, je suis toujours confus, il doit y avoir une sorte de disque global partagé sur toutes les images hébergées par boot2docker qui ont été précédemment remplies?
Edit 2: Je viens de télécharger un tas d'images, et maintenant voici ce que je vois quand je lance l'image ubuntu et vérifie l'espace disque libre:
root@f53d637e3d33:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 19G 2.7G 15G 16% /
none 19G 2.7G 15G 16% /
tmpfs 1005M 0 1005M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sda1 19G 2.7G 15G 16% /etc/hosts
tmpfs 1005M 0 1005M 0% /proc/kcore
De 3% à 16% consommés! Il y a clairement une sorte de disque partagé entre toutes mes images que je ne comprends pas ...
la source
Réponses:
Sur les hôtes Windows, boot2docker fonctionne en créant une machine virtuelle à l'aide d'une boîte virtuelle. lorsque vous exécutez boot2docker init, il crée une machine virtuelle et, par défaut, attribue 20G au disque racine. cette machine virtuelle exécute un système d'exploitation Linux minimal qui à son tour exécute le démon docker réel (le démon docker ne fonctionne pas nativement sur Windows - pour le moment).
le disque attaché à la machine virtuelle fournit un stockage pour les images du docker. vous pouvez donc regarder des options supplémentaires pour la commande boot2docker init pour augmenter la taille initiale du disque. cela augmentera la taille du disque disponible pour une utilisation dans la machine virtuelle, mais comme l'a souligné Queasy, vous devez ajouter des options supplémentaires au démon docker pour augmenter le stockage disponible pour les images.
lorsque vous exécutez "df -h" dans le conteneur, la taille totale du disque signalée est celle de l'espace disque alloué au démon docker à l'aide de l'option "dm.basesize".
note: boot2docker est désormais déconseillé au profit de Docker Toolbox. vous voudrez peut-être mettre à niveau vers cette version, auquel cas vous utiliserez "docker-machine create" au lieu de "boot2docker init". j'ai basculé vers docker-toolbox, je ne peux donc pas tester les options de commande nécessaires pour l'initialisation de boot2docker
la source
Modifiez la configuration de docker dans / etc / sysconfig / docker-storage et ajoutez la ligne:
N'oubliez pas de sauvegarder votre docker avant de poursuivre cette tâche car il supprimera vos données une fois initialisées.
la source
--storage-opt
n'est pas pris en charge sur OSXConsidérez que le lecteur peut être défectueux. Hitachi (Drive Fitness Test), Seagate (Seatools) et Western Digital (Western Digital Data Lifeguard) proposent tous un logiciel de diagnostic gratuit pour vous aider à le déterminer.
Pour illustrer comment un mauvais disque peut visser avec de l'espace disque, j'ai sauvegardé des disques de 1 To qui signalent à Windows qu'ils ont encore des PETABYTES de données à transférer.
Dans le cas où votre lecteur fonctionne correctement, utilisez du (Utilisation du disque) pour voir quel dossier est le plus grand.
du -h /usr/bin
,du -h /var
Oudu -h /home/[username]/Downloads
à l' aide indiquer exactement.Edit: j'ai vu que vous utilisez OS X: vous devrez utiliser les outils de disque dur mentionnés ci-dessus comme options de démarrage ou dans quelque chose comme Windows PE gratuit, que vous pouvez ensuite démarrer et exécuter ces outils.
la source
Le devicemapper est le moteur de stockage par défaut de Docker. Il essaie de pré-allouer 100 Go par défaut dans / var / lib / docker. Cependant, tout cet espace n'est pas vraiment utilisé et vous pouvez le configurer dans les options. Documents Docker
la source