Docker: Volumes

Hoe u de gegevens van uw containers kunt behouden met Docker-volumes

👋 Welkom bij de documentatie van Stackhero!

Stackhero biedt een kant-en-klare Docker cloud CaaS (Containers as a Service) oplossing die tal van voordelen biedt, waaronder:

  • Zet eenvoudig uw containers in productie met slechts een docker-compose up.
  • Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://api.uw-bedrijf.com, https://www.uw-bedrijf.com, https://backoffice.uw-bedrijf.com).
  • Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
  • Moeiteloze updates met slechts één klik.

Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Docker CaaS cloud hosting oplossing van Stackhero te proberen en uw containers in productie te zetten!

Docker-containers zijn van nature vluchtig. Dit betekent dat alle gegevens die direct binnenin worden opgeslagen, verloren gaan wanneer de container wordt verwijderd of vervangen door een andere instantie. Om gegevenspersistentie te garanderen, worden Docker-volumes aanbevolen.

Gebruik geen bind mounts op Stackhero. Kies altijd voor Docker-volumes om dataverlies te voorkomen.

Bind mounts houden in dat een directory van de Stackhero-host-VM aan een container wordt gekoppeld. Als u echter op bind mounts vertrouwt, zal het bijwerken van uw Stackhero for Docker-instantie resulteren in het verlies van alle op deze manier opgeslagen gegevens.

Bind mounts worden meestal gespecificeerd in de docker run-opdracht met een syntaxis zoals -v /myDirectory:/mnt (let op de voorloop /). In Docker Compose-bestanden verschijnen ze als volumes: /myDirectory:/mnt. Verbied deze configuraties of u verliest uw gegevens.

Gebruik in plaats daarvan Docker-volumes, die door Docker worden beheerd en geen absolute paden refereren.

Samenvattend:

Onjuiste aanpak:

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

Juiste aanpak:

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

Bij het werken met Docker Compose-bestanden:

Onjuiste configuratie:

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

Juiste configuratie:

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

volumes:
  myVolume:
    name: myVolume

Hier is een snelle referentie voor het beheren van Docker-volumes:

  • Om een nieuw volume genaamd myVolume te maken, voert u uit:

    docker volume create myVolume
    
  • Om alle bestaande volumes te vermelden:

    docker volume ls
    
  • Om een specifiek volume genaamd myVolume te verwijderen:

    docker volume rm myVolume
    

    Opmerking: Het verwijderen van een volume zal alle gegevens die erin zijn opgeslagen permanent verwijderen, en er is geen manier om deze later terug te halen.