Eigene Docker registry erstellen

Compose File für docker registry

Ordner anlegen und folgendes compose file darin erstellen. Im Data Verzeichnis im aktuellen Projektverzeichnis werden die Images gespeichert. Die Passwörter können im auth Verzeichnis gespeichert werden. - Die Passwörter müssen mittels htpasswd verschlüsselt werden.

version: '3'

services:  

  app:
    restart: always
    image: registry:2
    ports:
      - 5000:5000
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
    volumes:
      - ./data:/var/lib/registry
      - ./auth:/auth

Wichtig, htpasswd muss mit folgenden Parametern aufgerufen werden. (kann auch auf einer anderen Maschine aufgerufen werden)

htpasswd -Bbn testuser testpassword

Testen:

Image von einem public registry pullen

docker pull mysql:8

Tagen und aufs private registry pushen

docker tag mysql:8 localhost:5000/mysql:8
docker push localhost:5000/mysql:8

Pullen des Images vom private registry

docker pull localhost:5000/mysql:8

Privates Image in einem compose file verwenden.

mysql:
    restart: always
    image: localhost:5000/mysql:8
    container_name: mysql
    command: '--skip-log-bin'
    ports:
      - 3306:3306

Privates Image in einem dockerfile verwenden.

FROM localhost:5000/php:8.2-apache
RUN docker-php-ext-install pdo pdo_mysql
ENV APP_ROOT /app
WORKDIR ${APP_ROOT}
COPY ${APP_ROOT}/src /var/www/html