您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 搭建Docker私有仓库的方法
## 前言
在容器化技术日益普及的今天,Docker已成为开发和运维人员的必备工具。当团队规模扩大或对安全性要求提高时,使用公共Docker Hub仓库可能不再满足需求。搭建私有Docker仓库可以实现:
1. 自主管理镜像资产
2. 提升镜像拉取速度
3. 满足企业安全合规要求
4. 避免公共仓库的速率限制
本文将详细介绍三种主流搭建方案,并提供完整操作指南。
## 方案一:使用Docker Registry官方镜像
### 1. 环境准备
确保已安装:
- Docker 18.06+
- 磁盘空间(建议至少20GB空闲)
- 开放端口5000(或自定义)
```bash
# 检查Docker版本
docker --version
# 拉取最新registry镜像
docker pull registry:2
# 启动容器
docker run -d \
-p 5000:5000 \
--name my-registry \
--restart=always \
-v /mnt/registry:/var/lib/registry \
registry:2
# 生成自签名证书
mkdir -p certs
openssl req \
-newkey rsa:4096 -nodes -sha256 \
-keyout certs/domain.key \
-x509 -days 365 \
-out certs/domain.crt
启动带证书的仓库:
docker run -d \
-p 5000:5000 \
--name secure-registry \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
在每台Docker主机上:
# 创建证书目录
sudo mkdir -p /etc/docker/certs.d/yourdomain.com:5000
# 复制证书
sudo cp certs/domain.crt /etc/docker/certs.d/yourdomain.com:5000/ca.crt
# 重启Docker服务
sudo systemctl restart docker
# 标记镜像
docker tag nginx:latest yourdomain.com:5000/my-nginx
# 推送镜像
docker push yourdomain.com:5000/my-nginx
# 拉取验证
docker pull yourdomain.com:5000/my-nginx
下载最新Harbor离线包:
wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
tar xvf harbor-offline-installer-*.tgz
cd harbor
编辑harbor.yml
:
hostname: reg.yourcompany.com
http:
port: 8080
https:
port: 443
certificate: /data/certs/domain.crt
private_key: /data/certs/domain.key
data_volume: /data
# 安装并启动
./install.sh
# 查看容器状态
docker-compose ps
浏览器访问:https://reg.yourcompany.com
- 默认管理员:admin/Harbor12345
docker run -d \
-p 8081:8081 \
-p 8082:8082 \
--name nexus \
-v nexus-data:/nexus-data \
sonatype/nexus3
http://server-ip:8081
# 生成htpasswd密码
docker exec -it nexus bash
mkdir -p /nexus-data/etc/docker
htpasswd -c /nexus-data/etc/docker/auth.conf dockeruser
docker login server-ip:8082 -u dockeruser
# 查看仓库存储使用
du -sh /var/lib/registry/
# 清理旧镜像(Harbor自带GC)
docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
# 定期备份数据卷
tar czvf registry-backup-$(date +%Y%m%d).tar.gz /mnt/registry
解决方案:
# 方法1:修改客户端配置
echo '{ "insecure-registries":["yourdomain.com:5000"] }' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
# 方法2:正确配置TLS证书
处理步骤: 1. 删除不再使用的镜像标签 2. 配置存储配额(Harbor支持) 3. 扩展存储卷容量
搭建私有Docker仓库是构建企业级容器化基础设施的重要环节。根据需求可选择: - 轻量级:官方Registry - 企业级:Harbor - 统一管理:Nexus
建议生产环境至少配置: ✓ TLS加密 ✓ 访问控制 ✓ 定期备份 ✓ 监控告警
通过本文介绍的方法,您已经可以部署满足不同场景需求的私有仓库,为DevOps流程提供可靠的镜像管理服务。 “`
注:实际使用时请将”yourdomain.com”替换为您的真实域名,并根据具体环境调整配置参数。对于生产环境,强烈建议使用商业SSL证书而非自签名证书。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。