registry-ui docker搭建私有仓库的一些问题笔记

搭建私有仓库,用docker-registry 作为仓库,docker-registry-ui  作为界面。

原来的docker-compose.yml如下

services:
  registry:
    image: registry:2
    container_name: registry
    ports:
      - "5000:5000"  # 外网访问的端口
    volumes:
      - ./data:/var/lib/registry  # 用于持久化数据存储
    environment:
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin: '[http://192.168.77.130:8051]'
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]'
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]'
    restart: always

  registry-ui:
    image: joxit/docker-registry-ui
    container_name: registry-ui
    environment:
      - REGISTRY_URL=http://127.0.0.1:5000
      - PUBLIC_URL=http://192.168.77.130:8051
      - NGINX_PROXY_PASS_URL=http://127.0.0.1:5000
      - SINGLE_REGISTRY=true
      - NGINX_RESOLVER=127.0.0.1
    ports:
      - "8051:80"  # Frontend 服务端口
    depends_on:
      - registry
    restart: always

如上启动之后,登录仓库界面会有跨域问题:

关键点在于        - REGISTRY_URL=http://127.0.0.1:5000  此处不能写127.0.0.1  会导致跨域问题。要写成      - REGISTRY_URL=http://192.168.77.130:5000  用registry容器所在的地址。

原因:容器内的 127.0.0.1 不等于 宿主机的 127.0.0.1。你在 docker-registry-ui 容器里配置的:

yaml- REGISTRY_URL=http://127.0.0.1:5000 

它指的是 容器自身的 127.0.0.1:5000,而不是宿主机的 127.0.0.1:5000 —— 所以访问会失败。

你可能感兴趣的:(ui,docker,笔记)