Docker: Nie używaj powiązań Docker bind mounts

Ta dokumentacja jest częścią przewodnika Wolumeny. Pełny przewodnik znajdziesz tutaj: 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!

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