Zmień katalog danych Dockera


8

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

Odpowiedzi:


11

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/dockerplik z -gopcją:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"

Fedora / Centos: edytuj /etc/sysconfig/dockeri dodaj -gopcję 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 faux

2) 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/dockerkatalog 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 na

6) Uruchom ponownie okno dokowane service docker start

7) zrestartuj swoje pojemniki, usuń dowiązanie symboliczne)


jaki jest powód 4)? Czy to jest potrzebne W moim przypadku chciałbym, aby pliki dokerów znajdowały się na zamontowanym macierzy RAID, a nie na partycji rozruchowej.
Roman Mik

9

W nowszych wersjach Docker na Ubuntu będziesz edytować /etc/default/daemon.json tak:

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

2

Aby zmienić datakatalog w dockernim należy uruchomić z opcją -g /my/data. W moim /etc/default/dockerustawiłem:

DOCKER_OPTS="-g /srv/docker"

Zobacz także moje notatki tutaj .

Aby zmienić datakatalog w lxc, wstawiam /etc/lxc/lxc.conf:

lxc.lxcpath = /srv/lxc


1

Uaktualnij do Docker 1.13.0.

Z informacji o wersji:

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

1

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ę

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

gdzie /mnt/docker-datajest katalog, w którym mają mieszkać obrazy dokerów i kontenery.

Następnie

sudo systemctl restart docker

Możesz sprawdzić, czy zadziałało, uruchamiając

docker info

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 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.