Jak mogę zmienić katalog danych Dockera, w którym doker zapisuje kontener (lub gdzie LXC zapisuje kontener)? Mam na swoim serwerze dysk SSD i dysk twardy i chcę, aby kontener został zapisany na dysku twardym. Dzięki
Wierzę, że w tym przewodniku znajdziesz dobre wyjaśnienie.
Możesz zmienić katalog podstawowy pamięci Dockera (tam, gdzie idą kontener i obrazy), używając opcji -g podczas uruchamiania demona Docker.
Ubuntu / Debian: edytuj
/etc/default/docker
plik z-g
opcją:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora / Centos: edytuj
/etc/sysconfig/docker
i dodaj-g
opcję w zmiennej other_args: np.other_args="-g /var/lib/testdir"
. Jeśli jest więcej niż jedna opcja, upewnij się, że umieścisz je w „”. Po ponownym uruchomieniu, (restart dokera usługi) Docker powinien użyć nowego katalogu.Użycie dowiązania symbolicznego to kolejna metoda zmiany przechowywania obrazów.
Uwaga - Kroki te zależą od tego, czy bieżący katalog / var / lib / docker jest rzeczywistym katalogiem (a nie dowiązaniem symbolicznym do innej lokalizacji).
1) Zatrzymanie doker:
service docker stop
. Sprawdź, czy w żadnym procesie dokera nie działa ps faux2) Doker Double Check naprawdę nie działa. Spójrz na bieżący katalog dokerów: ls
/var/lib/docker/
2b) Wykonaj kopię zapasową -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
3) Przenieś
/var/lib/docker
katalog na nową partycję:mv /var/lib/docker /mnt/pd0/docker
4) Utwórz dowiązanie symboliczne:
ln -s /mnt/pd0/docker /var/lib/docker
5) Rzuć okiem na strukturę katalogów, aby upewnić się, że wygląda tak, jak przed mv:
ls /var/lib/docker/
(zwróć uwagę na ukośnik końcowy na6) Uruchom ponownie okno dokowane
service docker start
7) zrestartuj swoje pojemniki, usuń dowiązanie symboliczne)
W nowszych wersjach Docker na Ubuntu będziesz edytować /etc/default/daemon.json tak:
źródło
Aby zmienić
data
katalog wdocker
nim należy uruchomić z opcją-g /my/data
. W moim/etc/default/docker
ustawiłem:DOCKER_OPTS="-g /srv/docker"
Zobacz także moje notatki tutaj .
Aby zmienić
data
katalog wlxc
, wstawiam/etc/lxc/lxc.conf
:lxc.lxcpath = /srv/lxc
źródło
Uaktualnij do Docker 1.13.0.
Z informacji o wersji:
źródło
Aby rozwinąć odpowiedź @ MattK:
Dokumentacja Docker dotycząca kontrolowania demona Docker sugeruje, że sposobem niezależnym od platformy jest:
edytuj plik /etc/docker/daemon.json, aby zawierał linię
gdzie
/mnt/docker-data
jest katalog, w którym mają mieszkać obrazy dokerów i kontenery.Następnie
Możesz sprawdzić, czy zadziałało, uruchamiając
i poszukaj zawartości linii zaczynającej się od
Docker Root Dir:
.Zobacz także https://stackoverflow.com/a/50217666/2209313 i https://unix.stackexchange.com/q/452368/36043 .
źródło