Maison >Opération et maintenance >exploitation et maintenance Linux >Comment créer un entrepôt d'images Docker sûr et fiable sur un serveur Linux ?

Comment créer un entrepôt d'images Docker sûr et fiable sur un serveur Linux ?

王林
王林original
2023-07-28 20:16:511659parcourir

Comment créer un entrepôt d'images Docker sûr et fiable sur un serveur Linux ?

Avec le développement rapide de la technologie des conteneurs, Docker est devenu un outil courant pour créer et gérer des applications conteneurisées. Cependant, dans les applications pratiques, la manière d’établir un entrepôt d’images Docker sûr et fiable est une question importante. Cet article explique comment établir un entrepôt d'images Docker sûr et fiable sur un serveur Linux et fournit des exemples de code à titre de référence.

  1. Installer Docker

Tout d'abord, vous devez installer Docker sur le serveur Linux. Il peut être installé via la commande suivante :

$ sudo apt-get update
$ sudo apt-get install docker-ce

Une fois l'installation terminée, exécutez la commande suivante pour vérifier si l'installation a réussi :

$ docker version
  1. Configurez l'entrepôt d'images Docker

Ensuite, vous devez configurer le Docker entrepôt d'images. Vous pouvez choisir d'utiliser l'image de registre officielle de Docker ou des images open source tierces, telles que Harbor, Nexus, etc.

En prenant l'image officielle du registre Docker comme exemple, vous pouvez démarrer un conteneur de registre via la commande suivante :

$ docker run -d -p 5000:5000 --name registry registry:latest

Une fois le démarrage terminé, vous pouvez vérifier si le registre fonctionne correctement via la commande suivante :

$ curl http://localhost:5000/v2/_catalog

Si un un tableau vide est renvoyé [] , indiquant que le registre a été exécuté avec succès. [],说明Registry已经成功运行。

  1. 配置镜像仓库的认证和授权

为了保证镜像仓库的安全,需要添加认证和授权功能。可以使用Nginx作为反向代理服务器,并使用Basic Auth认证方式。

首先,安装Nginx:

$ sudo apt-get install nginx

然后,创建一个用于存放认证信息的密码文件:

$ sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd"
$ sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

创建完成后,需要编辑Nginx配置文件/etc/nginx/sites-available/default,添加如下内容:

server {
    listen 80;
    server_name <your-domain-name>;

    location / {
        proxy_pass http://localhost:5000;

        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

替换454b098903dd34fa7086458fb3f097b6为你的域名。

保存配置文件并重启Nginx:

$ sudo systemctl restart nginx
  1. 配置HTTPS支持

为了保证通信的安全性,可以使用HTTPS协议进行通信。需要先为镜像仓库生成自签名证书。

首先,安装OpenSSL:

$ sudo apt-get install openssl

然后,生成私钥和自签名证书:

$ sudo openssl req -newkey rsa:2048 -nodes -keyout registry.key -x509 -days 365 -out registry.crt

生成的registry.key为私钥文件,registry.crt为自签名证书文件。

接下来,编辑Nginx配置文件/etc/nginx/sites-available/default,添加如下内容:

server {
    listen 443 ssl;
    server_name <your-domain-name>;

    ssl_certificate /path/to/registry.crt;
    ssl_certificate_key /path/to/registry.key;

    location / {
        proxy_pass http://localhost:5000;

        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

替换454b098903dd34fa7086458fb3f097b6

    Configurer l'authentification et l'autorisation de l'entrepôt d'images

      Afin d'assurer la sécurité de l'entrepôt d'images, des fonctions d'authentification et d'autorisation doivent être ajoutées. Vous pouvez utiliser Nginx comme serveur proxy inverse et utiliser la méthode d'authentification Basic Auth.
    1. Tout d'abord, installez Nginx :
    $ sudo systemctl restart nginx

    Ensuite, créez un fichier de mot de passe pour stocker les informations d'authentification :

    $ sudo vi /etc/docker/daemon.json

    Après la création, vous devez modifier le fichier de configuration Nginx /etc/nginx/sites-available/default code>, ajoutez ce qui suit :

    {
        "insecure-registries": ["<your-domain-name>:5000"]
    }

    Remplacez 7886cd918b3b2e094565533c8fccf112 par votre nom de domaine.

    Enregistrez le fichier de configuration et redémarrez Nginx :

    $ sudo systemctl restart docker

      Configurez le support HTTPS

      🎜🎜Afin d'assurer la sécurité de la communication, vous pouvez utiliser le protocole HTTPS pour la communication. Vous devez d'abord générer un certificat auto-signé pour l'entrepôt d'images. 🎜🎜Tout d'abord, installez OpenSSL : 🎜
      $ docker tag image <your-domain-name>:5000/image
      $ docker push <your-domain-name>:5000/image
      $ docker pull <your-domain-name>:5000/image
      🎜Ensuite, générez la clé privée et le certificat auto-signé : 🎜rrreee🎜Le registry.key généré est le fichier de clé privée, registry.crt Il s'agit d'un fichier de certificat auto-signé. 🎜🎜Ensuite, éditez le fichier de configuration Nginx <code>/etc/nginx/sites-available/default et ajoutez le contenu suivant : 🎜rrreee🎜Remplacez 7886cd918b3b2e094565533c8fccf112 pour votre nom de domaine. 🎜🎜Enregistrez le fichier de configuration et redémarrez Nginx : 🎜rrreee🎜🎜Utilisez le client Docker pour interagir avec le référentiel d'images🎜🎜🎜Enfin, utilisez le client Docker pour interagir avec le référentiel d'images. Tout d'abord, vous devez configurer un référentiel de confiance pour Docker : 🎜rrreee🎜Ajoutez le contenu suivant dans le fichier de configuration : 🎜rrreee🎜Enregistrez le fichier de configuration et redémarrez le service Docker : 🎜rrreee🎜Vous pouvez maintenant utiliser le client Docker pour interagir avec le référentiel d'images, par exemple, poussez et tirez l'image : 🎜rrreee🎜Ci-dessus sont toutes les étapes et exemples de code pour établir un entrepôt d'images Docker sûr et fiable sur le serveur Linux. En suivant ces étapes, vous pouvez créer un entrepôt d'images Docker sûr et fiable pour garantir la fiabilité et la sécurité des applications conteneurisées. 🎜

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