# Einrichten eines Docker-Repository

Erfahren Sie, wie Sie Ihre [Docker-Images](https://www.ionos.de/digitalguide/server/knowhow/docker-image/ "Docker-Image") speichern, entweder in einer selbst gehosteten lokalen Registry oder in einem Docker Hub-Repository. Auf diese Weise können Sie Ihre Docker-Images speichern und organisieren und Images für mehrere Teams freigeben.

## “Registry” versus “Repository”.

Ein [Repository](https://www.ionos.de/digitalguide/server/knowhow/repository/ "Repository") ist ein Ort, an dem Daten tatsächlich gespeichert werden. Eine **Registry** ist eine Sammlung von Verweisen auf diese Daten.

Der Katalog einer Bibliothek ist in diesem Beispiel die **Registry**, die Sie konsultieren würden, um den Standort des gewünschten Buches zu finden. Die eigentlichen Bücherregale der Bibliothek sind ihr Aufbewahrungsort.

## Anforderungen

- Grundkenntnisse in der Verwendung von [Docker](https://www.ionos.de/digitalguide/server/knowhow/was-ist-docker/) und Kommandozeilen-Befehlen.
- Docker wurde auf Ihrem System installiert und läuft dort.
- Eine Internetverbindung.

Wenn Sie ein selbst gehostetes Repository einrichten und es über das Internet zugänglich machen, benötigen Sie zusätzlich:

- Einen Domainnamen und eine funktionierende URL.
- [Ein SSL-Zertifikat](https://www.ionos.de/sicherheit/ssl-zertifikat "IONOS SSL Zertifikat").

## Einrichten einer selbst gehosteten Docker-Registry

Docker bietet einen [integrierten Registrierungsserver](https://docs.docker.com/registry/ "integrierten Registrierungsserver von Docker"). Der Registry-Server läuft in einem Container, den Sie mit dem Befehl docker run starten können.

Um beispielsweise einen Registrierungsserver namens “my-registry” zu starten, lautet der Befehl:

```none
sudo docker run -d -p 5000:5000 --name my-registry registry:2
```

Hinweis Wenn Sie eine Firewall verwenden, müssen Sie möglicherweise den Zugriff auf Port 5000 erlauben.

## Image in Ihre selbst gehostete Registry verschieben

Der erste Schritt zur Verwendung Ihrer selbst gehosteten Registrierung besteht darin, ein Docker-Image für diese Registrierung mit dem Befehl docker tag zu markieren:

```none
sudo docker tag [image name] localhost:5000/[image name]
```

Um beispielsweise das Image **my-nginx** für Ihre selbst gehostete Registry neu zu markieren, lautet der Befehl:

```none
sudo docker tag my-nginx localhost:5000/my-nginx
```

Sie können dieses Image dann mit folgendem Befehl in Ihre Registry verschieben:

```none
sudo docker push localhost:5000/[image name]
```

Der Befehl, um das Image, das wir im obigen Beispiel erstellt haben, zu verschieben, lautet:

```none
sudo docker push localhost:5000/my-nginx
```

## Abrufen eines Images aus Ihrer selbst gehosteten Registry

Der Befehl, um ein Image aus Ihrer Registry zu laden, lautet:

```none
sudo docker pull localhost:5000/[image name]
```

Um beispielsweise das Image, das wir im obigen Beispiel erstellt haben, zu laden, lautet der Befehl:

```none
sudo docker pull localhost:5000/my-nginx
```

## Stoppen und Löschen Ihrer selbst gehosteten Registrierung

Wenn Sie einen Fehler machen oder einfach nur die von Ihnen erstellte Registrierung zusammen mit allen dort gespeicherten Images stoppen und entfernen möchten, verwenden Sie folgenden Befehl:

```none
sudo docker stop [repository name] && docker rm -v [repository name]
```

Um zum Beispiel die von uns oben erstellte Registry mit Namen My-registry zu stoppen und zu entfernen, lautet der Befehl:

```none
sudo docker stop my-registry && docker rm -v my-registry
```

## Externen Zugriff auf Ihre selbst gehostete Registry ermöglichen

Bevor Sie mit der Freigabe Ihrer privaten Registry beginnen, müssen Sie den Zugriff mit TLS über ein [SSL-Zertifikat](https://www.ionos.de/sicherheit/ssl-zertifikat "SSL-Zertifikat") sichern.

Erstellen Sie ein Verzeichnis namens certs in Ihrem Docker-Root-Verzeichnis. Auf den meisten Systemen ist dies das Verzeichnis **/var/lib/docker**:

```none
sudo mkdir /var/lib/docker/certs
```

Geben Sie IhreR SSL-Zertifikat-Datei (cert) den Namen **domain.crt** und Ihrem SSL-Schlüssel den Namen **domain.key**.

Wenn Sie eine bestehende, selbst gehostete Registry aktualisieren, müssen Sie diese mit folgendem Befehl stoppen:

```none
sudo docker stop [repository name]
```

Starten (oder restarten) Sie Ihre selbst gehostete Registry mit dem Befehl:

```none
sudo docker run -d -p 5000:5000 --restart=always --name my-registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
```

## Zugriff auf Ihre selbst gehostete Registry von einem anderen Host aus

Um von einem anderen Host aus auf Ihre Registry zuzugreifen, verwenden Sie **\[ihre Domain\]:5000/\[Bildname\]**.

Um beispielsweise ein Image mit dem Namen my-nginx an eine Registry zu übertragen, die auf example.com gehostet wird, müssen Sie zuerst das Image markieren:

```none
sudo docker tag my-nginx example.com:5000/my-nginx
```

Sie können das Image dann mit folgendem Befehl verschieben:

```none
sudo docker push example.com:5000/ubuntu
```

Um das gleiche Bild aus dieser Registry zu laden, verwenden Sie den Befehl:

```none
sudo docker pull example.com:5000/ubuntu
```

## Einrichten eines Docker Hub Repository

Die [Docker Hub-Website](https://hub.docker.com/ "Docker Hub-Website") ist ein praktischer Ort, um Ihre Docker-Images in der Cloud zu speichern und zu organisieren. Sie können diese Website verwenden, um Ihr eigenes öffentliches oder privates Repository zu hosten, den Benutzerzugriff auf das Repository zu verwalten und von überall online auf das Repository zuzugreifen.

## Offizielle Images

Der Docker Hub ist auch ein ausgezeichneter Ort, um öffentliche Docker-Images zu durchsuchen. Beachten Sie, dass nur die mit “Official” gekennzeichneten Repositories die offiziellen Versionen der Images enthalten.

[![Bild: Repositories](https://www.ionos.de/digitalguide/fileadmin/_processed_/6/2/csm_docker-hub-14-official-repos_3c28eb514f.webp "Repositories")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-14-official-repos.jpg) Repositories Wir empfehlen, dass Sie nur offizielle Docker-Images laden und ausführen.

## Erstellen eines Docker-Hub-Kontos

Um zu beginnen, müssen Sie ein Docker-Hub-Konto einrichten. Füllen Sie Ihre Kontodaten auf der [Hauptseite von Docker Hub](https://hub.docker.com/ "Docker Hub") aus und klicken Sie auf **Anmelden**.

[![Bild: Docker-Hub-Konto einrichten](https://www.ionos.de/digitalguide/fileadmin/_processed_/0/3/csm_docker-hub-1-signup_c423ccf497.webp "Docker-Hub-Konto einrichten")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-1-signup.jpg) Docker-Hub-Konto einrichten Überprüfen Sie Ihr E-Mail-Konto auf eine Nachricht, um Ihre Kontoaktivierung abzuschließen, und melden Sie sich dann bei der Website an.

[![Bild: Docker Login](https://www.ionos.de/digitalguide/fileadmin/_processed_/b/d/csm_docker-hub-2-sign-in_654d38999c.webp "Docker Login")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-2-sign-in.jpg) Docker Login Jedes Docker-Hub-Konto kann eine Reihe von kostenlosen öffentlichen Repositories erstellen. Jedes Konto wird auch mit einem kostenlosen privaten Repository geliefert. Sie können gegen eine monatliche Gebühr weitere private Repositories erwerben.

### Organisation und Teams Aufbauen

Mit Docker Hub können Sie Organisationen und Teams einrichten, um eine Reihe von Benutzern zu verwalten. Dies ist praktisch, wenn Sie mehrere verschiedene Personengruppen haben und deren Berechtigungen separat verwalten müssen.

Die drei Zugriffsebenen sind:

- Lesen (kann nur Images laden, nicht verschieben)
- Schreiben (kann sowohl Images laden als auch verschieben)
- Admin (kann Images laden und verschieben sowie Benutzer hinzufügen und löschen)

#### Erstellen einer Organisation

Klicken Sie im Docker Hub Dashboard auf **Organisation erstellen** (Create Org.).

[![Bild: Docker Hub - Organisation erstellen](https://www.ionos.de/digitalguide/fileadmin/_processed_/6/5/csm_docker-hub-3-create-org_a1bc6bf329.webp "Docker Hub - Organisation erstellen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-3-create-org.jpg) Docker Hub - Organisation erstellen Geben Sie die Details des Unternehmens ein und klicken Sie dann auf **Erstellen**.

[![Bild: Docker Hub - Organisation erstellen Formular](https://www.ionos.de/digitalguide/fileadmin/_processed_/b/2/csm_docker-hub-4-org-details_b059a64081.webp "Docker Hub - Organisation erstellen Formular")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-4-org-details.jpg) Docker Hub - Organisation erstellen Formular Jedes Unternehmen beginnt mit einem Standardteam, das als **Eigentümer** (Owner) bezeichnet wird.

Um jemand anderen zu den **Eigentümern** hinzuzufügen, füllen Sie den Benutzernamen des Docker Hubs aus und klicken Sie auf das blaue +.

[![Bild: Docker Hub - Eigentümer hinzufügen](https://www.ionos.de/digitalguide/fileadmin/_processed_/9/5/csm_docker-hub-5-add-to-owners_09da6da1a2.webp "Docker Hub - Eigentümer hinzufügen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-5-add-to-owners.jpg) Docker Hub - Eigentümer hinzufügen ### Einstellen Ihrer Organisation auf öffentlich oder privat

Unternehmen sind standardmäßig **öffentlich**. Um Ihre Organisation auf **Privat** einzustellen, klicken Sie auf der Hauptseite der Organisation auf **Einstellungen** (settings).

[![Bild: Docker Hub - Einstellungen](https://www.ionos.de/digitalguide/fileadmin/_processed_/f/d/csm_docker-hub-8-org-click-settings_2a497d5b07.webp "Docker Hub - Einstellungen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-8-org-click-settings.jpg) Docker Hub - Einstellungen Klicken Sie auf **Privat** und dann auf **Speichern**.

[![Bild: Organisation speichern](https://www.ionos.de/digitalguide/fileadmin/_processed_/6/9/csm_docker-hub-9-create-repo_02b46e3c1f.webp "Organisation speichern")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-9-create-repo.jpg) Organisation speichern ### Hinzufügen eines Teams

Um ein Team hinzuzufügen, wählen Sie Ihren Organisationsnamen aus dem Dropdown-Menü (falls er nicht bereits ausgewählt ist) und klicken Sie auf **Teams**.

[![Bild: Docker Hub - Team hinzufügen](https://www.ionos.de/digitalguide/fileadmin/_processed_/b/7/csm_docker-hub-6-create-team_b69abb9894.webp "Docker Hub - Team hinzufügen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-6-create-team.jpg) Docker Hub - Team hinzufügen Klicken Sie auf der Seite Teams auf **Team hinzufügen** (Create team).

[![Bild: Docker - Team hinzufügen](https://www.ionos.de/digitalguide/fileadmin/_processed_/f/b/csm_docker-hub-20-create-team_1efcdecceb.webp "Docker - Team hinzufügen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-20-create-team.jpg) Docker - Team hinzufügen Füllen Sie den Teamnamen und die Beschreibung aus und klicken Sie dann auf **Hinzufügen**.

[![Bild: Docker - Teamname](https://www.ionos.de/digitalguide/fileadmin/_processed_/e/a/csm_docker-hub-7-create-team_e03963b7de.webp "Docker - Teamname")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-7-create-team.jpg) Docker - Teamname  Hinweis Jedes Mal, wenn Sie jemanden zu einem Team hinzufügen, erhält er eine E-Mail von Docker Hub, die ihn über die Änderung informiert.

### Erstellen eines Docker Hub Repository

Klicken Sie im Docker Hub Dashboard auf **Repository erstellen.**

[![Bild: Docker - Repository erstellen](https://www.ionos.de/digitalguide/fileadmin/_processed_/6/9/csm_docker-hub-9-create-repo_02b46e3c1f.webp "Docker - Repository erstellen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-9-create-repo.jpg) Docker - Repository erstellen Füllen Sie die **Repository**-Details aus (stellen Sie sicher, dass die Dropdown-Liste Sichtbarkeit entweder **öffentlich** oder **privat** ist), und klicken Sie dann auf **Erstellen**.

[![Bild: Docker - Ausfüllen der Repository-Details](https://www.ionos.de/digitalguide/fileadmin/_processed_/1/3/csm_docker-hub-10-repo-details_0eb1332cee.webp "Docker - Ausfüllen der Repository-Details")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-10-repo-details.jpg) Docker - Ausfüllen der Repository-Details Auf der nächsten Seite finden Sie Details zu Ihrem neuen Repository, einschließlich des Docker Pull-Befehls für Ihre Images.

[![Bild: Details zum neuen Repository](https://www.ionos.de/digitalguide/fileadmin/_processed_/3/1/csm_docker-hub-11-repo-created_d221791cdb.webp "Details zum neuen Repository")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-11-repo-created.jpg) Details zum neuen Repository ### Einstellen des Teamzugriffs auf das Repository

Um den Zugriff auf Ihr Repository nach Team einzurichten, klicken Sie auf **Teammitglieder** (collaborators).

[![Bild: Docker- Teammitglieder](https://www.ionos.de/digitalguide/fileadmin/_processed_/9/e/csm_docker-hub-12-click-collaborators_7c9f55caa2.webp "Docker- Teammitglieder")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-12-click-collaborators.jpg) Docker- Teammitglieder In unserem Beispiel haben wir zwei Teams:

- Die QS-Abteilung jdoesoftwareqa, die Lese- (aber nicht Schreib-)Zugriff auf die Images benötigt.
- Die Entwickler jdoesoftwaredev, die sowohl Lese- als auch Schreibzugriff auf die Images benötigen.

Es ist nicht notwendig, dass die Qualitätssicherung aktualisierte Images in das Repository schiebt, und wir wollen verhindern, dass sie dies aus Versehen tun. Die Entwickler benötigen jedoch vollen Zugriff auf das Repository.

Aus Sicherheitsgründen ist es ratsam, alle Docker-Hub-Benutzer in mindestens zwei Gruppen einzuteilen:

Um den Zugriff eines Teams festzulegen, wählen Sie das Team und die Zugriffsebene aus den Dropdown-Menüs aus und klicken Sie dann auf Team hinzufügen.

[![Bild: Docker Hub - Team hinzufügen](https://www.ionos.de/digitalguide/fileadmin/_processed_/b/b/csm_docker-hub-13-set-access_45b5bd0659.webp "Docker Hub - Team hinzufügen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-13-set-access.jpg) Docker Hub - Team hinzufügen ### Zugriff auf das Docker Hub Repository über die Kommando-Zeile

Um über die Kommando-Zeile auf Ihr Docker Hub-Repository zugreifen zu können, müssen Sie sich zunächst mit dem von Ihnen auf der Website erstellten Login bei Docker Hub authentifizieren:

```none
sudo docker login
```

Sie werden aufgefordert, Ihren Docker-Hub-Anmeldenamen, Ihr Passwort und Ihre E-Mail-Adresse anzugeben.

[![Bild: Docker - Anmeldung](https://www.ionos.de/digitalguide/fileadmin/_processed_/6/d/csm_docker-hub-15-login-from-command-line_fd701e0818.webp "Docker - Anmeldung")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-15-login-from-command-line.jpg) Docker - Anmeldung Sobald Sie sich angemeldet haben, können Sie mit den Befehlen docker push und docker pull auf Ihr Docker Hub Repository zugreifen.

### Image in Ihr Docker Hub Repository verschieben

Um ein Image in Ihr Docker-Hub-Repository hochzuladen (Push), müssen Sie zunächst das Bild vorbereiten. Folgendes wird benötigt:

- Ihr Docker Hub-Benutzername oder der Name Ihrer Docker-Hub-Organisation.
- Der Name Ihres Docker-Hub-Repositorys.
- Optional: Ein Versions-Tag. (Wenn kein Tag angegeben ist, wird er standardmäßig auf “latest.” gesetzt)

Sie können ein bestehendes Image mit folgendem Befehl umbenennen:

```none
sudo docker tag [existing image name or ID] [Docker Hub username or organization]/[repository name]:[tag]
```

Wenn der Docker-Hub-Benutzer jdoe beispielsweise ein aktuelles Image mit dem Namen **my-ubuntu-test** in ein Docker-Hub-Repository mit dem Namen **ubuntu-test** hochladen und es mit einem Tag der Version 1.0 versehen möchte, müsste das Image zunächst mit folgendem Befehl umbenannt werden:

```none
sudo docker tag my-ubuntu-test jdoe/ubuntu-test:1.0
```

Wenn jdoe plant, das Image in das Repository unter der Organisationseinheit jdoesoftware zu verschieben, dann lautet der Befehl:

```none
sudo docker tag my-ubuntu-test jdoesoftware/ubuntu-test:1.0
```

Sie können überprüfen, ob das Image korrekt umbenannt wurde, indem Sie alle Docker-Images auf Ihrem System mit diesem Befehl auflisten:

```none
sudo docker images
```

Als nächstes können Sie das Image mit folgendem Befehl in das Repository verschieben:

```none
sudo docker push [Docker Hub username or organization name]/[repository name]:[tag]
```

Der Befehl, um das Image, das wir im vorherigen Beispiel umbenannt haben, zu verschieben, lautet:

```none
sudo docker push jdoe/ubuntu-test:1.0
```

Oder:

```none
sudo docker push jdoesoftware/ubuntu-test:1.0
```

Um zu überprüfen, ob das Image an den Docker Hub übertragen wurde, gehen Sie zum Docker-Hub-Dashboard und klicken Sie auf Details für Ihr Repository.

[![Bild: Details für Ihr Repository](https://www.ionos.de/digitalguide/fileadmin/_processed_/7/9/csm_docker-hub-16-click-details_f7b9586f22.webp "Details für Ihr Repository")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-16-click-details.jpg) Details für Ihr Repository Klicken Sie auf der Repository-Seite auf Tags.

[![Bild: Repository-Tags.](https://www.ionos.de/digitalguide/fileadmin/_processed_/3/a/csm_docker-hub-17-click-tags_5e8cf69cef.webp "Repository-Tags.")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-17-click-tags.jpg) Repository-Tags. Hier werden die Versionen aufgelistet, die in das Repository verschoben wurden, zusammen mit der Zeit der letzten Aktualisierung.

[![Bild: Repository Aktualisierungen](https://www.ionos.de/digitalguide/fileadmin/_processed_/e/b/csm_docker-hub-18-show-tags_6420dcfb79.webp "Repository Aktualisierungen")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-18-show-tags.jpg) Repository Aktualisierungen ### Laden eines Images aus Ihrem Docker Hub Repository

Der Befehl zum Aufrufen eines Images aus Ihrem Docker Hub-Repository wird auf der Repository-Seite auf der Docker Hub-Website angezeigt.

[![Bild: Aufrufen eines Images aus dem Docker Hub-Repository](https://www.ionos.de/digitalguide/fileadmin/_processed_/d/5/csm_docker-hub-19-pull-command_b4f15f2111.webp "Aufrufen eines Images aus dem Docker Hub-Repository")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/docker-hub-19-pull-command.jpg) Aufrufen eines Images aus dem Docker Hub-Repository Der Befehl lautet:

```none
sudo docker pull [your Hub username or organization name]/[your Hub repository name]:[tag]
```

Um beispielsweise das Image **jdoe/ubuntu-test:1.0** zu laden, das wir im obigen Abschnitt auf den Hub geschoben haben, lautet der Befehl:

```none
sudo docker pull jdoe/ubuntu-test:1.0
```

Oder:

```none
sudo docker pull jdoesoftware/ubuntu-test:1.0
```

Sie können überprüfen, ob das Image korrekt umbenannt wurde, indem Sie alle Docker-Images auf Ihrem System mit folgendem Befehl auflisten:

```none
sudo docker images
```


This is a markdown version of: [https://www.ionos.de/digitalguide/server/knowhow/einrichten-eines-docker-repository/](https://www.ionos.de/digitalguide/server/knowhow/einrichten-eines-docker-repository/) for AI/LLM consumption.