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 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.

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