結論
Webインターフェイス を用いるためにはいくつかの選択肢がありますが、Raspberry Pi でも使えて*1、GitHub のスター数も考慮した結果、docker-registry-ui
を用いることにしました。
Raspberry Pi で docker-registry-ui を用いるための docker-compose.yml
docker-compose.yml
は以下のようになります。なお、Docker Registry 本体の部分については こちら で説明しているとおりです。
image
の部分で joxit/docker-registry-ui:arm64v8-static
と、arm64v8-static
のタグを用いている のが Raspberry Pi で動かすためのポイントです。
version: '2' services: registry: # https://hub.docker.com/_/registry?tab=tags&page=1&ordering=last_updated image: registry:2.7.1 container_name: my_docker_registry environment: REGISTRY_HTTP_SECRET: ABCDEF1234567890 REGISTRY_HTTP_TLS_CERTIFICATE: /certs/certificate.crt REGISTRY_HTTP_TLS_KEY: /certs/private.key REGISTRY_HTTP_RELATIVEURLS: "true" REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd volumes: - ./registry:/var/lib/registry - ./certs:/certs - ./auth:/auth ports: - 12345:5000 restart: always ui: image: joxit/docker-registry-ui:arm64v8-static container_name: my_docker_registry_ui ports: - 54321:80 environment: REGISTRY_URL: https://registry:5000 restart: always
REGISTRY_URL の指定が重要
docker-compose.yml
の中で REGISTRY_URL: https://registry:5000
と環境変数をしているところがポイントです。
CORS による接続失敗を避けるため、
REGISTRY_URL
という変数名で指定をして- スキームには
HTTPS
を用い - Docker のネットワーク内での接続なので
registry
という名前で URL を指定している
というところが重要です。
補足
- pull してくる Dockerイメージのタグを変更すれば、上記の内容は Raspberry Pi に限定することなく他の OS(パッケージ)に当てはめることができます
- Docker Registry の各種設定は YAML ファイルで一括して行うことが推奨されています
参考
- Docker プライベートレジストリのWebUI調査 (1) - Qiita
- Docker プライベートレジストリのWebUI調査 (2) - Qiita
- Docker プライベートレジストリのWebUI調査 (3) - Qiita
- Docker プライベートレジストリのWebUI調査 (4) - Qiita
- Docker プライベートレジストリのWebUI調査 (5) - Qiita
- Docker プライベートレジストリのWebUI調査 (6) - Qiita
*1:arm 版が用意されていて