2025年6月9日月曜日

docker-registry-ui を localhost で起動する

docker-registry-ui を localhost で起動する

概要

registry はすでに https で起動している想定です

環境

  • macOS 15.5
  • docker 28.1.1
  • docker-registry-ui 2.5.7

Registry 側の CORS 設定

要するに localhost からアクセスできるように CORS を許可します
Access-Control-Allow-Origin はアスタリスクでもいいですが可能な限り制限しましょう

  # storage
  registry:
    image: registry:2
    ports:
      - "5000:5000"
    volumes:
      - "/home/user01/homepage/registry:/var/lib/registry"
      - "/home/user01/homepage/registry/auth_config.yml:/config/auth_config.yml"
      - "/etc/letsencrypt/live/user01.com/privkey.pem:/certs/server.key"
      - "/etc/letsencrypt/live/user01.com/fullchain.pem:/certs/server.crt"
    environment:
      - REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt
      - REGISTRY_HTTP_TLS_KEY=/certs/server.key
      - REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin=["http://localhost:8080"]
      - REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods=["HEAD","GET","OPTIONS","DELETE"]
      - REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials=["true"]
      - REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers=["Authorization","Accept","Cache-Control"]
      - REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers=["Docker-Content-Digest"]
      - REGISTRY_STORAGE_DELETE_ENABLED=true
    restart: always

docker-reigstry-ui 起動

docker コマンドで起動します

docker run -d \        
  -p 8080:80 \
  -e REGISTRY_URL=https://user01.com:5000 \
  -e DELETE_IMAGES=true \
  -e REGISTRY_TITLE="My Private Registry" \
  --name registry-ui \
  joxit/docker-registry-ui:latest

動作確認

localhost:8080 にアクセスして registry の内容が確認できれば OK です

最後に

ポイントは CORS の許可かなと思います
http な registry に対しても使うことはできますが https でアクセス可能な環境であればこれが一番簡単かなと思います

当然ですが registry (今回で言うところの https://user01.com:5000) に対してはアクセス可能な環境で docker-registry-ui を起動してアクセスする必要があります

参考サイト

0 件のコメント:

コメントを投稿