Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie baut man ein sicheres und zuverlässiges Docker-Image-Warehouse auf einem Linux-Server auf?

Wie baut man ein sicheres und zuverlässiges Docker-Image-Warehouse auf einem Linux-Server auf?

王林
王林Original
2023-07-28 20:16:511562Durchsuche

Wie baut man ein sicheres und zuverlässiges Docker-Image-Warehouse auf einem Linux-Server auf?

Mit der rasanten Entwicklung der Containertechnologie ist Docker zu einem gängigen Werkzeug zum Erstellen und Verwalten von Containeranwendungen geworden. In praktischen Anwendungen ist jedoch die Einrichtung eines sicheren und zuverlässigen Docker-Image-Warehouses ein wichtiges Thema. In diesem Artikel wird erläutert, wie Sie ein sicheres und zuverlässiges Docker-Image-Warehouse auf einem Linux-Server einrichten, und Codebeispiele als Referenz bereitgestellt.

  1. Docker installieren

Zuerst müssen Sie Docker auf dem Linux-Server installieren. Es kann über den folgenden Befehl installiert werden:

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

Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um zu überprüfen, ob die Installation erfolgreich ist:

$ docker version
  1. Konfigurieren Sie das Docker-Image-Warehouse

Als nächstes müssen Sie Docker konfigurieren Bildlager. Sie können wählen, ob Sie das offizielle Registry-Image von Docker oder Open-Source-Images von Drittanbietern wie Harbor, Nexus usw. verwenden möchten.

Am Beispiel des offiziellen Docker-Registrierungsimages können Sie einen Registrierungscontainer mit dem folgenden Befehl starten:

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

Nachdem der Startvorgang abgeschlossen ist, können Sie mit dem folgenden Befehl überprüfen, ob die Registrierung ordnungsgemäß funktioniert:

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

If Es wird ein leeres Array [] zurückgegeben, das anzeigt, dass die Registrierung erfolgreich ausgeführt wurde. [],说明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

    Konfigurieren Sie die Authentifizierung und Autorisierung des Image Warehouse

      Um die Sicherheit des Image Warehouse zu gewährleisten, müssen Authentifizierungs- und Autorisierungsfunktionen hinzugefügt werden. Sie können Nginx als Reverse-Proxy-Server verwenden und die Authentifizierungsmethode Basic Auth verwenden.
    1. Installieren Sie zunächst Nginx:
    $ sudo systemctl restart nginx

    Dann erstellen Sie eine Passwortdatei zum Speichern der Authentifizierungsinformationen:

    $ sudo vi /etc/docker/daemon.json

    Nach der Erstellung müssen Sie die Nginx-Konfigurationsdatei /etc/nginx/sites-available/default bearbeiten. code>, fügen Sie Folgendes hinzu:

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

    Ersetzen Sie 454b098903dd34fa7086458fb3f097b6 durch Ihren Domainnamen.

    Speichern Sie die Konfigurationsdatei und starten Sie Nginx neu:

    $ sudo systemctl restart docker

      HTTPS-Unterstützung konfigurieren

      🎜🎜Um die Sicherheit der Kommunikation zu gewährleisten, können Sie das HTTPS-Protokoll für die Kommunikation verwenden. Sie müssen zunächst ein selbstsigniertes Zertifikat für das Image Warehouse generieren. 🎜🎜Installieren Sie zunächst OpenSSL: 🎜
      $ docker tag image <your-domain-name>:5000/image
      $ docker push <your-domain-name>:5000/image
      $ docker pull <your-domain-name>:5000/image
      🎜Dann generieren Sie den privaten Schlüssel und das selbstsignierte Zertifikat: 🎜rrreee🎜Der generierte registry.key ist die private Schlüsseldatei registry.crt Es handelt sich um eine selbstsignierte Zertifikatsdatei. 🎜🎜Bearbeiten Sie als Nächstes die Nginx-Konfigurationsdatei <code>/etc/nginx/sites-available/default und fügen Sie den folgenden Inhalt hinzu: 🎜rrreee🎜Ersetzen Sie 454b098903dd34fa7086458fb3f097b6 für Ihren Domainnamen. 🎜🎜Speichern Sie die Konfigurationsdatei und starten Sie Nginx neu: 🎜rrreee🎜🎜Verwenden Sie den Docker-Client, um mit dem Image-Repository zu interagieren.🎜🎜🎜Verwenden Sie abschließend den Docker-Client, um mit dem Image-Repository zu interagieren. Zuerst müssen Sie ein vertrauenswürdiges Repository für Docker konfigurieren: 🎜rrreee🎜Fügen Sie den folgenden Inhalt in der Konfigurationsdatei hinzu: 🎜rrreee🎜Speichern Sie die Konfigurationsdatei und starten Sie den Docker-Dienst neu: 🎜rrreee🎜Jetzt können Sie mit dem Docker-Client interagieren Das Bild-Repository, zum Beispiel, pushen und ziehen Sie das Bild: 🎜rrreee🎜Das Obige sind alle Schritte und Codebeispiele, um ein sicheres und zuverlässiges Docker-Image-Warehouse auf dem Linux-Server einzurichten. Wenn Sie diese Schritte befolgen, können Sie ein sicheres und zuverlässiges Docker-Image-Warehouse aufbauen, um die Zuverlässigkeit und Sicherheit von Containeranwendungen zu gewährleisten. 🎜

Das obige ist der detaillierte Inhalt vonWie baut man ein sicheres und zuverlässiges Docker-Image-Warehouse auf einem Linux-Server auf?. 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