2016-03-30 17 views
0

Ich habe eine App, die mehrere Docker-Container verwendet:Docker-Container an private Registry drängen

  1. NGINX Behälter
  2. NodeJS Segel App Container
  3. Redis Cachebehälter

Da bin ich unter Verwendung von vorhandenen Bildern für zwei der obigen Behälter habe ich auch zwei zwischengespeicherte Behälter:

  1. alpine
  2. redis

Ich versuche, meine Container (1, 2, & 3) zu AWS Elastic Container Registry (ECR) zu drücken. Ich bin dazu in der Lage, habe aber bemerkt, dass meine zwischengespeicherten Container (4 & 5) auch gestoßen werden.

Ich baue die Container docker-compose verwenden und dann Tagging wie so:

docker tag -f nodejs_app:latest <repository URL>:latest

Nachdem mit docker login in ECR Anmeldung, schiebe ich mit diesem Befehl:

docker push <repository URL>:latest

Docker schiebt dann alle 5 Container in die Registrierung. Wie schiebe ich nur die Container, die mir wichtig sind, und nicht die zwischengespeicherten?

Vielen Dank im Voraus :-)

Antwort

1

Wie schiebe ich nur die Container, die ich kümmere mich um und nicht die zu zwischengespeichert diejenigen?

Sie nicht.

Docker Bilder (nicht Behälter, ein Behälter ist, was Sie bekommen, wenn Sie ein Image booten) aus Schichten aufgebaut. Ihr nginx Bild besteht zum Beispiel aus allen Ebenen des Bildes alpine, gefolgt von allen Ebenen, die als Ergebnis Ihrer Dockerfile erstellt wurden.

Damit Ihr neues Image in einem privaten Repository gespeichert werden kann, müssen alle darunter liegenden Layer verfügbar sein. Dies bedeutet, dass zusätzlich zu den Ebenen, die Sie über Ihre Dockerfile erstellen, auch alle Ebenen aus dem Bild alpine in das Repository verschoben werden müssen.

Wenn Sie also ein Bild oben auf dem alpine Image erstellen und es in ein privates Repository verschieben, wird das alpine Image ebenfalls dorthin verschoben.

+0

Große Antwort, danke für die Klarstellung. Ich vermutete, dass ich etwas Grundlegendes in meinem Verständnis vermisst hätte. – infl3x

Verwandte Themen