Maison  >  Article  >  Opération et maintenance  >  Que se passe-t-il si l'image du menu fixe disparaît ?

Que se passe-t-il si l'image du menu fixe disparaît ?

PHPz
PHPzoriginal
2023-04-19 09:16:222804parcourir

Avec le développement ultérieur de DevOps et la popularité des applications cloud natives, Docker est devenu l'un des outils standards pour le développement, le déploiement, l'exploitation et la maintenance. Docker est un outil qui exploite directement les conteneurs, et les conteneurs fournissent une méthode de virtualisation légère qui peut regrouper le code, l'environnement et les dépendances dans un environnement d'exécution indépendant, et les transplanter et les déployer rapidement sur différents nœuds pour maximiser. Il améliore considérablement la portabilité et l'évolutivité des applications. , rendant l'exploitation et la maintenance plus pratiques et efficaces.

Cependant, dans l'utilisation réelle de Docker, vous rencontrez parfois des problèmes étranges, comme l'image manquante. Ce problème est généralement dû à la suppression d'une image sur Docker Hub ou au registre où elle se trouve inaccessible, provoquant une erreur de Docker pendant le processus d'extraction de l'image, affectant ainsi la stabilité et la fiabilité de l'ensemble de l'application.

Alors, comment résoudre ce problème ? De manière générale, il existe deux solutions : l'une consiste à utiliser d'autres sources d'images, telles qu'Alibaba Cloud, Tencent Cloud, etc. ; l'autre consiste à créer Docker Registry localement et à enregistrer les images requises localement, sans compter ainsi sur des sources externes. La source miroir améliore la fiabilité et la stabilité de l’application.

Utilisez d'autres sources d'images

Prenons l'exemple d'Alibaba Cloud. Nous devons d'abord créer un compte sur le service d'image de conteneur d'Alibaba Cloud et activer le service. Sélectionnez "Image Accelerator" sur la console et vous obtiendrez une URL. Cette URL est l'adresse de l'accélérateur d'image Docker fournie par Alibaba Cloud.

Copiez cette adresse dans le fichier /etc/docker/daemon.json et redémarrez le service Docker. Par exemple : /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>
Lorsque vous utilisez la commande Docker pour extraire l'image ultérieurement, vous pouvez ajouter le paramètre --registry-mirror après la commande pour spécifier l'utilisation d'Alibaba Cloud Image Accelerator, par exemple. exemple :
    rrreee
  1. Créez Docker localement avec un registre
Utilisez des sources d'images Docker Hub nationales telles que Alibaba Cloud et Tencent Cloud. Bien que cela puisse aider à résoudre le problème des images manquantes, le modèle opérationnel de ces sociétés facture généralement en fonction du volume. les entreprises qui nécessitent une utilisation très fréquente des ressources. Il peut également y avoir des pressions sur les coûts plus élevées. De plus, le pays commence désormais à exiger que certaines données importantes soient stockées et transmises en Chine. Par conséquent, à un moment donné, l'indisponibilité des ports d'enregistrement étrangers pourrait également devenir un goulot d'étranglement.

La création locale d'un registre Docker peut résoudre ces problèmes. Il nous suffit de créer un registre Docker sur un serveur Linux et de transférer l'image requise vers ce registre. Les étapes spécifiques sont les suivantes :

    Extractez l'image du registre Docker

    🎜Utilisez la commande suivante sur le serveur local pour extraire l'image du registre Docker :🎜rrreee
      🎜Exécutez le registre Docker conteneur🎜🎜🎜Utilisez la commande suivante pour démarrer le conteneur Docker Registry : 🎜rrreee🎜Par défaut, le registre écoutera sur le port local 5000 et utilisera le système de fichiers local comme référentiel d'images. 🎜
        🎜Poussez l'image🎜🎜🎜Utilisez la commande suivante sur votre ordinateur local pour transférer une image Dcoker locale vers le registre : 🎜rrreee🎜où <local_image_name> est nom de l'image Docker locale, <registry_url> est l'adresse IP de notre serveur local et le numéro de port 5000 <remote_image_name> est l'image transmise au nom du registre. . 🎜🎜🎜Extraire l'image🎜🎜🎜Utilisez la commande suivante pour extraire l'image du registre : 🎜rrreee🎜En créant le registre Docker localement, nous pouvons rapidement enregistrer et récupérer les images requises, et mieux contrôler le déploiement et le fonctionnement du Image Docker. De plus, le registre Docker construit localement peut prendre en charge des fonctions plus avancées, telles que la gestion des images, le contrôle des autorisations de compte, la modélisation d'entrepôt d'images, le partage d'images, etc. Ces fonctions peuvent optimiser davantage notre processus d'exploitation et de maintenance Docker et améliorer nos performances en matière de compétitivité DevOps. . 🎜🎜En bref, le problème des images manquantes est un problème courant et gênant lors du fonctionnement de Docker. Cependant, grâce à des accélérateurs d'images Docker fiables tels qu'Alibaba Cloud ou en créant localement Docker Registry, nous pouvons bien résoudre ce problème et améliorer encore l'application. la fiabilité et la stabilité du programme accélèrent la vitesse de construction et de déploiement, et améliorent l'efficacité du DevOps. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn