网页界面镜像是我汉化制作的,欢迎关注我B站账号 秦曱凧 (读作 qín yuē zhēng)
后面有新的项目,会在B站先发,欢迎关注。
项目介绍
这个项目是搭配Docker自建仓库的网页界面。必须要部署Docker官方出的registry镜像才可以。
欢迎start
有需要帮忙部署这个项目的朋友,一杯奶茶,即可程远程帮你部署,需要可联系。
微信号 E-0_0-
闲鱼搜索用户 明月人间
或者邮箱 firfe163@163.com
视频教程
Docker私有仓库部署
compose 方式部署文件内容
name: registry
services:
registry:
container_name: registry
image: registry:3.0.0
network_mode: bridge
restart: always
cpus: 1
mem_limit: 512m
logging:
options:
max-size: "1m"
max-file: "3"
ports:
- 5000:5000
volumes:
- ./data:/var/lib/registry/docker/registry/v2
# 这个容器指定映射路径,数据在上面的目录中
- ./data-null:/var/lib/registry
environment:
TZ: Asia/Shanghai
# 允许删除镜像操作
REGISTRY_STORAGE_DELETE_ENABLED: true
网页界面部署
配合自建镜像仓库registry的网页端。
compose 方式部署文件内容
name: registry-browser
services:
registry-browser:
container_name: registry-browser
image: swr.cn-north-4.myhuaweicloud.com/firfe/drb_zh-cn:1.8.5
network_mode: bridge
restart: always
cpus: 1
mem_limit: 512m
logging:
options:
max-size: "1m"
max-file: "3"
environment:
TZ: Asia/Shanghai
TIME_ZONE: Asia/Shanghai
SECRET_KEY_BASE: docker-registry-browser
# 在存储库列表上启用折叠的列表
ENABLE_COLLAPSE_NAMESPACES: true
# 显示删除操作
ENABLE_DELETE_IMAGES: true
# registry地址 按照下面示例的格式,改成自己的
DOCKER_REGISTRY_URL: http://192.168.1.1:5000
# 镜像拉取前缀 按照下面示例的格式,改成自己的
PUBLIC_REGISTRY_URL: 192.168.1.1:5000
ports:
- 8080:8080
说明
- 环境变量
- ENABLE_DELETE_IMAGES: "true" 允许删除容器
- PORT 监听端口 默认 8080
- SECRET_KEY_BASE 加密密钥 必须有
- ENABLE_COLLAPSE_NAMESPACES: true 在存储库列表上启用折叠的列表
- CATALOG_PAGE_SIZE: 100 一页最大数量 默认100
- 子路径
在同一主机上同时公开 docker-registry API 和 docker-registry-browser
-
SCRIPT_NAME: /子路径
-
RAILS_RELATIVE_URL_ROOT: /子路径 对网页设置子路径 默认是管跟路径
-
配置示例
environment:
SCRIPT_NAME: "/browser"
RAILS_RELATIVE_URL_ROOT: "/browser"
-
Nginx 配置
确保在 /browser/ 中 proxy_pass 指令中使用的 URL 末尾添加 /
server {
listen 8000;
server_name 127.0.0.1;
location /browser/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /v2/ {
client_max_body_size 4G;
proxy_pass http://127.0.0.1:5000;
}
}
- PUBLIC_REGISTRY_URL 设置 docker 注册表 URL 的公共版本,并将用于显示自定义 docker pull 命令 默认没有,在网页端一键复制镜像拉取命令
- 仓库认证
不写的话需要每次都要在浏览器中填写
- BASIC_AUTH_USER 允许定义用于针对 docker-registry API 的 HTTP 基本身份验证的用户名
- BASIC_AUTH_PASSWORD 针对 docker-registry API 的 HTTP 基本身份验证的密码
nginx 设置
通过nginx设置反向代理,把registry的仓库和网页端代理到一个端口上,解决跨域问题
server {
listen 端口;
listen [::]:端口;
# 要添加证书,就用用下面注释的配置
#listen 端口 ssl;
#listen [::]:端口 ssl;
#server_name 域名;
#ssl_certificate 证书;
#ssl_certificate_key 私钥;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
# 网页端地址
proxy_pass http://127.0.0.0:1040;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /v2/ {
# 大小 大于镜像大小
client_max_body_size 4G;
# registry 地址
proxy_pass http://127.0.0.0:5000;
}
}
效果图