IMG_9940.txt.txt
Edited: Thursday 1 May 2025

Friday, June 25, 2021 at 10:31

Docker Compose 部 署 配 置 和 使 用 Registry 私 有
镜 像 仓 库

Stille
思 有 云

前 言

早 前 本 站 介 绍 过 使 用 docker 官 方 registry 来 部 署 加 速 镜 像 仓 库 和 私 有 镜
像 仓 库 的 教 程 . 近 期 由 于 需 要 使 用 gcr.io 谷 歌 的 镜 像 仓 库 , 发 现 国 内 无 法
访 问 , 于 是 就 着 手 在 公 网 搭 建 自 己 的 私 有 镜 像 仓 库 方 便 使 用 , 同 时 配 置
HTrTP8 和 账 号 密 码 确 保 安 全 .

本 文 将 安 装 部 署 ,Push,Pull 查 询 , 管 理 和 删 除 镜 像 等 基 础 功 能 分 享 给 大
家 .

y> 本 文 为 o 衍 如 需 转 载 请 联 系 作 者
获 得 授 权 , 并 注 明 转 载 地

部 署

安 装 服 务 端

[ 余 督 刀 育 oreen ] 怀 文 以 部 署 至 公 网 . 开 启 账 号 密 码 , 并 配 置 域 名 瓜
命 令 参 数 过 多 , 为 方 便 配 置 参 数 , 建 议 使 用 docker compose 部 署 .[/scodei]
创 建 htpasswd 账 号 密 码
安 装 服 务 端

希 人 o 1 命 林
命 令 参 数 过 多 , 为 方 便 配 置 参 数 , 建 议 使 用 docker compose 部 署 .[/scode]

创 建 htpasswd 账 号 密 码
启 动 一 个 一 次 性 容 器 用 于 创 建 账 号 密 码 . 密 码 文 件 路 径

7 河

以 /root/registry/htpasswd 为 例 , 账 号 密 码 以 admin 和 12345678 为 例 .

docker Fun –rm –entryPoint 飞
htpasswd httpd:2 -Bbn
admin 12345678 > /root/registry/htpasswad

docker-composeyml

[scode type=“share“] volumes 挂 载 htpasswd 密 码 文 件 , 数 据 目 录 , 时 区
文 件 . 配 置 文 件 config.yml 作 为 高 级 用 户 可 选 挂 载 .
environment 环 境 变 量 开 启 认 证 , 并 开 启 删 除 镜 像 功 能 .[/scodej]

version: “3“
services :
registryY :
image: registry : 2
container_name: KegistIY
volumes :
水 - ./config.yml: /etc/docker/registry/config .yml

  • /htpasswd: /auth/htpasswd
  • /registry: /Var/1ib/registry
  • /etc/Localtime : /etc/LocalLtime
    PortS :
  • 5000:5000
    environment :
  • REGISTRY_AUTH=htpasswd
    一 RKCJISTRYAUPH-HPPRSSNP-_PRPH=LautthLhtpaSSwQd
    一 IT.R[ 目 一 ITconftIg.YmliF 八 同 :X/ 厂 门 X 生 转 .
    environment 环 境 变 量 开 启 认 证 , 并 开 启 删 除 镜 像 功 能 .[/scode]

version: “3“
services :
registryY :

image: registry : 2

container_name: KegistIY

volumes :
水 - ./config.yml: /etc/docker/registry/config .yml

  • /htpasswd: /auth/htpasswd
  • /registry: /Var/1ib/registry
  • /etc/Localtime : /etc/LocalLtime

PortS :

  • 5000:5000

environment :

  • REGISTRY_AUTH=htpasswd
  • REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
  • REGISTRY _AUTH_HTPASSNWD _REALM=Registry RealLm
  • REGISTRY_STORAGE _DELETE ENABLED=tIrue

networkS :

  • registry

restart: alLwayS

networkS :
registryY :

启 动

docker-compose up -Qd
成 功 启 动 后 私 有 镜 像 仓 库 内 网 地 址 为 : 192.168.1.5:5000
配 置 域 名

由 于 registry 在 公 网 访 问 默 认 需 使 用 HrrPs 协 议 , 博 主 使 用 nginx 配 置 反
向 代 理 和 证 书 . 具 体 配 置 文 件 参 考 如 下 :

由 于 registry 在 公 网 访 问 默 认 需 使 用 HrrPs 协 议 , 博 主 使 用 nginx 配 置 反
向 代 理 和 证 书 . 具 体 配 置 文 件 参 考 如 下 :

upstream registry t
server 172.17.0.1:5000;

}
server
1Listen 80;
server_name “_registry.Yourdomain .com;
return 301 https://registry.Yourdomain.co…$request_uri ;
}
server

