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