- registry - Official Image | Docker Hub
- Native basic auth - Restricting access - Deploy a registry server | CNCF Distribution
htpasswdファイルの作成
htpasswdファイルを作成します。 registryイメージ(Distribution Registry)はbcrypt形式のパスワードのみサポートしているため、パスワードをbcrypt形式でハッシュ化する必要があります。
sudo apt install apache2-utils
mkdir auth
cd auth
htpasswd -cB htpasswd myuser
永続化ディレクトリの作成
mkdir data
docker-compose.ymlファイルの作成
services:
registry:
image: registry:2
restart: always
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
# ports:
# - "0.0.0.0:5000:5000"
volumes:
- ./data:/var/lib/registry
- ./auth:/auth
コンテナの実行
sudo docker compose up -d
コンテナのTCP 5000番ポートでDocker Registry HTTP APIがリッスンします。
このポート宛にCloudflaredやリバースプロキシを設定して、https://docker.example.comのようにサービスを公開します。
設定後、dockerコマンドから以下のように利用できます(プッシュ・プルいずれも認証が必要)。
sudo docker login -u myuser docker.example.com
sudo docker build -t docker.example.com/myuser/myimage:0.1.0 .
sudo docker push docker.example.com/myuser/myimage:0.1.0
sudo docker pull docker.example.com/myuser/myimage:0.1.0