Docker Applikation ausliefern
Docker Applikation ausliefern
Docker Hub
Auch wenn wir Daten vom Image zum Host mappen und es möglich ist Image und Daten getrennt zu übertragen, empfiehlt es sich dennoch die Daten innerhalb des jeweiligen Images zu halten. Damit ist die Applikation portabler und leichter zu skalieren.
Auf Docker Hub laden:
Login
Um ein Image auf Docker Hub zu laden müsst ihr eingeloggt sein. Auf macOS seht und könnt ihr das über das Docker Icon vornehmen. Aber es geht auch direkt über den Terminal:
docker login
Taggen
docker image tag current_image_tag new_image_tag
Push
docker push your_image_tag
Wenn alles nach Plan läuft - ist das Image nun auf Docker Hub unter My Profile -> Repositories zu finden.
Neues Projekt via Docker Hub
Wir verwenden einfach unseren Tag Namen e.g. docker_user_name/container_tag in unserem Dockerimage File als FROM .. Dann erstellen(build) wir das Image mit einem neuem Tag(--tag) und starten den Container(run).
Automatisiertes erstellen eines Images via GitHub
Wir initialisierten unseren Dockerfile Ordner und laden das Dockfile auf GitHub hoch.
Anschließend können wir auf Docker Hub unter unseren eigenen Docker Images die Option Builds auswählen und dort verlinken wir unseren GitHub Account.
Nach erfolgreicher Verknüpfung mit unserem Account können wir under Builds -> GitHub auswählen und den Build Automation Prozess bearbeiten. Dort einfach via Dropdown die entsprechende Repo auswählen.
Wenn wir nun das Dockerfile auf GitHub bearbeiten - starten wir zudem auch einen neuen Build Prozess unseres Images.
Eigene Docker Registry
Die Docker Registry wie alle anderen Images auf Docker Hub verfügbar.
Wie holen uns die Latest Version via:
docker pull registry:2.7.1
Mit inspect können wir sehen welchen Port das Image verwendet.
docker inspect registry:2.7.1
Es verwendet Port 5000.
Tagging
Das Taggen vom Images unterscheidet sich zu Docker Hub:
Docker Hub: user_name/repository_name Own Registry: registry_url/repository_name
Wir wissen bereits den verwendeten Port(5000). Somit können wir wie folgt vorgehen:
docker image tag apache:2:4:38 localhost:5000/customapache:2:4:38 docker push localhost:5000/customapache:2.4.38
Um alle Images wieder zu entfernen müssen wir beide Einträge entfernen:
docker image rm apache:2.4.38 docker image rm localhost:5000/customapache:2.4.38
Wir können das Image nun über unsere eigene Docker Registry beziehen:
docker pull localhost:5000/customapache:2.4.38
Externe Verfügbarkeit