Docker: Wolumeny

Jak zachować dane kontenerów za pomocą wolumenów Docker

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Docker cloud CaaS (Containers as a Service), które zapewnia wiele korzyści, w tym:

  • Łatwe wdrażanie kontenerów do produkcji za pomocą prostego docker-compose up.
  • Dostosowywana nazwa domeny zabezpieczona HTTPS (na przykład, https://api.twoja-firma.com, https://www.twoja-firma.com, https://backoffice.twoja-firma.com).
  • Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
  • Bezproblemowe aktualizacje za pomocą jednego kliknięcia.

Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Docker CaaS cloud hosting Stackhero i wdrożyć swoje kontenery do produkcji!

Z założenia kontenery Docker są efemeryczne. Oznacza to, że wszelkie dane przechowywane bezpośrednio w nich zostaną utracone, gdy kontener zostanie usunięty lub zastąpiony inną instancją. Aby zapewnić trwałość danych, zaleca się używanie wolumenów Docker.

Nie używaj powiązań bind mounts na Stackhero. Zawsze wybieraj wolumeny Docker, aby zapobiec utracie danych.

Powiązania bind mounts polegają na połączeniu katalogu z hosta VM Stackhero z kontenerem. Jednakże, jeśli polegasz na powiązaniach bind mounts, aktualizacja instancji Stackhero for Docker spowoduje utratę wszystkich danych przechowywanych w ten sposób.

Powiązania bind mounts są zazwyczaj określane w poleceniu docker run z taką składnią jak -v /myDirectory:/mnt (zwróć uwagę na wiodący /). W plikach Docker Compose pojawiają się jako volumes: /myDirectory:/mnt. Zabroń tych konfiguracji, inaczej stracisz swoje dane.

Zamiast tego używaj wolumenów Docker, które są zarządzane przez Docker i nie odnoszą się do ścieżek absolutnych.

Podsumowując:

Niepoprawne podejście:

docker run -it -v /myDirectory:/mnt alpine

Poprawne podejście:

docker volume create myVolume
docker run -it -v myVolume:/mnt alpine

Podczas pracy z plikami Docker Compose:

Niepoprawna konfiguracja:

services:
  myService:
    image: alpine
    volumes:
      - /myDirectory:/mnt

Poprawna konfiguracja:

services:
  myService:
    image: alpine
    volumes:
      - myVolume:/mnt

volumes:
  myVolume:
    name: myVolume

Oto szybki przewodnik po zarządzaniu wolumenami Docker:

  • Aby utworzyć nowy wolumen o nazwie myVolume, uruchom:

    docker volume create myVolume
    
  • Aby wyświetlić listę wszystkich istniejących wolumenów:

    docker volume ls
    
  • Aby usunąć konkretny wolumen o nazwie myVolume:

    docker volume rm myVolume
    

    Uwaga: Usunięcie wolumenu spowoduje trwałe usunięcie wszystkich danych w nim przechowywanych i nie ma możliwości ich odzyskania.