2016-05-23 8 views
1

Ich habe versucht, eine Grafik-Datenbank mit Orientdb einrichten. Also habe ich versucht Bände durch den folgenden BefehlUbuntu 14.04 Volume Festplatte voll durch Docker Daten

docker run -d -p 2424:2424 -p 2480:2480  -v config:/orientdb/config  -v database:/orientdb/databases  -v backup:/orientdb/backup  -e ORIENTDB_ROOT_PASSWORD=mypasswdhere  orientdb:latest 

Mein Hauptmotiv hinter der Verwendung Volumen wurde unter Verwendung von Daten in Datenbank zu speichern, nachdem ich den Behälter zu töten.
Aber ich habe diesen Befehl häufig verwendet, um den Server zu starten.

Jetzt hat es meinen Speicherplatz beschlagnahmt, also denke ich, es erstellt eine neue Kopie jedes Mal, wenn dieser Befehl ausgeführt wird.

Kann jemand eine korrekte Methode angeben, um vorhandene Datenträger zu verwenden, um gespeicherte Daten in Docker zu verwenden, und um die redundanten Daten zu bereinigen, die durch häufige Ausführung dieses Befehls erstellt wurden?

+0

Es gibt Bereinigungsbefehl für Container, Bilder und Volumes. habe diese im Moment nicht in meinem Gedächtnis, aber Sie können leicht sesrch, imo – YOU

Antwort

2

Sie können genannt Bände mit docker volume create

$ docker volume create --name hello 
$ docker run -d -v hello:/world busybox ls /world 

Auf diese Weise nur ein Volumen in/var/lib/Docker/Volumes wird jedes Mal, wenn Sie diesen Container starten erstellt werden.
Siehe auch "Mount a shared-storage volume as a data volume".

In der Zwischenzeit zu remove dangling volumes:

docker volume ls -qf "dangling=true" | xargs docker volume rm 
+0

Ich möchte darauf hinweisen, dass ich nie Befehl wie 'docker Volume create --name hallo' verwendet, um das neue Volume hinzuzufügen, aber ich verwende direkt ' docker run -d -p 2424: 2424 -p 2480: 2480 -v konfig:/orientdb/config -v datenbank:/orientdb/datenbanken -v backup:/orientdb/backup -e ORIENTDB_ROOT_PASSWORD = mypasswdhere orientdb: neustes 'zu laufen meine Datenbank jedes Mal ist das ein Problem, weil ich viel alphanumerischen Volume-Namen sehe außer "Config", "Backup" und Datenbank (die ich gab), wenn ich "Docker Volume ls" -Befehl ausführen. Ist das ein Problem? –

+0

@Abhimanyu In diesem Fall würden Sie einen lokalen Host-Ordner "Config" an:/orientdb/config mounten. Am besten erstellen Sie ein benanntes Volume und mounten dieses Volume. – VonC

+0

@Abhimanyu Ich denke immer noch, dass das Erstellen eines benannten Volumes es Ihnen ermöglichen würde, es wiederzuverwenden, egal wie Sie Ihren Container erstellen oder wiederverwenden. Mit anderen Worten, Sie wählten zunächst die richtige Antwort;) – VonC

1

Soweit ich verstehe, sind Sie den Behälter nicht wieder verwenden, starten Sie stattdessen einen neuen jedes Mal. Nach dem ersten Lauf können Sie stoppen und starten Sie es mit Docker Stop/Start-Befehle.

+0

Ja, ich glaube, Sie sind gerade jetzt Ich benutze Start und Stop, um im gleichen Container bis zur Ewigkeit zu arbeiten :) –