web-dev-qa-db-fra.com

Comment contourner la limitation de taille de Docker.qcow2 dans Docker pour Mac?

J'ai une base de données volumineuse (100 Go +) que j'essaie de faire fonctionner avec le official postgres image .

Je ne peux pas stocker les données dans un volume de menu fixe car le fichier ~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/Docker.qcow2 dans Docker pour Mac a une taille limite d'environ 60 Go.

J'hésite à monter un répertoire hôte en tant que volume car l'accès aux fichiers dans les volumes de répertoire hôte montés est beaucoup plus lent que les volumes normaux.

Voici quelques liens utiles qui vont plus en détail sur ces questions:

  • Ceci discute de la limitation de taille du fichier Docker.qcow2
  • Ceci traite également de la limitation de taille du fichier Docker.qcow2
  • This discute du problème de vitesse de volume du répertoire de l'hôte monté
  • Ceci donne une bonne description de la procédure à suivre pour remplacer le fichier Docker.qcow2 par un fichier pouvant grossir
  • This explique comment le fichier Docker.qcow2 ne se réduit pas car son contenu est supprimé (ceci n'est pas directement lié, mais peut compliquer davantage le problème)

Est-ce que vous mangez tous la perte de vitesse et montez un répertoire Host? Créez-vous manuellement un fichier qcow2 qui peut s’agrandir avec qemu (si vous procédez ainsi, devez-vous conserver ce fichier entre les mises à niveau)? Faites-vous quelque chose d'autre pour gérer ce problème?

20
James Chevalier

Docker pour Mac 18.06 passe du format de fichier qcow2 au format de fichier brut, ce qui améliore la vitesse et l'utilisation du disque. Le problème principal persiste, Docker ne disposant que d’une quantité limitée d’espace pour toutes ses données. Cependant, vous pouvez maintenant définir quelle est cette limite dans Préférences -> Disque -> Taille de l'image du disque.

La version Docker pour Mac 17.12 a été la première version à introduire le format de fichier brut, mais la version initiale comportait des bogues qui l’ont supprimée temporairement. Vous pouvez rechercher «brute» sur cette page pour revenir en arrière dans l'historique de la fonctionnalité.

Il y a une bonne note ici sur la façon dont Docker pour Mac rapporte l'utilisation de son disque ...

Cela affichera la taille logique:

ls -alh ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

Bien que cela affiche la taille physique:

du -h ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

0
James Chevalier

Le script suivant supprime et recrée un nouveau fichier Docker.qcow2 rétréci en conservant les images transmises en tant qu'arguments.

https://blog.mrtrustor.net/post/clean-docker-for-mac/

J'espère que cela t'aides.

2
obe6

Pour une situation comme celle-ci, je recommanderais certainement de créer une image qcow pouvant s’agrandir.

Il s'agit d'un processus relativement simple et vous obtenez les avantages en termes de performances généralement nécessaires pour exécuter une base de données volumineuse.

1
programmerq