Docker-compose搭建Docker Hub镜像仓库整合SpringBootCloud

Docker-compose搭建Docker Hub镜像仓库

准备工作

确保已安装Docker和Docker-compose。建议使用Linux环境,并分配至少2GB内存。

创建配置文件

新建目录docker-registry,在该目录下创建docker-compose.yml文件,内容如下:

yaml 复制代码
version: '3'

services:
  registry:
    image: registry:2
    ports:
      - "5000:5000"
    volumes:
      - ./data:/var/lib/registry
    environment:
      REGISTRY_STORAGE_DELETE_ENABLED: "true"

启动服务

在目录下执行命令启动服务:

bash 复制代码
docker-compose up -d

验证服务

检查服务是否正常运行:

bash 复制代码
curl http://localhost:5000/v2/_catalog

预期输出为{"repositories":[]},表示仓库为空但服务正常。

配置客户端

若需从其他主机访问,需修改Docker客户端配置(Linux系统):

  1. 编辑/etc/docker/daemon.json,添加:
json 复制代码
{
  "insecure-registries": ["your-server-ip:5000"]
}
  1. 重启Docker服务:
bash 复制代码
sudo systemctl restart docker

推送镜像示例

标记并推送本地镜像到私有仓库:

bash 复制代码
docker tag your-image your-server-ip:5000/your-image
docker push your-server-ip:5000/your-image

管理镜像

删除镜像需调用Registry API:

bash 复制代码
curl -X DELETE http://your-server-ip:5000/v2/your-image/manifests/<digest>

通过docker exec进入容器执行垃圾回收:

bash 复制代码
docker exec -it registry_container bin/registry garbage-collect /etc/docker/registry/config.yml

持久化数据

所有镜像数据会保存在./data目录,定期备份该目录即可。

HTTPS配置(可选)

如需启用HTTPS,需在docker-compose.yml中挂载证书文件:

yaml 复制代码
volumes:
  - ./certs:/certs
environment:
  REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
  REGISTRY_HTTP_TLS_KEY: /certs/domain.key

注意事项

  • 默认配置仅适合测试环境,生产环境需配置认证(如添加htpasswd)。
  • 存储路径可根据需求修改为NFS或其他持久化存储方案。
  • Registry API版本可能变化,建议查阅官方文档获取最新参数。
相关推荐
为什么不问问神奇的海螺呢丶2 分钟前
n9e categraf k8s监控配置 -kube-state-metrics
java·容器·kubernetes
郝亚军7 分钟前
Ubuntu启一个http server,通过terminal测试通不通
linux·运维·ubuntu
ccino .7 分钟前
【官方最新VMware workstation pro获取】
运维·网络安全·自动化
珠海西格电力科技1 小时前
微电网控制策略基础:集中式、分布式与混合式控制逻辑
网络·人工智能·分布式·物联网·智慧城市·能源
草莓熊Lotso2 小时前
Linux 基础 IO 初步解析:从 C 库函数到系统调用,理解文件操作本质
linux·运维·服务器·c语言·数据库·c++·人工智能
EverydayJoy^v^9 小时前
RH134学习进程——十二.运行容器(1)
linux·运维·容器
java_logo9 小时前
OpenProject Docker 容器化部署指南:从快速启动到生产环境配置
docker·容器·openproject·openproject部署·openproject部署手册·openproject部署方案·openproject部署教程
b***25119 小时前
电池组PACK自动化生产线的关键流程与核心优势
运维·自动化
曦云沐10 小时前
【避坑指南】Ubuntu更新报错“Repository is not signed”的快速修复
linux·ubuntu·docker
哲伦贼稳妥11 小时前
职场发展-遇到以下情况请直接准备后手吧
运维·经验分享·其他·职场和发展