Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie baut man ein effizientes Docker-Image-Warehouse auf einem Linux-Server auf?

Wie baut man ein effizientes Docker-Image-Warehouse auf einem Linux-Server auf?

PHPz
PHPzOriginal
2023-07-29 17:13:261115Durchsuche

Wie baut man ein effizientes Docker-Image-Warehouse auf einem Linux-Server auf?

Mit der Entwicklung und Popularität der Containerisierungstechnologie hat sich Docker zu einer der beliebtesten Containerisierungslösungen entwickelt. Wenn Sie Docker zum Erstellen und Verwalten umfangreicher Anwendungen verwenden, ist ein effizientes Docker-Image-Warehouse sehr wichtig. Dies beschleunigt nicht nur den Bereitstellungs- und Skalierungsprozess, sondern verbessert auch die Entwicklerproduktivität. In diesem Artikel stellen wir vor, wie Sie ein effizientes Docker-Image-Warehouse auf einem Linux-Server einrichten und stellen entsprechende Codebeispiele bereit.

  1. Installieren Sie Docker und Docker Registry

Zuerst müssen wir Docker und Docker Registry auf dem Linux-Server installieren. Docker kann über das offizielle Installationsskript installiert werden. Informationen zum jeweiligen Vorgang finden Sie in der offiziellen Dokumentation von Docker. Nach der Installation von Docker können wir Docker Registry mit dem folgenden Befehl installieren:

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

Dieser Befehl startet einen Docker Registry-Container auf dem Server und ordnet den 5000-Port im Container dem 5000-Port des Servers zu.

  1. Konfigurieren Sie Docker Registry

Nach der Installation von Docker Registry müssen wir einige Konfigurationen vornehmen, um es effizienter zu machen. Zuerst müssen wir die Docker-Konfigurationsdatei ändern, um unsichere Bildübertragungen zu ermöglichen. Bearbeiten Sie die Datei /etc/docker/daemon.json und fügen Sie den folgenden Inhalt hinzu: /etc/docker/daemon.json文件,添加以下内容:

{
  "insecure-registries" : ["your-registry-url:5000"]
}

其中,your-registry-url是你的镜像仓库的URL(例如:my-registry.com)。

接下来,我们需要重新加载Docker的配置文件,以使更改生效:

$ systemctl daemon-reload
$ systemctl restart docker
  1. 创建和上传镜像

现在,我们可以创建Docker镜像并上传到我们的镜像仓库中了。首先,我们需要构建一个Docker镜像。以下是一个示例的Dockerfile文件:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY app.py /app.py
CMD ["python3", "/app.py"]

在同一目录下创建一个名为app.py的文件,并添加一些代码。之后,使用以下命令构建镜像:

$ docker build -t your-registry-url:5000/my-image:1.0 .

your-registry-url替换为你的镜像仓库的URL。

构建完成后,我们可以使用以下命令将镜像上传到镜像仓库中:

$ docker push your-registry-url:5000/my-image:1.0

这将会将构建好的镜像推送到我们的镜像仓库中。

  1. 从镜像仓库中拉取镜像

当我们需要在其他服务器上部署我们的应用时,可以从镜像仓库中拉取所需的镜像。以下是拉取镜像的命令:

$ docker pull your-registry-url:5000/my-image:1.0

这将会从镜像仓库中拉取对应版本的镜像。

  1. 使用私有镜像仓库

为了保护我们的应用和数据安全,我们可以使用访问控制来限制对我们的私有镜像仓库的访问。以下是一种使用基本身份验证(Basic Authentication)方式来控制访问的示例:

首先,我们需要创建一个密码文件,用于存储用户名和密码。使用以下命令创建密码文件:

$ docker run --rm --entrypoint htpasswd registry:2 -Bbn your-username your-password > auth/htpasswd

其中,your-usernameyour-password是你所定义的用户名和密码。

接下来,我们需要修改Docker Registry的启动命令,指定使用访问控制配置。使用以下命令启动Docker Registry容器:

