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 ?
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.
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
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已经成功运行。
为了保证镜像仓库的安全,需要添加认证和授权功能。可以使用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
为了保证通信的安全性,可以使用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
$ 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!