2016-10-30 5 views
1

Ich versuche jenkins in einem Docker Behälter beginnen Docker Toolbox auf Windows 7.Docker speichert keine Daten in Host bereitgestelltes Volume

Ich betreibe

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "//C/Users/myname/.jenkins:/var/jenkins_home" jenkins 

Die jenkins schön startet, Unter C: /Users/myname/.jenkins wird jedoch nichts erstellt. Ich habe den Ordner erstellt, aber es bleibt leer.

Wenn ich jetzt stoppe und den Behälter entferne und ihn wieder starte, hat Jenkins alles verloren, was ich vorher getan habe.

Was mache ich falsch?

+0

Keine Antwort, aber haben Sie erwogen, von Docker Toolbox auf den neueren [Docker für Windows] (https://docs.docker.com/docker-for-windows/) umzusteigen? Es verwendet einen anderen Hypervisor (HyperV anstelle von VirtualBox) und einen anderen Mechanismus, um Host-Dateien/Verzeichnisse Ihrem Container zugänglich zu machen. – larsks

+0

Ist das nicht nur für Windows 10? Ich kann nicht upgraden, da es ein Arbeits-Laptop ist. – Urr4

+0

Kann dir da nicht helfen, aber es sieht so aus als ob @TInkerTank dich alle abgedeckt hat :) – larsks

Antwort

1

Mit Docker Toolbox laufen Docker-Images nicht wirklich auf Ihrem Windows-Rechner, sondern auf einer virtuellen Maschine, die auf Ihrem Windows-Rechner erstellt wurde.

Es scheint, dass auf dem Host gemountete Volumes einige Nachteile mit Docker Toolbox auf Windows haben. Siehe zum Beispiel:

Vielleicht gibt es einige Hinweise hier, dass Sie es bekommen kann helfen, zu arbeiten.


Wenn Sie die Daten nicht möchten, zwischen Containern bestehen bleiben, auch nach dem jenkins Container löschen, können Sie ein Datenvolumen für die jenkins homedir verwenden. In diesem Fall würden Sie jenkins wie folgt beginnen:

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "/var/jenkins_home" jenkins 

Dies schafft im Grunde einen separaten Docker Behälter für das Verzeichnis/var/jenkins_home Verzeichnis, in dem Sie löschen/Upgrade/etc der jenkins Container ohne Ihre Daten zu beeinflussen.

Stellen Sie sicher, dass Sie verstehen, was hier vor sich geht. Lesen: https://docs.docker.com/engine/tutorials/dockervolumes/

dies auch in der Dokumentation jenkins Docker-Bild erwähnt wird: https://hub.docker.com/_/jenkins/


Alternativ: Könnte es akzeptabel sein, nur ‚Stop‘ und ‚Neustart‘ der Behälter, wenn Sie es brauchen ? - In diesem Fall benötigen Sie die Host-Verzeichnisse nicht. In diesem Fall lassen Sie einfach die Optionen -v weg. Dies erschwert die Sicherung Ihrer Daten oder die Verwendung eines neueren jenkins-Images.

+0

Danke, das hilft mir das Problem zu verstehen. Ich weiß nicht, wie ich es reparieren kann, ohne Linux oder Windows 10 zu benutzen, aber vielleicht finde ich eine Abhilfe. – Urr4

1

Ich habe es nicht geschafft, dies mit der Docker-Konsole zu tun, aber es ist möglich, Kitematic im Docker Toolbock zu verwenden. Auf der Registerkarte "Volumes" können Sie lokale Ordner als Volumes in den Container einfügen. Die Jenkins-Dateien wurden wie erwartet im lokalen Ordner angezeigt.

+1

Vielen Dank für Ihre Rückmeldung! – TinkerTank

Verwandte Themen