Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Docker – Verwendung von Volume

Veröffentlicht am 15. August 2018 von Christian Piazzi 2 Kommentare , Aktualisiert am 22. Juni 2020
Geschätzte Lesezeit: 1 Minute

Docker bind mounts - Gestapelte Container

Wenn man sich mit Container beschäftigt kommt irgendwann der Punkt, wo man Daten außerhalb des Containers ablegen möchte um zum Beispiel diese in einen anderen Container einbinden zu können. Um dies zu bei Docker zu realisieren, kann ein sogenanntes Volume erstellen. Wie man dies genau macht, schauen wir uns nun hier im Artikel an.

Inhaltsverzeichnis

Warum Volume anstelle von bind mounts?

Es gibt ein paar sinnvolle Gründe, warum man Volumes anstelle von bind mounts verwenden sollte. Hier mal eine kleine Liste

  • Volumes sind einfacher zu sichern oder zu migrieren als bind mounts
  • Volumes können mit Docker CLI-Befehlen oder der Docker-API verwaltet werden.
  • Volumes funktionieren sowohl auf Linux- als auch auf Windows-Containern.
  • Volumes können sicherer auf mehrere Container verteilt werden.
  • Mit Volume-Treibern können Sie Volumes auf entfernten Hosts oder Cloud-Providern speichern, um den Inhalt von Volumes zu verschlüsseln oder andere Funktionen hinzuzufügen.
  • Neue Volumes können durch einen Container vorbestückt werden.

Ich denke es sind eine gute Gründe dabei, warum man sich mit Volumes beschäftigen sollte.

Anlegen eines Docker Volume

Als erstes müssen wir ein Volume anlegen, welches wir in einem Docker Container einbinden können.

1
2
docker volume create vol1
vol1

Dieses Volume kann man sich mit docker volumes ls anzeigen lassen.

1
2
3
4
5
6
docker volume ls
DRIVER              VOLUME NAME
local               a9d89e372b08fe51a1c1f310971a9bef5ceb0f7d93c55d7aeaa4436a7fd27c69
local               d13a76d8c6192b5409c6729c217c5a8ad1feb5453a06a3c834097144c9bf7b08
local               dd0f6e7a1d3cb321c23eecbccc9e7f9ddf5ab447d70bde576821d802c4f214b6
local               vol1

Will man etwas genauere Informationen zu einem Volume haben, kann man sich diese mit dem Befehl docker volume inspect anzeigen lassen.

1
2
3
4
5
6
7
8
9
10
11
12
docker volume inspect vol1
[
    {
        "CreatedAt": "2018-07-26T15:25:26Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/vol1/_data",
        "Name": "vol1",
        "Options": {},
        "Scope": "local"
    }
]

Starten eines Container mit Docker Volume

Damit ein Volume einen Container zugeordnet werden kann, verwendet man den Parameter –mount. Diesem Parameter gibt man dann über source und target die benötigten Pfadangaben mit. Das ganze sieht dann so aus.

1
2
docker run -d  --name test_vol --mount source=vol1,target=/mnt redis:latest
dfdd9325b435394be7ff8343848a61f23decfe6d93323bc754b35db6c7c39def

Wenn man sich den laufenden Container nun mit docker inspect anschaut, sieht man das im Abschnitt Mounts unser Volume vol1 mit aufgelistet wird. Das heißt es steht innerhalb des Containers zur Verfügung.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"Mounts": [
            {
                "Type": "volume",
                "Name": "vol1",
                "Source": "/var/lib/docker/volumes/vol1/_data",
                "Destination": "/mnt",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "1a3cafe7c2c6ddae60780c5046bb36cce6ee2a322317c0592e43005a0ad80f7a",
                "Source": "/var/lib/docker/volumes/1a3cafe7c2c6ddae60780c5046bb36cce6ee2a322317c0592e43005a0ad80f7a/_data",
                "Destination": "/data",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],

Kategorie: DevOps, Docker Tags: mount, Speicher, Storage, Volume

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Kommentare

  1. Iljas meint

    12. September 2019 um 21:16

    Würdest du immernoch –mount verwenden oder mittlerweile eher -v zum einbinden von Volumes in einen Container?

    Antworten

Trackbacks

  1. Docker Swarm unter CentOS installieren - Modius - Techblog sagt:
    14. September 2020 um 09:19 Uhr

    […] Service erstellt wird, definieren wir den optimalen Zustand des Services (Anzahl Replicas, Ports, Volumes, […]

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden