So optimieren Sie die Docker-Image-Größe

Nutzen Sie die Squash-Funktion (experimentelle Funktion nach 1.13 hinzugefügt)

1. Bevor Sie den Docker-Daemon-Prozess starten, setzen Sie den experimentellen Parameter auf true;
die Docker v20-Version wird /etc/docker/daemon.jsondurch Ändern aktiviert:

{
    
    
  "experimental": true
}

2. Es gibt keinen Unterschied zwischen der geschriebenen Docker-Datei und der vorherigen.
3. Fügen Sie beim Kompilieren --squashParameter hinzu.

docker build --squash -t xxx:xxx  .

Die Squash-Funktion komprimiert einerseits die Größe des Bildes und speichert andererseits die Bildkonstruktionsinformationen. Diese Methode ist jedoch experimentell und muss mit Vorsicht angewendet werden.

Verwenden Sie ein kleineres Basisbild

  • System-Images verwenden Ubuntu, CentOs, Alpine, Scratch, Buybox usw.
  • Viele offizielle Website-Bilder bieten schlanke Versionen.
    Der Nachteil der oben genannten Methode besteht darin, dass aufgrund der geringen Größe des Basisbildes möglicherweise die Abhängigkeiten oder Tools fehlen, die wir benötigen, und dass es schrittweise ergänzt werden muss, was viel Arbeit kostet .

Optimierung der Dockerfile-Anweisungen

Anleitung zum Spleißen

Wenn Sie beim Definieren einer Docker-Datei RUNAnweisungen mehrmals verwenden, werden mehrere Bildebenen generiert, wodurch das Bild aufgebläht wird. Mehrere Anweisungen sollten zu einer verkettet werden RUN( implementiert durch den Operator sum) &&./

Unterrichtsoptimierung

Bei Ausführung im Befehl RUN können Sie die Konfigurationsoptionen des Befehls selbst verwenden apt, um die Anzahl der Bildebenen und die Bildgröße zu reduzieren.apkyum

  • apt-get install -yDurch das Hinzufügen von Optionen während der Ausführung --no-install-recommendsmüssen Sie keine empfohlenen (nicht erforderlichen) Abhängigkeiten installieren, oder Sie können während der Ausführung apk addOptionen hinzufügen --no-cache, um den gleichen Effekt zu erzielen;
  • Während der Ausführung yum install -ywerden mehrere Tools gleichzeitig installiert, z. B. yum install -y gcc gcc-c++ make;
  • Die Installation und Reinigung von Komponenten sollte in einer Anleitung hintereinander erfolgen, zapt-get install zip && rm -rf /var/cache/apk/*

Verwenden Sie die Export- und Importanweisungen

#  启动一个容器
docker run -d --name test test:2.0
# 利用export和import将容器导出变为镜像
docker export test | docker import - test:3.0

Mit dieser Methode kann auch die Bildgröße effektiv reduziert werden, es gehen jedoch die Informationen zur Bilderstellung verloren.

Acho que você gosta

Origin blog.csdn.net/Loiterer_Y/article/details/121928584
Recomendado
Clasificación