web-dev-qa-db-fra.com

Changer le répertoire de données de Docker

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

9
ssd_rider

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 faux

2) 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 barre

6) Lancer la sauvegarde du docker service docker start

7) redémarrez vos conteneurs (résolvez le lien symbolique)

11
Conrado Fonseca

Dans les versions plus récentes de Docker sur Ubuntu, vous éditerez /etc/default/daemon.json comme suit:

{
    "data-root": "/new/location"
}
9
MattK

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",
    (...)
}

/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 .

1
Wandering Logic

Pour changer le répertoire datadans dockeril 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 datadans lxcj’ai mis dans /etc/lxc/lxc.conf:

lxc.lxcpath = /srv/lxc

1
Stuart Cardall

Passez à Docker 1.13.0.

À partir des notes de publication:

- New
The storage location of the Linux volume can now be moved
1
Snowcrash