Docker Registry ist eine Softwareanwendung, mit der Sie Ihre Bilder in Ihrem Unternehmen erstellen und speichern können.
Sie können Ihre Bilder auch auf der Website erstellen und hochladen Docker Öffentliche Hub-Registrierung. Diese Bilder werden jedoch öffentlich und jeder kann auf Ihre Bilder zugreifen und sie verwenden. Es wird daher empfohlen, die private Docker-Registrierung zu verwenden, mit der Sie Ihre Bilder steuern und schützen können.
In diesem Tutorial werde ich erklären, wie Sie eine private Docker-Registrierung unter Ubuntu 18.04 einrichten.
Requirements
- Zwei Ubuntu-Server mit den Root-Anmeldeinformationen
- Eine statische IP-Adresse auf beiden Servern
Getting Started
Bevor Sie beginnen, müssen Sie die Auflösung des Hostnamens auf beiden Systemen konfigurieren. Somit können beide Systeme über den Hostnamen miteinander kommunizieren.
Führen Sie dazu auf beiden Systemen den folgenden Befehl aus:
echo "192.168.0.100 server" >> /etc/hosts
echo "192.168.0.102 client" >> /etc/hosts
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Install Docker
Als Nächstes müssen Sie das Docker-Paket auf beiden Systemen installieren. Standardmäßig ist Docker im Ubuntu 18.04-Standardrepository nicht verfügbar. Sie müssen sie also hinzufügen.
Installieren Sie zunächst die erforderlichen Pakete mit dem folgenden Befehl:
apt-get install apt-transport-https software-properties-common ca-certificates curl -y
Fügen Sie als Nächstes das Docker-Repository mit dem folgenden Befehl hinzu:
wget https://download.docker.com/linux/ubuntu/gpg
apt-key add gpg
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" | tee /etc/apt/sources.list.d/docker.list
Aktualisieren Sie als Nächstes das Repository und installieren Sie Docker mit dem folgenden Befehl:
apt-get update -y
apt-get install docker-ce -y
Überprüfen Sie nach Abschluss der Installation den Status des Dockers mit dem folgenden Befehl:
systemctl status docker
Sie sollten die folgende Ausgabe sehen:
docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-05-01 15:08:45 UTC; 7min ago Docs: https://docs.docker.com Main PID: 2658 (dockerd) Tasks: 8 CGroup: /system.slice/docker.service └─2658 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Install Docker Registry Container
Zunächst müssen Sie den Registrierungscontainer auf Ihrem Serversystem installieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
docker pull registry
Nach dem Herunterladen des Registrierungsabbilds sollte die folgende Ausgabe angezeigt werden:
Using default tag: latest
latest: Pulling from library/registryc
87736221ed0: Pull complete
1cc8e0bb44df: Pull complete
54d33bcb37f5: Pull complete
e8afc091c171: Pull complete
b4541f6d3db6: Pull complete
Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
Status: Downloaded newer image for registry:latest
Starten Sie als Nächstes den Registrierungscontainer mit dem folgenden Befehl:
docker run -d -p 5000:5000 --restart=always --name registry registry
Sie können den laufenden Registrierungscontainer mit dem folgenden Befehl anzeigen:
docker ps
Sie sollten die folgende Ausgabe sehen:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4912e461745f registry "/entrypoint.sh /etc…" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp registry
Create a Docker Container Image on the Client System
Ihr Registrierungsserver ist jetzt einsatzbereit. Es ist Zeit, ein Docker-Container-Image auf dem Client-System zu erstellen.
Melden Sie sich zunächst beim Client-System an und erstellen Sie eine Docker-Datei, um das Nginx-Webserver-Image zu erstellen:
mkdir Image
cd Image
nano dockerfile
Fügen Sie die folgenden Zeilen hinzu:
FROM ubuntu:18.04
LABEL project="Nginx Web Server Image"
LABEL maintainer "hitjethva@gmail.com"
RUN \a
pt-get update && \
apt-get install -y nginx && \
rm -rf /var/lib/apt/lists/* && \
echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
chown -R www-data:www-data /var/lib/nginx
# Define mountable directories.
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
# Define working directory.WORKDIR /etc/nginx
# Define default command.CMD ["nginx"]
# Expose ports.
EXPOSE 80
EXPOSE 443
Speichern und schließen Sie die Datei. Erstellen Sie dann ein Nginx-Image, indem Sie den folgenden Befehl ausführen:
docker build -t ubuntu:nginx .
Nachdem Sie das Nginx-Image erfolgreich erstellt haben, sollte die folgende Ausgabe angezeigt werden:
---> bc6e61406108
Step 5/9 : VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
---> Running in 30832b7ff816
Removing intermediate container 30832b7ff816
---> 1940ec1c2225Step 6/9 : WORKDIR /etc/nginx
---> Running in 88755ef2d7c8
Removing intermediate container 88755ef2d7c8
---> 4fe930c96a73Step 7/9 : CMD ["nginx"]
---> Running in c8d492317d88
Removing intermediate container c8d492317d88
---> 3218acfd15f8Step 8/9 : EXPOSE 80
---> Running in 35921ef45db9Removing intermediate container 35921ef45db9
---> a6a299b86a6dStep 9/9 : EXPOSE 443
---> Running in 755441cefe2f
Removing intermediate container 755441cefe2f
---> 9be7dc6b0825
Successfully built 9be7dc6b0825
Successfully tagged ubuntu:nginx
Als Nächstes können Sie das generierte Bild mit dem folgenden Befehl überprüfen:
docker images
Sie sollten Ihr Nginx-Bild in der folgenden Ausgabe sehen:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu nginx 9be7dc6b0825 About a minute ago 161MB
ubuntu 18.04 d131e0fa2585 4 days ago 102MB
registry latest f32a97de94e1 7 weeks ago 25.8MB
Als Nächstes müssen Sie Ihr Nginx-Image im Format "Registrierungsserver: Portnummer / Bildname: Tag" umbenennen.
Sie können dies mit dem folgenden Befehl tun:
docker tag ubuntu:nginx server:5000/ubuntu:nginx
Upload Nginx Image on Private Registry Server
Sie können Ihr generiertes Nginx-Image jetzt mit dem Push-Befehl auf Private Registry Server hochladen:
docker push server:5000/ubuntu:nginx
Sobald das Bild erfolgreich hochgeladen wurde, sollte die folgende Ausgabe angezeigt werden:
The push refers to repository [server:5000/ubuntu]
2e5us8en4s9d: Pushed
l1is9e9d8j7e: Pushed
nginx: digest: sha256:aa0d8fi49dir0d7rn33nee122b size: 1862
Sie können das hochgeladene Bild auch mit dem folgenden Befehl vom Registrierungsserver herunterladen:
docker pull server:5000/ubuntu:nginx
Ich hoffe, Sie haben jetzt genug Wissen, um Ihren eigenen privaten Docker-Registrierungsserver auf einem Produktionsserver einzurichten. Wenn Sie mehr Docker zum Anfassen benötigen, lesen Sie dies Online Kurs.