Docker Registry · 13 min read · Oct 05, 2025
So richten Sie ein privates Docker-Registry auf Ubuntu 22.04 ein

Wenn Sie für eine Organisation arbeiten und Ihre Docker-Images intern für eine schnelle Bereitstellung aufbewahren möchten, ist das Hosting eines privaten Docker-Repositorys perfekt. Ein privates Docker-Registry ermöglicht es Ihnen, Ihre Bildverteilungspipeline zu besitzen und eine engere Kontrolle über die Bildspeicherung und -verteilung zu haben. Sie können Ihr Registry in Ihr CI/CD-System integrieren, um Ihren Workflow zu verbessern.
Dieses Tutorial zeigt Ihnen, wie Sie ein privates Docker-Registry auf einem Ubuntu 22.04-Server einrichten und verwenden, wobei Amazon S3 als Speicherort verwendet wird.
Voraussetzungen
- Zwei Linux-Server mit Ubuntu 22.04. Ein Server fungiert als Registry-Host, während der andere als Client verwendet wird, um Anfragen zu senden und Bilder vom Host zu empfangen.
- Ein registrierter Domainname, der auf den Host-Server zeigt. Wir verwenden
registry.example.comfür unser Tutorial. - Ein Nicht-Root-Benutzer mit Sudo-Rechten auf beiden Maschinen.
- Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo apt update $ sudo apt upgrade - Einige Pakete, die Ihr System benötigt. Einige dieser Pakete sind möglicherweise bereits auf Ihrem System installiert.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Schritt 1 - Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.
Überprüfen Sie, ob die Firewall aktiv ist.
$ sudo ufw statusSie sollten die folgende Ausgabe erhalten.
Status: inactiveErlauben Sie den SSH-Port, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.
$ sudo ufw allow OpenSSHErlauben Sie auch die HTTP- und HTTPS-Ports.
$ sudo ufw allow http
$ sudo ufw allow httpsAktivieren Sie die Firewall
$ sudo ufw enable
Befehl kann bestehende SSH-Verbindungen stören. Mit der Operation fortfahren (y|n)? y
Firewall ist aktiv und beim Systemstart aktiviertÜberprüfen Sie den Status der Firewall erneut.
$ sudo ufw statusSie sollten eine ähnliche Ausgabe sehen.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)Schritt 2 - Docker und Docker Compose installieren
Dieser Schritt ist sowohl auf dem Server als auch auf den Client-Maschinen erforderlich.
Ubuntu 22.04 wird mit einer älteren Version von Docker ausgeliefert. Um die neueste Version zu installieren, importieren Sie zunächst den Docker GPG-Schlüssel.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgErstellen Sie eine Docker-Repository-Datei.
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullAktualisieren Sie die System-Repository-Liste.
$ sudo apt updateInstallieren Sie die neueste Version von Docker.
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-pluginÜberprüfen Sie, ob es läuft.
$ sudo systemctl status docker
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-04-13 09:37:09 UTC; 3min 47s ago
TriggeredBy: ? docker.socket
Docs: https://docs.docker.com
Main PID: 2106 (dockerd)
Tasks: 7
Memory: 26.0M
CPU: 267ms
CGroup: /system.slice/docker.service
??2106 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockStandardmäßig benötigt Docker Root-Rechte. Wenn Sie vermeiden möchten, bei jedem Ausführen des docker-Befehls sudo zu verwenden, fügen Sie Ihren Benutzernamen zur docker-Gruppe hinzu.
$ sudo usermod -aG docker $(whoami)Sie müssen sich vom Server abmelden und wieder als derselbe Benutzer anmelden, um diese Änderung zu aktivieren, oder den folgenden Befehl verwenden.
$ su - ${USER}Bestätigen Sie, dass Ihr Benutzer zur Docker-Gruppe hinzugefügt wurde.
$ groups
navjot wheel dockerSchritt 3 - Docker Registry konfigurieren
Benutzerverzeichnisse erstellen
Erstellen Sie ein Verzeichnis für die Registry-Konfiguration.
$ mkdir ~/docker-registryWechseln Sie in das Verzeichnis docker-registry.
$ cd ~/docker-registryErstellen Sie ein Verzeichnis, um das HTTP-Authentifizierungspasswort, Nginx-Konfigurationsdateien und SSL-Zertifikate zu speichern.
$ mkdir authErstellen Sie ein weiteres Verzeichnis, um Nginx-Protokolle zu speichern.
$ mkdir logsAmazon S3-Bucket erstellen
Sie können die Registry-Daten und die Bilder auf Ihrem Server speichern oder einen Cloud-Hosting-Dienst verwenden. Für unser Tutorial verwenden wir den Amazon S3-Cloud-Service.
Der nächste Schritt besteht darin, die Konfigurationsdatei mit einigen wichtigen Einstellungen einzurichten. Diese Einstellungen können auch in der docker-compose.yml-Datei definiert werden, aber eine separate Datei zu haben, ist viel besser.
Erstellen Sie einen Bucket mit den folgenden Einstellungen.
- ACL sollte deaktiviert sein.
- Der öffentliche Zugriff auf den Bucket sollte deaktiviert sein.
- Die Bucket-Versionierung sollte deaktiviert sein.
- Aktivieren Sie die Bucket-Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln. (SSE-S3)
- Objektverriegelung sollte deaktiviert sein.
Erstellen Sie einen IAM-Benutzer mit der folgenden Richtlinie.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::S3_BUCKET_NAME"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::S3_BUCKET_NAME/*"
}
]
}Ersetzen Sie S3_BUCKET_NAME durch den Namen Ihres S3-Buckets.
Notieren Sie sich den geheimen Schlüssel, den geheimen Wert und die Bucket-Region Ihres Buckets, die später verwendet werden.
Docker Compose-Datei erstellen
Erstellen Sie die docker-compose.yml-Datei und öffnen Sie sie zur Bearbeitung.
$ nano docker-compose.ymlFügen Sie den folgenden Code ein.
services:
registry:
image: registry:2
restart: always
environment:
- REGISTRY_STORAGE=s3
- REGISTRY_STORAGE_S3_REGION=us-west-2
- REGISTRY_STORAGE_S3_BUCKET=hf-docker-registry
- REGISTRY_STORAGE_S3_ENCRYPT=true
- REGISTRY_STORAGE_S3_CHUNKSIZE=5242880
- REGISTRY_STORAGE_S3_SECURE=true
- REGISTRY_STORAGE_S3_ACCESSKEY=AKIA3FIG4NVFNXKQXMSJ
- REGISTRY_STORAGE_S3_SECRETKEY=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
- REGISTRY_STORAGE_S3_V4AUTH=true
- REGISTRY_STORAGE_S3_ROOTDIRECTORY=/image-registry
- REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=inmemory
- REGISTRY_HEALTH_STORAGEDRIVER_ENABLED=false
nginx:
image: "nginx:alpine"
ports:
- 443:443
links:
- registry:registry
volumes:
- ./auth:/etc/nginx/conf.d
- ./auth/nginx.conf:/etc/nginx/nginx.conf:ro
- ./logs:/var/log/nginx
- /etc/letsencrypt:/etc/letsencryptSpeichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Lassen Sie uns durchgehen, was wir in unserer Compose-Datei eingerichtet haben.
- Der erste Schritt besteht darin, das neueste Image der Version 2 des Docker-Registry vom Hub abzurufen. Wir verwenden nicht das neueste Tag, da dies bei einem größeren Versionsupgrade Probleme verursachen kann. Es auf 2 zu setzen, ermöglicht es Ihnen, alle 2.x-Updates abzurufen und zu verhindern, dass Sie auf die nächste Hauptversion automatisch aktualisiert werden, die brechende Änderungen einführen kann.
- Der Registry-Container ist so eingestellt, dass er im Falle eines Fehlers oder eines unerwarteten Herunterfahrens immer neu gestartet wird.
- Wir haben verschiedene Umgebungsvariablen für die Amazon S3-Speicherung festgelegt. Lassen Sie uns diese schnell durchgehen. - REGISTRY_STORAGE legt den Typ des Speichers fest. Wir haben s3 ausgewählt, da wir Amazon S3 verwenden.
- REGISTRY_STORAGE_S3_REGION legt die Region Ihres S3-Buckets fest.
- REGISTRY_STORAGE_S3_BUCKET legt den Namen Ihres S3-Buckets fest.
- REGISTRY_STORAGE_S3_ENCRYPT - setzen Sie es auf true, wenn Sie die Bucket-Verschlüsselung aktiviert haben.
- REGISTRY_STORAGE_S3_CHUNKSIZE legt die Größe der Upload-Chunks fest. Es sollte größer als 5 MB (5 1024 1024) sein.
- REGISTRY_STORAGE_S3_SECURE - setzen Sie es auf true, wenn Sie HTTPS verwenden möchten.
- REGISTRY_STORAGE_S3_ACCESSKEY und REGISTRY_STORAGE_S3_SECRETKEY - Benutzeranmeldeinformationen, die Sie nach der Erstellung Ihres IAM-Benutzers erhalten haben.
- REGISTRY_STORAGE_S3_V4AUTH - setzen Sie es auf true, wenn Sie v4 der AWS-Authentifizierung verwenden. Wenn Sie Fehler im Zusammenhang mit der S3-Anmeldung erhalten, setzen Sie es auf false.
- REGISTRY_STORAGE_S3_ROOTDIRECTORY - legt das Stammverzeichnis in Ihrem Bucket fest, unter dem Ihre Registry-Daten gespeichert werden.
- REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR - legt den Speicherort für den Cache fest. In unserem Fall speichern wir es im Speicher. Sie können es auch so einstellen, dass es Redis verwendet.
- REGISTRY_HEALTH_STORAGEDRIVER_ENABLED - Setzen Sie es auf false, um den Dienst zur Überprüfung der Speicherintegrität des Registrys zu deaktivieren. Es gibt einen Fehler mit der Registry, der Probleme verursachen kann, wenn Sie es nicht auf false setzen.
- Docker-Registry kommuniziert über Port 5000, den wir auf unserem Server für Docker freigegeben haben.
./auth:/etc/nginx/conf.d-Mapping stellt sicher, dass alle Nginx-Einstellungen im Container verfügbar sind../auth/nginx.conf:/etc/nginx/nginx.conf:romappt die Nginx-Einstellungsdatei vom System in den Container im Nur-Lese-Modus../logs:/var/log/nginxermöglicht den Zugriff auf die Nginx-Protokolle auf dem System, indem es auf das Nginx-Protokollverzeichnis im Container abgebildet wird.- Die Einstellungen des Docker-Registrys werden in der Datei
/etc/docker/registry/config.ymlim Container gespeichert, und wir haben sie auf dieconfig.yml-Datei im aktuellen Verzeichnis abgebildet, die wir im nächsten Schritt erstellen werden.
Authentifizierung einrichten
Um die HTTP-Authentifizierung einzurichten, müssen Sie das Paket httpd-tools installieren.
$ sudo apt install apache2-utils -yErstellen Sie die Passwortdatei im Verzeichnis ~/docker-registry/auth.
$ htpasswd -Bc ~/docker-registry/auth/nginx.htpasswd user1
Neues Passwort:
Neues Passwort erneut eingeben:
Passwort für Benutzer user1 hinzufügenDas Flag -c weist den Befehl an, eine neue Datei zu erstellen, und das Flag -B wird verwendet, um den von Docker unterstützten bcrypt-Algorithmus zu verwenden. Ersetzen Sie user1 durch einen Benutzernamen Ihrer Wahl.
Wenn Sie weitere Benutzer hinzufügen möchten, führen Sie den Befehl erneut aus, jedoch ohne das Flag -c.
$ htpasswd -B ~/docker-registry/auth/registry.password user2Jetzt wird die Datei für die Authentifizierung im Registry-Container abgebildet.
Schritt 4 - SSL installieren
Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir verwenden die Snapd-Version.
Ubuntu 22.04 wird standardmäßig mit Snapd installiert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.
$ sudo snap install core && sudo snap refresh coreInstallieren Sie Certbot.
$ sudo snap install --classic certbotVerwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbotFühren Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d registry.example.comDer obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/registry.example.com auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Überprüfen Sie den Zeitplan für den Certbot-Erneuerungsdienst.
$ sudo systemctl list-timersSie finden snap.certbot.renew.service als einen der Dienste, die geplant sind.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Sun 2023-04-14 00:00:00 UTC 19min left Sat 2023-02-25 18:04:05 UTC n/a snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-04-14 00:00:20 UTC 19min left Sat 2023-02-25 10:49:23 UTC 14h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2023-04-14 00:44:06 UTC 3h 22min left Sat 2023-02-25 20:58:06 UTC 7h ago apt-daily.timer apt-daily.serviceFühren Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.
$ sudo certbot renew --dry-runWenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.
Kopieren Sie die Dhparam-Datei in den Container
Kopieren Sie das Diffie-Hellman-Gruppe-Zertifikat in das Verzeichnis ~/docker-registry/auth, das in den Container abgebildet wird.
$ sudo cp /etc/ssl/certs/dhparam.pem ~/docker-registry/authSchritt 5 - Nginx konfigurieren
Der nächste Schritt besteht darin, den Nginx-Server als Front-End-Proxy für den Docker-Registry-Server zu konfigurieren. Die Docker-Registry verfügt über einen integrierten Server, der auf Port 5000 arbeitet. Wir setzen ihn hinter Nginx.
Erstellen und öffnen Sie die Datei ~/docker-registry/auth/nginx.conf zur Bearbeitung.
$ sudo nano ~/docker-registry/auth/nginx.confFügen Sie den folgenden Code ein.
events {
worker_connections 1024;
}
http {
upstream docker-registry {
server registry:5000;
}
## Setzen Sie eine Variable, um uns zu helfen zu entscheiden, ob wir den
## 'Docker-Distribution-Api-Version'-Header hinzufügen müssen.
## Die Registry setzt immer diesen Header.
## Im Fall von Nginx, das Authentifizierung durchführt, ist der Header nicht gesetzt,
## da Nginx vor dem Proxying authentifiziert.
map $upstream_http_docker_distribution_api_version $docker_distribution_api_version {
'' 'registry/2.0';
}
server {
listen 443 ssl http2;
server_name registry.example.com;
# SSL
ssl_certificate /etc/letsencrypt/live/registry.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/registry.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/registry.example.com/chain.pem;
access_log /var/log/nginx/registry.access.log;
error_log /var/log/nginx/registry.error.log;
# Empfehlungen von https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/nginx/conf.d/dhparam.pem;
resolver 8.8.8.8;
# Deaktivieren Sie alle Limits, um HTTP 413 für große Bild-Uploads zu vermeiden
client_max_body_size 0;
# erforderlich, um HTTP 411 zu vermeiden: siehe Issue #1486 (https://github.com/moby/moby/issues/1486)
chunked_transfer_encoding on;
location /v2/ {
# Verhindern Sie Verbindungen von Docker 1.5 und früher
# Docker vor 1.6.0 hat den User-Agent beim Ping nicht richtig gesetzt, fangen Sie "Go *"-User-Agents
if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) {
return 404;
}
# Um die grundlegende Authentifizierung für v2 hinzuzufügen, verwenden Sie die auth_basic-Einstellung.
auth_basic "Registry realm";
auth_basic_user_file /etc/nginx/conf.d/nginx.htpasswd;
## Wenn $docker_distribution_api_version leer ist, wird der Header nicht hinzugefügt.
## Siehe die oben definierte Map-Direktive, wo diese Variable definiert ist.
add_header 'Docker-Distribution-Api-Version' $docker_distribution_api_version always;
proxy_pass http://docker-registry;
proxy_set_header Host $http_host; # erforderlich für den Docker-Client
proxy_set_header X-Real-IP $remote_addr; # echte IP des Clients weitergeben
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
}
}
}Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden, nachdem Sie fertig sind.
Schritt 6 - Docker Registry starten
Wechseln Sie in das Verzeichnis der Docker Registry.
$ cd ~/docker-registryStarten Sie den Docker-Container.
$ docker compose up -dÜberprüfen Sie den Status der Container.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3328b7e36bb2 nginx:alpine "/docker-entrypoint.…" Vor etwa einer Minute Vor 3 Sekunden 80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp docker-registry-nginx-1
bf7cdfc0e013 registry:2 "/entrypoint.sh /etc…" Vor etwa einer Minute Vor etwa einer Minute 5000/tcp docker-registry-registry-1Melden Sie sich bei der Docker-Registry an.
$ docker login -u=user1 -p=password https://registry.example.comSie erhalten die folgende Ausgabe.
WARNUNG! Die Verwendung von --password über die CLI ist unsicher. Verwenden Sie --password-stdin.
WARNUNG! Ihr Passwort wird unverschlüsselt in /home/username/.docker/config.json gespeichert.
Konfigurieren Sie einen Anmeldehelfer, um diese Warnung zu entfernen. Siehe
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Anmeldung erfolgreichSie können auch die URL https://registry.example.com/v2/ in Ihrem Browser öffnen, und es wird nach einem Benutzernamen und Passwort gefragt. Sie sollten eine leere Seite mit {} sehen.
Sie können die URL im Terminal mit curl überprüfen.
$ curl -u user1 -X GET https://registry.example.com/v2/
Geben Sie das Host-Passwort für den Benutzer 'user1' ein:
{}Laden Sie das neueste Ubuntu-Docker-Image herunter.
$ docker pull ubuntu:latestTaggen Sie dieses Image für das private Registry.
$ docker tag ubuntu:latest registry.example.com/ubuntu2204Pushen Sie das Image in das Registry.
$ docker push registry.example.com/ubuntu2204Überprüfen Sie, ob der Push erfolgreich war.
$ curl -u user1 -X GET https://registry.example.com/v2/_catalog
Geben Sie das Host-Passwort für den Benutzer 'user1' ein:
{"repositories":["ubuntu2204"]}Geben Sie Ihr Nginx-Authentifizierungspasswort ein, wenn Sie dazu aufgefordert werden, und Sie sehen die Liste der über das Registry verfügbaren Repositories.
Melden Sie sich über das Terminal ab, um die Anmeldeinformationen zu löschen.
$ docker logout https://registry.example.com
Entfernen der Anmeldeinformationen für registry.example.comÜberprüfen Sie die Liste der derzeit verfügbaren Docker-Images zur Verwendung.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry 2 8db46f9d7550 vor 2 Wochen 24.2MB
nginx alpine 8e75cbc5b25c vor 2 Wochen 41MB
ubuntu latest 08d22c0ceb15 vor 5 Wochen 77.8MB
registry.example.com/ubuntu2204 latest 08d22c0ceb15 vor 5 Wochen 77.8MBSchritt 7 - Greifen Sie auf das Docker-Registry von der Client-Maschine zu und verwenden Sie es
Melden Sie sich bei Ihrem Client-Server an. In Schritt 1 haben wir Docker auf der Client-Maschine installiert.
Melden Sie sich bei der privaten Docker-Registry von der Client-Maschine an.
$ docker login -u=user1 -p=password https://registry.example.comZiehen Sie das Ubuntu-Image aus dem Registry.
$ docker pull registry.example.com/ubuntu2204Listen Sie alle Images auf Ihrer Client-Maschine auf.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.example.com/ubuntu2204 latest 08d22c0ceb15 vor 5 Wochen 77.8MBErstellen und starten Sie einen Container mit dem heruntergeladenen Image.
$ docker run -it registry.example.com/ubuntu2204 /bin/bashSie werden in die Shell innerhalb des Ubuntu-Containers eingeloggt.
root@647899f255db:Führen Sie den folgenden Befehl aus, um die Linux-Version zu überprüfen.
root@a2da49fdbea9$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammyJetzt können Sie Ihr Docker-Registry von Ihren Client-Maschinen aus verwenden.
Fazit
Damit endet unser Tutorial zur Einrichtung eines privaten Docker-Registrys auf einem Ubuntu 22.04-Server, das Amazon S3 als Speicher verwendet. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.