Cambia la directory dei dati di Docker


8

Come posso cambiare la directory dei dati di Docker in cui la finestra mobile salva il contenitore (o dove lxc salva il contenitore)? Ho nel mio server un SSD e una formica disco rigido voglio che il contenitore verrà salvato sul disco rigido. Grazie

Risposte:


11

Credo che in questa guida avrai una buona spiegazione.

È possibile modificare la directory della base di archiviazione di Docker (dove vanno il contenitore e le immagini) usando l'opzione -g all'avvio del daemon Docker.

Ubuntu / Debian: modifica il tuo /etc/default/dockerfile con l' -gopzione:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"

Fedora / Centos: modifica /etc/sysconfig/dockere aggiungi l' -gopzione nella variabile other_args: es. other_args="-g /var/lib/testdir". Se esiste più di un'opzione, assicurati di racchiuderla tra "". Dopo il riavvio, (riavvio della finestra mobile di servizio) La finestra mobile dovrebbe utilizzare la nuova directory.

L'uso di un collegamento simbolico è un altro metodo per modificare la memorizzazione delle immagini.

Attenzione: questi passaggi dipendono dal fatto che l'attuale / var / lib / docker sia una directory effettiva (non un collegamento simbolico a un'altra posizione).

1) Arrestare finestra mobile: service docker stop. Verifica che nessun processo docker stia eseguendo ps faux

2) La finestra mobile doppio controllo non funziona davvero. Dai un'occhiata alla directory docker corrente: ls/var/lib/docker/

2b) Effettua un backup - tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz

3) Spostare la /var/lib/dockerdirectory nella nuova partizione:mv /var/lib/docker /mnt/pd0/docker

4) Crea un collegamento simbolico: ln -s /mnt/pd0/docker /var/lib/docker

5) Dai un'occhiata alla struttura della directory per assicurarti che sia simile a prima del mv: ls /var/lib/docker/(nota la barra finale per

6) Avviare il docker di backup service docker start

7) riavviare i contenitori, risolvere il collegamento simbolico)


qual è la ragione per 4)? È necessario? Nel mio caso, vorrei che i file docker fossero su un RAID montato e non sulla partizione di avvio.
Roman Mik,

9

Nelle versioni Docker più recenti su Ubuntu modificherai /etc/default/daemon.json in questo modo:

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

2

Per modificare la datadirectory in dockeresso deve essere eseguito con l'opzione -g /my/data. Nel mio /etc/default/dockerset:

DOCKER_OPTS="-g /srv/docker"

Vedi anche le mie note qui .

Per cambiare la datadirectory in lxcho inserito /etc/lxc/lxc.conf:

lxc.lxcpath = /srv/lxc


1

Aggiorna a Docker 1.13.0.

Dalle note di rilascio:

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

1

Per espandere la risposta di @ MattK:

La documentazione Docker sul controllo del demone Docker suggerisce che il modo indipendente dalla piattaforma per farlo è:

modificare il file /etc/docker/daemon.json per contenere la riga

{
    "data-root": "/mnt/docker-data",
    (...)
}

dove si /mnt/docker-datatrova la directory in cui si desidera vivere le immagini e i contenitori della finestra mobile.

Poi

sudo systemctl restart docker

Puoi verificare se ha funzionato eseguendo

docker info

e cerca il contenuto della riga che inizia con Docker Root Dir:.

Vedi anche https://stackoverflow.com/a/50217666/2209313 e https://unix.stackexchange.com/q/452368/36043 .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.