Machine: Pas d'espace laissé sur l'appareil dans la machine par défaut

Créé le 30 août 2015  ·  11Commentaires  ·  Source: docker/machine

Lorsque j'essaie de démarrer un conteneur Postgres sur la machine default sous OS X, j'obtiens cette erreur :

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /var/lib/postgresql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
FATAL:  could not write to file "base/12141/12065": No space left on device
STATEMENT:  CREATE DATABASE postgres;

child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/data"
copying template1 to postgres ...

Lorsque je ssh dans la machine en utilisant docker-machine ssh default et que j'exécute df -h , j'obtiens cette sortie :

tmpfs                     1.8G    112.4M      1.7G   6% /
tmpfs                  1001.4M    184.0K   1001.2M   0% /dev/shm
/dev/sda1                18.2G     17.2G     31.9M 100% /mnt/sda1
cgroup                 1001.4M         0   1001.4M   0% /sys/fs/cgroup
none                    237.3G    225.5G     11.9G  95% /Users
/dev/sda1                18.2G     17.2G     31.9M 100% /mnt/sda1/var/lib/docker/aufs
none                     18.2G     17.2G     31.9M 100% /mnt/sda1/var/lib/docker/aufs/mnt/e0289dcde7fa0113481a65379aca4d1a2455d1724164f7cd0aedc5a0222c226d
none                     18.2G     17.2G     31.9M 100% /mnt/sda1/var/lib/docker/aufs/mnt/1ad325fa03f9fac1b0a7134c19775aa61a0b971c227420fdecb14d19f8d067b8

En plus de recréer la machine : quelle est la meilleure façon d'obtenir plus d'espace ou de nettoyer les choses ?

Commentaire le plus utile

Peut-être avez-vous encore des volumes montés sur votre machine.

Je suggère d'exécuter ce conteneur pour nettoyer le tout :

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

Ici pour plus d'informations et de précautions : https://github.com/chadoe/docker-cleanup-volumes

Sachez que cela supprimera toutes vos données de volumes orphelins.

Tous les 11 commentaires

Après rm -ing tous les conteneurs et rmi -ing toutes les images, le résultat df -h ressemble à ceci :

Filesystem                Size      Used Available Use% Mounted on
tmpfs                     1.8G    112.4M      1.7G   6% /
tmpfs                  1001.4M         0   1001.4M   0% /dev/shm
/dev/sda1                18.2G     15.7G      1.5G  91% /mnt/sda1
cgroup                 1001.4M         0   1001.4M   0% /sys/fs/cgroup
none                    237.3G    226.0G     11.3G  95% /Users
/dev/sda1                18.2G     15.7G      1.5G  91% /mnt/sda1/var/lib/docker/aufs

Dès que je récupère des images pour Node.js et Postgres, l'espace disponible est presque épuisé à nouveau...

Peut-être avez-vous encore des volumes montés sur votre machine.

Je suggère d'exécuter ce conteneur pour nettoyer le tout :

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

Ici pour plus d'informations et de précautions : https://github.com/chadoe/docker-cleanup-volumes

Sachez que cela supprimera toutes vos données de volumes orphelins.

@Oliboy50 Merci, cela a fait l'affaire :+1:

filesystem                Size      Used Available Use% Mounted on
tmpfs                     1.8G    112.4M      1.7G   6% /
tmpfs                  1001.4M         0   1001.4M   0% /dev/shm
/dev/sda1                18.2G     77.3M     17.1G   0% /mnt/sda1
cgroup                 1001.4M         0   1001.4M   0% /sys/fs/cgroup
none                    237.3G    226.2G     11.1G  95% /Users
/dev/sda1                18.2G     77.3M     17.1G   0% /mnt/sda1/var/lib/docker/aufs

docker-cleanup-volumes ne fonctionnait pas sur ma configuration docker-machine (OSX également)

docker<strong i="6">@default</strong>:~/docker-cleanup-volumes$ docker run --rm -v /var/run/docker.sock
:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanu
p-volumes --dry-run

Delete unused volume directories from /var/lib/docker/volumes
In use 4423d5bdf1a2df1bd91083e0602f33271e30ff6b29cdb7297f94e95ce8e32c43
In use a4f95c3cd6a5b926b9dac6ff741ce35295771bc965c7f97dbedc6100838caa20

Directory /var/lib/docker/vfs/dir does not exist or is empty, skipping.

En raison du répertoire /var/lib/docker/vfs/dir n'existe pas ou est vide, il est ignoré.

@rodowi ça a marché sur le mien !

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

@kurenn Quand je cours, donne à nouveau no space left on device : 😢

Unable to find image 'martin/docker-cleanup-volumes:latest' locally
latest: Pulling from martin/docker-cleanup-volumes
e6c44a677827: Downloading [>                                                  ] 26.06 kB/2.492 MB
e665190e5bfd: Downloading [==================================================>] 5.371 MB/5.371 MB
3f134245a2ac: Downloading [==================================================>] 2.033 kB/2.033 kB
docker: open /mnt/sda1/var/lib/docker/tmp/GetImageBlob736093559: no space left on device.
See 'docker run --help'.

@jklemm Découvrez ce repo, cela a fonctionné pour moi aussi https://github.com/chadoe/docker-cleanup-volumes

Faites-moi savoir comment ça se passe, s'il vous plaît!

Pour ceux qui (comme moi) n'ont pas eu de succès avec docker-cleanup-volumes sur Mac OS X : vous pouvez utiliser une méthode plus "hardcore" pour tout nettoyer.
Tuer les conteneurs en cours d'exécution :
docker kill $(docker ps -qa)
Supprime-les:
docker rm -v $(docker ps -qa)
Supprimer toutes les images (j'ai éventuellement utilisé l'option -f pour forcer la suppression de tout):
docker rmi -f $(docker images -q)
J'espère que cela t'aides

@yaronius Cela a fonctionné pour moi :)

docker system prune -a -f --volumes.. postez cette commande, j'ai pu travailler.

@BensamV tu as raison

docker system prune -a --volumes est maintenant la méthode recommandée si vous voulez vraiment tout nettoyer

(contrairement à vous, je préfère supprimer l'option -f car cela peut conduire à un "oups... je ne voulais pas... oh merde 😭")

capture d ecran 2018-09-12 a 09 35 10

Cette page vous a été utile?
0 / 5 - 0 notes