Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was passiert, wenn das Docker-Image verschwindet?

Was passiert, wenn das Docker-Image verschwindet?

PHPz
PHPzOriginal
2023-04-19 09:16:222804Durchsuche

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 上即可。具体步骤如下:

  1. 拉取 Docker Registry 镜像

在本地服务器上使用以下命令拉取 Docker Registry 镜像:

docker pull registry
  1. 运行 Docker Registry 容器

使用如下命令启动 Docker Registry 容器:

docker run -d -p 5000:5000 --restart=always --name registry registry:latest

默认情况下,Registry 会监听在本地 5000 端口上,而且会使用本地文件系统作为镜像储存库。

  1. 推送镜像

在本地电脑上使用以下命令将一个本地的 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>
Wenn Sie das Image später mit dem Docker-Befehl abrufen, können Sie nach dem Befehl den Parameter --registry-mirror hinzufügen, um die Verwendung des Alibaba Cloud Image Accelerator anzugeben Beispiel:
    rrreee
  1. Docker-Registrierung lokal erstellen
Verwenden Sie inländische Docker-Hub-Image-Quellen wie Alibaba Cloud und Tencent Cloud. Obwohl dies zur Lösung des Problems fehlender Images beitragen kann, berechnen die Betriebsmodelle dieser Unternehmen im Allgemeinen nach Volumen Bei Unternehmen, die einen sehr häufigen Ressourceneinsatz erfordern, kann es auch zu einem höheren Kostendruck kommen. Darüber hinaus verlangt das Land auch die Speicherung und Übermittlung wichtiger Daten innerhalb Chinas. Daher kann die Nichtverfügbarkeit ausländischer Registerhäfen irgendwann auch zu einem Engpass werden.

Der lokale Aufbau der Docker-Registrierung kann diese Probleme lösen. Wir müssen lediglich eine Docker-Registrierung auf einem Linux-Server erstellen und das erforderliche Image in diese Registrierung übertragen. Die spezifischen Schritte lauten wie folgt:

    Ziehen Sie das Docker Registry-Image ab

    🎜Verwenden Sie den folgenden Befehl auf dem lokalen Server, um das Docker Registry-Image abzurufen:🎜rrreee
      🎜Führen Sie die Docker Registry aus Container🎜🎜🎜Verwenden Sie den folgenden Befehl, um den Docker-Registrierungscontainer zu starten: 🎜rrreee🎜Standardmäßig überwacht die Registrierung den lokalen Port 5000 und verwendet das lokale Dateisystem als Image-Repository. 🎜
        🎜Übertragen Sie das Image🎜🎜🎜Verwenden Sie den folgenden Befehl auf Ihrem lokalen Computer, um ein lokales Dcoker-Image in die Registrierung zu übertragen: 🎜rrreee🎜wobei <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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn