2017-02-09 1 views
0

Ich habe eine Testdaten, die ich als ein Docker-Bild (Docker bauen mit Kopie nach/db/data) erstellt und an Docker-Hub geschoben.Binden von Daten an einen DB-Container

Ich möchte eine DB-Instanz ausführen, die diese Daten verwendet.

ich erwarten würde in der Lage sein:

  1. Lauf einen „Docker erstellen“ und einen Container von Bild erstellen und auf ein Volumen Karte (vielleicht genannt Volumen), die praktisch die Daten an, dass kopiert Volumen.
  2. führen Sie einen "Docker Run" mit Volumes aus und ordnen Sie diese Daten vom ersten Container auf den zweiten zu.

Als ich es ausprobiert, ich sehe immer, dass im zweiten Verzeichnis ein Ordner-Mapping, aber ich kann alle bereits bevölkerten Daten aus dem Datencontainer nicht erreichen.

Antwort

0

--volumes-from fügt "Volume" von einem Andock-Container zu einem anderen hinzu.

In Ihrem Fall, dass Sie ein Bild erstellt, die Ihre Daten enthält, den Ball hielt Sie erstellen Volumen, die Ihre Daten enthält.

Docker unterstützt derzeit die folgenden:

  • eine Host-bind Halterung, die aufgeführt wird als bind in beide Dienste montieren
  • ein benannter Volumen, das
  • von beiden Diensten
  • volumes_from einen anderen Dienst verwendet wird,

zum Beispiel, wenn Sie Ihre Daten in/my/Daten auf docker Host können Sie die folgende verwenden:

sudo docker run -d --name firstcontainer -v /my/data:/db/data <image name> 
sudo docker run -d --name secondcontainer -v /my/data:/db/data <image name> 

Wenn Sie benannte Mengen verwenden, gehen Sie folgendermaßen vor:

  1. erstellen den genannten Datenträger

    sudo docker volume create <volumename> 
    
  2. Berg es zu einem Übergangs-Container und kopieren Sie Ihre Daten in es mit docker cp

    sudo docker cp /path/to/your/file <containername>:/destination/path 
    
  3. Mounten Sie das benannte Volume in mehreren Containern.

    sudo docker run -d --name firstcontainer -v <volumename>:/db/data <image name> 
    sudo docker run -d --name secondcontainer -v <volumename>:/db/data <image name> 
    
+0

Mein Problem ist mit „Berg es zu einem Übergangs-Container und kopieren Sie Ihre Daten in es mit Docker Kopie“. Lassen Sie uns sagen, ich habe ein Dockerfile mit zwei Linien: '' von Grund auf COPY a.txt/data'' und Sie es als foo/goo Bild in Docker-Hub bauen. Und nehmen wir an, ich habe ein benanntes Volume 'My-Volume' erstellt. Wie lege ich die a.txt in das Volume, so dass ein anderes (sagen wir ein einfacher Ubuntu-Container) es verwenden kann (zB cat a.txt)? – Ika

+0

bearbeitet die Antwort mit mehr Informationen. –

+0

Von Ihrer Antwort sehe ich, dass ich mich vielleicht nicht richtig erklären kann. In Schritt 2 zeigen Sie, wie Sie Daten aus DockerHub ziehen und mit ihm bevölkern. – Ika

Verwandte Themen