Startpagina > Overige externe pakketten > docker volume

Gids voor Docker Volume-commando's

Docker-volumes zijn het aanbevolen mechanisme voor het permanent opslaan van gegevens die worden gegenereerd en gebruikt door Docker-containers. Zelfs als een container wordt verwijderd, blijven de gegevens die in het volume zijn opgeslagen behouden, zodat u containers kunt beheren zonder gegevensverlies. Deze gids behandelt hoe u Docker-volumes kunt maken, beheren en verwijderen.

Overzicht van Docker-volumes

Een Docker-volume is een directory of bestand dat wordt gekoppeld aan een specifiek pad in het bestandssysteem van de host. Het stelt gegevens in staat om onafhankelijk van de levenscyclus van de container te worden beheerd, wat flexibeler en efficiënter is dan het bundelen van gegevens met de container-image. Volumes kunnen ook gelijktijdig door meerdere containers worden gedeeld.

Waarom volumes nodig zijn

Containers zijn van nature vluchtig. Dit betekent dat wanneer een container wordt verwijderd, alle gegevens die erin zijn opgeslagen ook verloren gaan. Om belangrijke gegevens zoals databases, logbestanden of door gebruikers geüploade bestanden permanent te bewaren, moet u volumes gebruiken. Volumes lossen dit probleem op, waardoor de stabiliteit en flexibiliteit van op containers gebaseerde applicaties wordt verbeterd.

Voordelen van volumes

De belangrijkste voordelen van het gebruik van Docker-volumes zijn als volgt:

  • Gegevenspersistentie: Gegevens blijven behouden, zelfs als de container wordt verwijderd.
  • Gegevens delen: Meerdere containers kunnen hetzelfde volume delen om toegang te krijgen tot gegevens.
  • Prestaties: Het kan betere I/O-prestaties bieden dan bind mounts.
  • Portabiliteit: Volumes zijn niet opgenomen in het Dockerfile, waardoor images lichter blijven.
  • Back-up/Herstel: Volumes kunnen eenvoudig worden geback-upt en hersteld.

Belangrijke Docker Volume-commando's

Laten we verschillende commando's verkennen voor het efficiënt beheren van Docker-volumes. Probeer elke optie te combineren om volumes te maken, te inspecteren, te verwijderen en te verbinden met containers.

1. Volumes maken en weergeven

2. Volumes verwijderen

3. Een volume verbinden met een container

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`docker volume` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Soorten volumes

In Docker zijn er twee primaire soorten koppelingen om gegevens met containers te verbinden: Volumes en Bind mounts. Elk heeft verschillende gebruikssituaties en kenmerken.

1. Volumes

Dit is de meest geprefereerde methode voor het permanent opslaan van gegevens in Docker. Het wordt opgeslagen in een specifiek gedeelte van het bestandssysteem van de host dat door Docker wordt beheerd.

  • Creatie en beheer: Ze worden gemaakt en beheerd via de Docker CLI, met behulp van de `docker volume`-commando's.
  • Locatie: Opgeslagen in het `/var/lib/docker/volumes/`-pad van de host. Het wordt niet aanbevolen dat gebruikers dit interne pad rechtstreeks benaderen.
  • Kenmerken: Ze zijn onafhankelijk van de levenscyclus van de container en kunnen worden gedeeld door meerdere containers. Ze bieden prestatievoordelen, met name in Docker Desktop.

2. Bind mounts

Elke locatie op het bestandssysteem van de host kan binnen een container worden gekoppeld. Dit is handig voor directe toegang tot de bestandssysteemstructuur van de host.

  • Creatie en beheer: Ze zijn direct afhankelijk van het bestandssysteem van de host en worden niet expliciet beheerd door Docker.
  • Locatie: Elke directory of elk bestand op het bestandssysteem van de host kan in een container worden gekoppeld.
  • Kenmerken: Ze zijn voornamelijk nuttig in ontwikkelomgevingen voor het koppelen van broncode aan een container om wijzigingen in realtime te reflecteren, of wanneer een container een specifiek configuratiebestand van de host moet gebruiken.

Gebruiksvoorbeelden

Begrijp hoe u gegevenspersistentie beheert door verschillende scenario's te verkennen waarin Docker-volume-commando's praktisch worden toegepast.

Een benoemd volume maken en gebruiken

docker volume create my_db_data
docker run -d --name my-mysql --mount source=my_db_data,target=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword mysql:latest

Maakt een volume met de naam 'my_db_data' en koppelt het aan het gegevensopslagpad van een MySQL-container. De DB-gegevens blijven behouden, zelfs als de container wordt verwijderd.

Een hostdirectory koppelen met een bind mount

docker run -d --name my-nginx-dev -p 80:80 --mount type=bind,source=/path/to/my/app,target=/usr/share/nginx/html nginx:latest

Koppelt de huidige directory van de host (`/path/to/my/app`) aan de webservicedirectory van een Nginx-container (`/usr/share/nginx/html`), zodat wijzigingen die in bestanden op de host worden aangebracht onmiddellijk in de container worden weerspiegeld.

Alle ongebruikte volumes verwijderen

docker volume prune

Maakt schijfruimte vrij door alle Docker-volumes te verwijderen die niet aan een container zijn gekoppeld. Er wordt een bevestigingsbericht weergegeven.

Een specifiek volume geforceerd verwijderen (Waarschuwing)

docker volume rm -f old_volume

Verwijdert geforceerd een volume met de naam 'old_volume', ongeacht of het in gebruik is of niet. Dit moet met uiterste voorzichtigheid worden gebruikt, aangezien het kan leiden tot gegevensverlies.


Hétzelfde categoriecommando