Effizientes Verwalten von Docker-Imageschichten
Inspektion von Imageschichten
Um Ihre Docker-Imageschichten effektiv zu verstehen und zu verwalten, können Sie den Befehl docker image inspect
verwenden, um die Schichten eines Images zu untersuchen.
docker image inspect LabEx/my-app
Dies gibt ein JSON-Objekt aus, das Informationen über die Imageschichten enthält, wie z. B. Größe und die Befehle, die zur Erstellung jeder Schicht verwendet wurden.
Bereinigung nicht verwendeter Schichten
Im Laufe der Zeit, wenn Sie Ihre Docker-Images erstellen und neu erstellen, können viele nicht verwendete Schichten Speicherplatz auf Ihrem System belegen. Sie können den Befehl docker image prune
verwenden, um diese nicht verwendeten Schichten zu entfernen.
docker image prune
Dies entfernt alle "hängenden" (nicht verwendeten) Images von Ihrem System und befreit so Festplattenspeicher.
Nutzung des Schicht-Caching
Wenn Sie ein Docker-Image neu erstellen, versucht Docker, zwischengespeicherte Schichten aus vorherigen Builds wiederzuverwenden. Dies kann den Build-Prozess erheblich beschleunigen, aber es ist wichtig zu verstehen, wie der Cache funktioniert.
Um sicherzustellen, dass Ihre Schichten effektiv zwischengespeichert werden, sollten Sie Ihre Dockerfile-Anweisungen von den am wenigsten bis zu den am häufigsten änderbaren Anweisungen anordnen. Dadurch werden die am häufigsten veränderten Schichten oben im Image platziert, und die weniger häufig veränderten Schichten werden zwischengespeichert.
FROM ubuntu:22.04
ENV PYTHONUNBUFFERED=1
COPY requirements.txt /app/
RUN pip3 install -r /app/requirements.txt
COPY app/ /app/
CMD ["python3", "/app/main.py"]
Durch die effektive Verwaltung Ihrer Docker-Imageschichten können Sie Ihren Build-Prozess optimieren, die Imagegröße reduzieren und die Gesamtleistung Ihrer Docker-basierten Anwendungen verbessern.