Docker Compose 部 署 配 置 和 使 用 Registry 私 有

Fri 25 June 2021

早 前 本 站 介 绍 过 使 用 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.com$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

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

Category: 杂物