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: 杂物