Mit der Weiterentwicklung von DevOps und der Beliebtheit cloudnativer Anwendungen ist Docker zu einem der Standardtools für Entwicklung, Bereitstellung sowie Betrieb und Wartung geworden. Docker ist ein Tool, das Container direkt betreibt. Container bieten eine leichte Virtualisierungsmethode, mit der Code, Umgebung und Abhängigkeiten in eine unabhängige Betriebsumgebung gepackt und zur Maximierung schnell auf verschiedene Knoten übertragen und bereitgestellt werden können. Dadurch wird die Portabilität und Skalierbarkeit von Anwendungen erheblich verbessert , was Betrieb und Wartung komfortabler und effizienter macht.
Bei der tatsächlichen Verwendung von Docker treten jedoch manchmal seltsame Probleme auf, z. B. das Fehlen eines Bildes. Dieses Problem wird im Allgemeinen dadurch verursacht, dass ein Image auf Docker Hub gelöscht wird oder die Registrierung, in der es sich befindet, nicht mehr zugänglich ist, was dazu führt, dass Docker beim Abrufen des Images einen Fehler macht und dadurch die Stabilität und Zuverlässigkeit der gesamten Anwendung beeinträchtigt.
Also, wie kann man dieses Problem lösen? Im Allgemeinen gibt es zwei Lösungen: Eine besteht darin, andere Bildquellen wie Alibaba Cloud, Tencent Cloud usw. zu verwenden. Die andere besteht darin, Docker Registry lokal zu erstellen und die erforderlichen Bilder lokal zu speichern, wodurch man nicht mehr auf externe Quellen angewiesen ist. Die Spiegelquelle verbessert die Zuverlässigkeit und Stabilität der Anwendung.
Andere Bildquellen verwenden
Nehmen Sie Alibaba Cloud als Beispiel. Wir müssen zunächst ein Konto beim Container-Image-Dienst von Alibaba Cloud registrieren und den Dienst aktivieren. Wählen Sie in der Konsole „Image Accelerator“ und Sie erhalten eine URL. Diese URL ist die von Alibaba Cloud bereitgestellte Docker-Image-Accelerator-Adresse.
Kopieren Sie diese Adresse in die Datei /etc/docker/daemon.json
und starten Sie den Docker-Dienst neu. Beispiel: /etc/docker/daemon.json
文件中,并重启 Docker 服务即可。例如:
{ "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"] }
之后使用 Docker 命令拉取镜像时,就可以在命令后加上 --registry-mirror
参数指定使用阿里云镜像加速器,例如:
docker pull --registry-mirror=https://xxxxxxxx.mirror.aliyuncs.com library/nginx
通过本地搭建 Docker Registry
使用阿里云、腾讯云等国内的 Docker Hub 镜像源,虽然可以帮助解决镜像不见的问题,但是这些公司的运营模式一般都是按量收费,对于一些资源需要非常频繁地使用的业务,可能也会面临较高的成本压力。而且,现在国家也开始要求在中国境内存储、传输一些重要数据,因此在某些时刻,国外 registry 端口不通也可能成为一个瓶颈。
本地搭建 Docker Registry 就可以解决这些问题。我们只需要在一台 Linux 服务器上搭建一个 Docker Registry,并将需要的镜像 push 到这个 Registry 上即可。具体步骤如下:
在本地服务器上使用以下命令拉取 Docker Registry 镜像:
docker pull registry
使用如下命令启动 Docker Registry 容器:
docker run -d -p 5000:5000 --restart=always --name registry registry:latest
默认情况下,Registry 会监听在本地 5000 端口上,而且会使用本地文件系统作为镜像储存库。
在本地电脑上使用以下命令将一个本地的 Dcoker 镜像推送到 Registry:
docker tag <local_image_name> <registry_url>/<remote_image_name> docker push <registry_url>/<remote_image_name>
其中 <local_image_name>
是本地的 Docker 镜像名称,<registry_url>
是我们本地服务器的 IP 地址和 5000 端口号拼接而成的地址,<remote_image_name>
docker pull <registry_url>/<remote_image_name>
--registry-mirror
hinzufügen, um die Verwendung des Alibaba Cloud Image Accelerator anzugeben Beispiel: <local_image_name>
ist Name des lokalen Docker-Images, <registry_url>
ist die IP-Adresse unseres lokalen Servers und die 5000-Portnummer ist der Name des an die Registry übertragenen Images . 🎜🎜🎜Image abrufen🎜🎜🎜Verwenden Sie den folgenden Befehl, um das Image aus der Registry abzurufen:🎜rrreee🎜Durch die lokale Erstellung der Docker-Registrierung können wir die erforderlichen Images schnell speichern und abrufen und die Bereitstellung und den Betrieb besser steuern Docker-Image. Darüber hinaus kann die lokal erstellte Docker-Registrierung erweiterte Funktionen wie Image-Management, Kontoberechtigungskontrolle, Image-Warehouse-Modellierung, Image-Sharing usw. unterstützen. Diese Funktionen können unseren Docker-Betrieb und -Wartungsprozess weiter optimieren und unsere Leistung im DevOps-Bereich verbessern . 🎜🎜Kurz gesagt, das Problem fehlender Bilder ist ein häufiges und problematisches Problem während des Docker-Betriebs. Durch zuverlässige Docker-Image-Beschleuniger wie Alibaba Cloud oder den lokalen Aufbau von Docker Registry können wir dieses Problem jedoch gut lösen und die Anwendung weiter verbessern Zuverlässigkeit und Stabilität des Programms beschleunigen den Aufbau und die Bereitstellung und verbessern die Effizienz von DevOps. 🎜Das obige ist der detaillierte Inhalt vonWas passiert, wenn das Docker-Image verschwindet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!