1isten 443 ss1;
server_name “_registry.Yourdomain .com;
gzip _on;

ssl_certificate /Yyour_ss1_path/registry.Yourdomain.com.crt;
ss1_certificate_key
/your_ss1_path/registry.Yyourdomain.com.key ;

Location / {
Proxy_redirect off;
proxy_pass http: //registry;

proxy_set_header “Host \(http_host; proxy_set_header “X-Real-IP \) remote_addr ;
proxy_set_header “X-Forwarded-5s1 on;

proxy_set_header “X-Forwarded-For
\(proxy_add_x_forwarded_for ; proxy_set_header “X-Forwarded-Proto \) scheme ;

proxy_set_header “X-Frame-Options SRMEORIGIN ;
clLient_max_body_size 100m;
clLient_body_buffer_size 128k;
Proxy_buffer_size 4K ;

Proxy_buffers 4 32Kk;

Proxy_busy_buffers_size 64K;

Proxy_buffer_size 4K ;
Proxy_buffers 4 32Kk;
Proxy_busy_buffers_size 64K;
Proxy_temp_file_write_5size “64k;

docker Login registry.Yourdomain .com

江 使 用 上 文 创 建 的 账 号 密 码 admin 12345678 登 录

登 出

docker Logout registry.Yourdomain .com
Push
将 现 有 镜 像 tag 为 私 有 仓 库 镜 像 名

docker images

江 获 取 现 有 镜 像 的 IMAGE ID
docker tag 102816blee7d registry.Yourdomain.com/mysql: 8 .0 .13

Push 至 私 有 镜 像 仓 库

docker push registry.Yourdomain .com/mysqlL: 8 .0 .13

Pull

docker pull registry.Yourdomain.com/mysqlL: 8 .0 .13

docker pull registry.Yourdomain.com/mysqlL: 8 .0 .13

管 理
查 看 镜 像 仓 库 清

curl1 -u admin:12345678 -X GET
https: //registry.Yourdomain .com/V2/_catalLog

查 看 镜 像 tag 清 单

curl1 -u admin:12345678 -X GET
https: //registry.Yourdomain.com/V2/mysq1l/tags/1ist

删 除 镜 像

[scode type=“yellow「“] 确 保 docker-compose.ym1l 环 境 变 量 中 开 启
REGISTRY STORAGE DELETB ENABLED=true[/Scode]

获 取 镜 像 digest hash

curl1 -u admin:12345678 –header “Rccept:
appl1ication/vnd.docker .distribution .manifest .V2+json“ -I -X GET
https: //registry.Yourdomain.com/v2 /mysql/manifests/ 8 . 0 .13

江 获 取 digest hash 如 下
Sha256:45a2a291xxx223123fc03d9be551e362b460exxs56787736919baa

删 除 镜 像 清

curl1 -u admin:12345678 -I -X DELETE
https: //registry.Yourdomain.com/V2 /mysql/manifests/sha256 : 45a2a291XXX2

清 理 磁 盘 空 间

docker _exeC fegistY bin/ egistY gaxbage-cp11ect

[scode type=“yellow「“] 确 保 docker-compose.yml 环 境 变 量 中 开 启
REGISTRY_STORAGE_DELETE FNABLED=true[/Scodej]

获 取 镜 像 digest hash

curl1 -u admin:12345678 –header “Rccept:
appl1ication/vnd.docker .distribution .manifest .V2+json“ -I -X GET
https: //registry.Yourdomain.com/v2 /mysql/manifests/ 8 . 0 .13

江 获 取 digest hash 如 下
Sha256:45a2a291xxx223123fc03d9be551e362b460exxs56787736919baa

删 除 镜 像 清

curl1 -u admin:12345678 -I -X DELETE
https: //registry.Yourdomain.com/V2/mysql/manifests/sha256 : 45a2a2 91XXX2 2

清 理 磁 盘 空 间

docker exec registry bin/registry garbage-collLect
/etc/docker/registry/config .yml

手 动 删 除 目 录

完 成 上 述 操 作 后 人 $ 目 录 文 件 , 如 不 删 除 依 旧 可
以 被 上 述 查 看 镐 像 仓 库 的 命 令 查 询 到 结 果 .

依 照 上 文 示 例 , 挂 载 存 储 目 录 路 f 王 如 下 “

@> ./registry/docker/registry/N2/repositories

结 语
更 多 信 息 请 参 考 官 方 文 档

Backlinks