docker技术之docker仓库的部署
目录
RHEL 6 上安装 Docker
RHEL 7/CentOS 7 上安装 Docker
Docker 基本操作
修改镜像源
注意事项
一、Harbor 概述
1. 基本概念
二、Harbor 核心组件解析
三、Harbor vs. Registry:核心差异
四、Harbor 部署指南(以 CentOS 7 为例)
1. 环境准备
2. 下载与配置 Harbor
五、常见问题与解决
六、总结
RHEL 6 上安装 Docker
-
更新内核:安装
kernel-ml-aufs
和kernel-ml-aufs-devel
,并重启系统。 -
安装 Docker:使用
yum
安装docker-io
。 -
启动服务:启动 Docker 服务并设置开机自启。
RHEL 7/CentOS 7 上安装 Docker
-
安装系统工具:安装
yum-utils
、device-mapper-persistent-data
和lvm2
。 -
添加 Docker YUM 源:使用
yum-config-manager
添加 Docker 的官方 YUM 源。 -
安装 Docker-CE:更新 YUM 缓存并安装 Docker 社区版。
-
启动服务:启动 Docker 服务。
Docker 基本操作
-
查看 Docker 信息:使用
docker info
命令。 -
镜像管理:
-
docker search
:搜索镜像。 -
docker pull
:拉取镜像。 -
docker images
:查看本地镜像。 -
docker tag
:修改镜像名称。 -
docker inspect
:查看镜像元数据。 -
docker push
:上传镜像。 -
docker rmi
:删除镜像。
-
-
容器管理:
-
docker run
:创建并启动容器。 -
docker ps
:查看运行中的容器。 -
docker exec
:登录容器。 -
docker stop
:停止容器。 -
docker rm
:删除容器。
-
修改镜像源
通过编辑 /etc/docker/daemon.json
文件,添加镜像加速器地址,然后重新加载并重启 Docker 服务。
注意事项
-
内核版本:Docker 需要较新的内核版本才能正常运行,确保系统内核版本满足要求。
-
权限问题:在某些情况下,可能需要使用
sudo
来执行 Docker 命令,或者将用户添加到docker
组中。 -
镜像源选择:根据网络环境选择合适的镜像源,以提高下载速度。
-
容器安全:在生产环境中,确保容器的安全性,避免使用默认的 root 用户运行容器。
一、Harbor 概述
1. 基本概念
- Harbor是一个用于存储 Docker 镜像的企业级 Registry 服务,作为开源解决方案,它是对 Docker 官方镜像仓库(Registry)的高级封装。核心功能:构建企业级私有 Docker 镜像仓库,支持镜像的存储、管理、分发及权限控制。
2. 与 Registry 的关联
- Registry是 Docker 官方提供的私有仓库镜像,支持本地镜像打标签后推送到以 Registry 运行的容器中,提升镜像拉取效率。Harbor 优势:在 Registry 基础上增加了图形化界面、权限管理、镜像复制、安全机制等企业级功能。
二、Harbor 核心组件解析
组件 | 功能描述 |
Proxy | 基于 Nginx 的前端代理,代理 Registry、UI、Token 等服务,统一入口流量。 |
DB | 存储用户权限、审计日志、镜像分组信息等数据,支持 MySQL/PostgreSQL。 |
UI | 图形化界面,用于管理镜像、用户授权及搜索,提升操作便捷性。 |
Job Service | 负责镜像复制任务(如跨 Registry 同步),与 Registry 通信并记录操作日志。 |
Admin Server | 系统配置中心,管理存储用量、启动参数等,供 UI 和 Job Service 加载配置。 |
Registry | 核心镜像存储仓库,负责存储镜像文件及分层数据。 |
Log | 收集各组件日志,用于监控 Harbor 运行状态及故障分析。 |
三、Harbor vs. Registry:核心差异
功能维度 | Harbor | Registry |
用户界面 | 提供 WEB 界面,支持镜像搜索、权限管理等可视化操作。 | 无图形界面,仅通过命令行操作。 |
传输优化 | 支持分层传输(基于镜像层 UUID 识别差异),减少网络流量。 | 全量传输,效率较低。 |
安全机制 | 基于角色的访问控制(RBAC)、项目隔离、HTTPS 加密。 | 基础认证(用户名 / 密码),安全策略较简单。 |
集群扩展 | 支持水平扩展,缓解单节点访问压力。 | 原生不支持集群,需手动配置负载均衡。 |
多租户支持 | 通过项目(Project)与 Kubernetes Namespace 结合,实现多租户隔离。 | 无多租户管理功能。 |
四、Harbor 部署指南(以 CentOS 7 为例)
1. 环境准备
更换华为 YUM 源
mkdir /etc/yum.repos.d/old && mv /etc/yum.repos.d/* /etc/yum.repos.d/old/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
yum makecache fast
安装依赖组件
yum install epel-release.noarch # 扩展源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-compose # 安装Docker及Compose
systemctl restart docker # 重启Docker服务
2. 下载与配置 Harbor
下载安装包
- 离线安装:下载完整包(如harbor-offline-installer-v2.0.0.tgz),适合无外网环境。在线安装:下载轻量级包(如harbor-online-installer-v2.0.0.tgz),需联网拉取依赖。
tar -xvf harbor-online-installer-v2.0.0.tgz && cd harbor
cp harbor.yml.tmpl harbor.yml # 复制配置模板
配置 HTTPS 证书(关键步骤)
1、生成 CA 证书及密钥:
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt # 按提示输入国家(CN)、地区(BJ)、组织(EAST)等信息,Common Name填域名(如master.com)
2、生成服务器证书签名请求(CSR):
openssl req -newkey rsa:4096 -nodes -sha256 -keyout master.com.key -out master.com.csr # Common Name需与访问域名一致(如master.com)
3、生成服务器证书:
openssl x509 -req -days 365 -in master.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out master.com.crt
4、配置 Harbor.yml:
hostname: master.com # 替换为实际域名或IP https: certificate: /etc/harbor/master.com.crt # 证书路径 private_key: /etc/harbor/master.com.key # 私钥路径
5、执行安装
cp -r harbor /etc/ # 将Harbor目录移至/etc/
cd /etc/harbor && ./install.sh # 运行安装脚本
成功提示:
Harbor has been installed and started successfully.
4. 访问与验证
- 访问地址:https://master.com/harbor(需配置本地 Hosts 解析或 DNS)。默认账号:admin,密码:Harbor12345。
5. Docker 客户端配置
- 信任 CA 证书:
mkdir -p /etc/docker/certs.d/master.com cp ca.crt /etc/docker/certs.d/master.com/ca.crt # 将CA证书复制到Docker信任目录
- 登录 Harbor:
docker login master.com -u admin -p Harbor12345
- 推送镜像测试:
docker pull lanvv/centos7.5-yum # 拉取测试镜像
docker tag lanvv/centos7.5-yum master.com/library/centos7.5 # 打标签
docker push master.com/library/centos7.5 # 推送到Harbor
五、常见问题与解决
1. 镜像推送失败(HTTPS 验证问题)
- 错误提示:x509: certificate signed by unknown authority解决方法:确保 CA 证书已正确复制到/etc/docker/certs.d/目录,并重启 Docker 服务。
2. 非安全 Registry 访问
- 场景:临时使用 HTTP 访问(不推荐生产环境)。配置:修改 Docker 服务文件/lib/systemd/system/docker.service,添加参数:ExecStart=/usr/bin/dockerd --insecure-registry master.com 重启服务:systemctl daemon-reload && systemctl restart docker。
3. 网络代理问题
- 国内加速:配置 Docker 镜像源(如网易镜像):
vim /etc/docker/daemon.json {
"registry-mirrors": ["https://hub-mirror.c.163.com"],
"insecure-registries": ["master.com"] # 若使用HTTP访问需添加
}
六、总结
Harbor 通过增强版的功能(如权限管理、WEB 界面、分层传输)成为企业级 Docker 镜像管理的首选方案。部署过程中需重点关注 HTTPS 证书配置、网络代理及权限策略,确保镜像仓库的安全性与可用性。结合 Kubernetes 的 Namespace 机制,可进一步实现多租户场景下的镜像资源隔离与高效管理。
推送镜像测试