Docker: Wolumeny

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

Witamy w dokumentacji Stackhero

Stackhero oferuje gotową do użycia platformę Docker cloud CaaS (Containers as a Service), zaprojektowaną z myślą o szybkich i niezawodnych wdrożeniach kontenerów:

  • Wdrażaj do produkcji za pomocą pojedynczego polecenia docker-compose up. Nie jest wymagana żadna dodatkowa konfiguracja: po prostu uruchom swoje kontenery.
  • Wybierz własną nazwę domeny, automatycznie zabezpieczoną przez HTTPS (na przykład: https://api.twoja-firma.com, https://www.twoja-firma.com lub https://backoffice.twoja-firma.com).
  • Korzystaj z wysokiej wydajności i solidnego poziomu bezpieczeństwa na prywatnej, dedykowanej infrastrukturze.
  • Aktualizuj środowisko jednym kliknięciem, co zapewnia prostą i bezproblemową konserwację.

Twoje kontenery mogą działać w środowisku produkcyjnym już w około pięć minut. Stackhero zarządza infrastrukturą, aktualizacjami i bezpieczeństwem za Ciebie, dzięki czemu możesz skupić się na dostarczaniu swoich aplikacji. Dowiedz się więcej o hostingu Docker CaaS w chmurze.

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.