Comment changer le répertoire de données de Docker où docker enregistre le conteneur (ou où lxc enregistre le conteneur)? J'ai dans mon serveur un SSD et un disque dur et je veux que le conteneur sera sauvegardé sur le disque dur. Merci
Je crois que dans ce guide vous aurez une bonne explication.
Vous pouvez modifier le répertoire de base de stockage de Docker (où sont contenus le conteneur et les images) à l'aide de l'option -g lors du démarrage du démon Docker.
Ubuntu/Debian: éditez votre fichier
/etc/default/docker
avec l’option-g
:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora/Centos: éditez
/etc/sysconfig/docker
et ajoutez l’option-g
dans la variable other_args: ex.other_args="-g /var/lib/testdir"
. S'il y a plus d'une option, assurez-vous de les inclure dans "". Après un redémarrage (redémarrage du docker de service), Docker doit utiliser le nouveau répertoire.L'utilisation d'un lien symbolique est une autre méthode pour modifier le stockage des images.
Attention - Ces étapes dépendent du fait que votre/var/lib/docker actuel est un répertoire réel (et non un lien symbolique vers un autre emplacement).
1) Arrêtez le menu fixe:
service docker stop
. Vérifiez qu'aucun processus de menu fixe n'est en cours d'exécution ps faux2) Le double menu de contrôle ne fonctionne pas vraiment. Examinez le répertoire actuel du menu fixe: ls
/var/lib/docker/
2b) Faites une sauvegarde -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
3) Déplacez le répertoire
/var/lib/docker
vers votre nouvelle partition:mv /var/lib/docker /mnt/pd0/docker
4) Créez un lien symbolique:
ln -s /mnt/pd0/docker /var/lib/docker
5) Jetez un coup d’œil à la structure de répertoires pour vous assurer qu’elle ressemble à ce qu’elle était avant le mv:
ls /var/lib/docker/
(notez la fin de la barre6) Lancer la sauvegarde du docker
service docker start
7) redémarrez vos conteneurs (résolvez le lien symbolique)
Dans les versions plus récentes de Docker sur Ubuntu, vous éditerez /etc/default/daemon.json comme suit:
{
"data-root": "/new/location"
}
Pour développer la réponse de @ MattK:
La documentation de Docker sur le contrôle du démon Docker suggère que cette manière indépendante de la plate-forme de procéder est la suivante:
éditez le fichier /etc/docker/daemon.json pour qu'il contienne la ligne
{
"data-root": "/mnt/docker-data",
(...)
}
où /mnt/docker-data
est le répertoire dans lequel vous voulez que les images et les conteneurs de docker résident.
Ensuite
Sudo systemctl restart docker
Vous pouvez vérifier si cela a fonctionné en exécutant
docker info
et recherchez le contenu de la ligne commençant par Docker Root Dir:
.
Voir aussi https://stackoverflow.com/a/50217666/220931 et https://unix.stackexchange.com/q/452368/3604 .
Pour changer le répertoire data
dans docker
il doit être exécuté avec l’option -g /my/data
. Dans mon /etc/default/docker
j'ai mis:
DOCKER_OPTS="-g /srv/docker"
Voir aussi mes notes ici .
Pour changer le répertoire data
dans lxc
j’ai mis dans /etc/lxc/lxc.conf
:
lxc.lxcpath = /srv/lxc
Passez à Docker 1.13.0.
À partir des notes de publication:
- New
The storage location of the Linux volume can now be moved