Andockfenster namens Volumen vs DOC (data-only Container)
Bis zu letzten version von Docker (v1.10), waren wir dachte, wir können DOC: data-only Container. Also ich würde wie DOC (basierend auf z.B. busybox) und verwenden --volumes-from
für die Verbindung zu meinem container. Können Sie noch Lesen Sie dazu im Docker Dokumentation.
Mit der neuen version von docker, es wird gesagt, dass anstelle der DOC wir sollten Sie nutzen named volumes
. Hier ist ein Beispiel von docker-compose.yml
:
version: '2'
services:
elasticsearch:
image: elasticsearch:2.2.0
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9201:9200"
volumes:
- "es-data:/usr/share/elasticsearch/data"
volumes:
es-data:
Hier haben wir erstellt und benannt Volumen es-data
.
Gibt es noch nicht viel Dokumentation zu dieser neuen Funktion. Ich Frage:
- Ersetzen wir DOC mit dem Namen-Container? Wie lange Volumen beibehalten wird? Was ist, wenn ich entfernen Sie den Behälter, der verwendet wird?
- Wie können wir z.B. jetzt sichern? Bisher konnte ich
docker run --rm --volumes-from es-data ...
und danntar
es.
- "Können wir ersetzen..."? - siehe github.com/docker/docker/issues/17798#issuecomment-154815207
- FYI "basierend auf z.B. busybox" - es gilt als falsch, check Daten-nur container-Wahnsinn
Du musst angemeldet sein, um einen Kommentar abzugeben.
In vielen Fällen, ja, benannt Container wird eine bessere option sein.
Wenn Sie entfernen die container, die Lautstärke wird noch da sein. Der einzige Weg, um das volume zu entfernen, ist die Verwendung
docker-compose down -v
oderdocker volume rm <volume name>
.Statt
--volumes-from
verwenden, können Sie--volume=<volume name>
.Beachten Sie, dass Volumen von
docker-compose
sind immer mit einem Präfix den Namen des Projekts, so, wenn Sie es mit einerdocker
Befehl, der vollständige name ist eigentlich<project_name>_es-data
.-v learnintouch-data:/usr/bin/mysql/install/data
statt-v /home/stephane/dev/php/learnintouch/docker/mysql/data:/usr/bin/mysql/install/data
. Aber Wann kann ich assoziiere den Namen des Datenträgerslearnintouch-data
mit dem host-Standort auf/home/stephane/dev/php/learnintouch/docker/mysql/data
?