2014-06-23 9 views
5

Der Anwendungsfall ist relativ einfach. Ich docke unsere lokale Bereitstellung (die Chef verwendet, um unsere Ubuntu-Server zu konfigurieren). Ich bin mit ein paar Datenmengen Host-Verzeichnisse zu teilen, die ich für die Docker-Container als Cache will: zB:So bewahren Sie das Archivierungsverzeichnis von apt-cache bei Verwendung von docker/host-Volumes auf

docker run -d -P -h docker -v /foo/apt-cache:/var/cache/apt/archives foo:base 

jedoch die Debian-Paketdateien in/var/cache/apt/archives Verzeichnis wird immer nach jedem Paket ausgeblasen. Kann mir jemand zeigen, wo dies in Docker und einem Workaround passiert, damit ich meinen Apt-Get-Cache schön über Container erhalten kann?

Vielen Dank im Voraus

Antwort

6

Sharing/var/cache/apt/archives scheint eine fragile Lösung. Vielleicht sollten Sie versuchen, einen Container einzurichten, auf dem apt-cacher-ng läuft, und apt auf Ihren anderen Containern so konfigurieren, dass dieser Proxy verwendet wird.

Docker hat einen article, der erklärt, wie man das aufstellt.

+1

Thomas, danke für die Anregung zu entfernen; Ich werde diesen Artikel überprüfen. Sollten Sie zufällig zu meiner eigenen Erbauung wissen, warum diese Pakete entfernt werden? Ich benutze andere Volumes für cache-bezogenes Verhalten, die über Builds/Runs ohne Problem bestehen bleiben, also frage ich mich, ob es einen apt-get clean-Vorgang gibt, der unter den Abdeckungen geschieht. Entfernen der zwischengespeicherten Deb-Pakete def. kam nicht vor, wenn Vagrant + Chef alleine benutzt wurde. –

+0

Ich habe keine Ahnung, aber mit Koch und vagrant Provisioning macht viele Verdächtige für eine Art von geeigneten Aktionen. Vielleicht ein dummes Vermutung aber apt könnte auch verfolgen, was in seinem Cache mit Index-Dateien, die an anderer Stelle gespeichert werden können. – Thomasleveil

6

erkannte, dass ich "/etc/apt/apt.conf.d/no-cache" -Datei aus dem Docker Ubuntu Basisbild entfernen musste.

Es gibt einige Haken dort Debian-Pakete aus dem Cache nach der Installation (zu reduzieren Raum aufgenommen in Containern)

+1

können Sie einige seltsame Probleme auftreten, wenn mehrere Docker Bilder das gleiche geladene Volume verwenden. Wenn zwei Docker-Images ungefähr zur gleichen Zeit hochgespielt werden, könnte ein Container möglicherweise Dateien überschreiben, die von einem anderen Container verwendet werden. Der Vorteil von apt-cacher-ng (plus apt proxy-Einstellung) besteht darin, dass Sie Pakete im LAN sicher zwischenspeichern. Zwischenspeichern Sie die Erstellung von Docker-Images (wo Parallelität kein Problem ist), oder ändern Sie laufende Container so, als wären sie leichte VMs (mit dem Einstiegspunkt von bash oder ähnlichem)? – ives

Verwandte Themen