$ docker run -d -p 5000:5000 --restart=always --name registry 
             -v /path/to/auth:/auth 
             -e "REGISTRY_AUTH=htpasswd" 
             -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
             -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" 
             registry:2

其中,将/path/to/authrrreee

wobei your-registry-url die URL Ihres Spiegel-Repositorys ist (für Beispiel: my-registry.com).

Als nächstes müssen wir die Konfigurationsdatei von Docker neu laden, damit die Änderungen wirksam werden:

rrreee

    Erstellen und laden Sie das Image hoch

    Jetzt können wir das Docker-Image erstellen und es in unser Image hochladen Das Lager ist da. Zuerst müssen wir ein Docker-Image erstellen. Hier ist eine Beispiel-Docker-Datei:

    rrreee🎜Erstellen Sie eine Datei mit dem Namen app.py im selben Verzeichnis und fügen Sie Code hinzu. Erstellen Sie anschließend das Image mit dem folgenden Befehl: 🎜rrreee🎜Ersetzen Sie your-registry-url durch die URL Ihrer Registrierung. 🎜🎜Nachdem der Build abgeschlossen ist, können wir das Bild mit dem folgenden Befehl in das Mirror-Warehouse hochladen: 🎜rrreee🎜Dadurch wird das erstellte Image in unser Mirror-Warehouse verschoben. 🎜
      🎜Das Image aus dem Mirror-Warehouse abrufen🎜🎜🎜Wenn wir unsere Anwendung auf anderen Servern bereitstellen müssen, können wir das erforderliche Image aus dem Mirror-Warehouse abrufen. Der folgende Befehl lautet, um das Bild abzurufen: 🎜rrreee🎜Dadurch wird die entsprechende Version des Bildes aus dem Image Warehouse abgerufen. 🎜
        🎜Privates Image-Repository verwenden🎜🎜🎜Um die Sicherheit unserer Anwendungen und Daten zu schützen, können wir die Zugriffskontrolle verwenden, um den Zugriff auf unser privates Image-Repository einzuschränken. Das Folgende ist ein Beispiel für die Verwendung der Standardauthentifizierung zur Zugriffskontrolle: 🎜🎜Zuerst müssen wir eine Passwortdatei erstellen, um Benutzernamen und Passwörter zu speichern. Verwenden Sie den folgenden Befehl, um eine Passwortdatei zu erstellen: 🎜rrreee🎜wobei your-username und your-password der von Ihnen definierte Benutzername und das Passwort sind. 🎜🎜Als nächstes müssen wir den Startbefehl von Docker Registry ändern, um die Verwendung der Zugriffskontrollkonfiguration anzugeben. Starten Sie den Docker Registry-Container mit dem folgenden Befehl: 🎜rrreee🎜Ersetzen Sie /path/to/auth durch den Pfad zu Ihrer gespeicherten Passwortdatei. 🎜🎜Jetzt wurde Ihr privates Spiegel-Repository mit Basisauthentifizierung eingerichtet und nur autorisierte Benutzer können darauf zugreifen. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel haben wir vorgestellt, wie man ein effizientes Docker-Image-Warehouse auf einem Linux-Server erstellt. Wir haben zunächst Docker und Docker Registry installiert und konfiguriert und dann anhand von Beispielen zum Erstellen und Hochladen von Bildern demonstriert, wie das Image Warehouse verwendet wird. Abschließend haben wir erläutert, wie Sie mit der Basisauthentifizierung eine Registrierung sichern. 🎜🎜Durch die Einrichtung eines effizienten Docker-Image-Warehouse können wir umfangreiche Anwendungen besser verwalten und bereitstellen sowie die Entwicklungs-, Betriebs- und Wartungseffizienz verbessern. Ich hoffe, dieser Artikel ist hilfreich für Sie und kann in praktischen Anwendungen verwendet werden. 🎜

Das obige ist der detaillierte Inhalt vonWie baut man ein effizientes 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