Anolis23 环境下 Docker 与私有 Harbor 仓库完整部署指南

在 AnolisOS23 操作系统中部署 Docker 并搭建私有 Harbor 仓库,是企业级容器化部署的核心基础环节。Docker 作为容器化技术的核心工具,能够实现应用程序的快速打包、分发与运行;而 Harbor 作为开源的企业级容器镜像仓库,具备安全存储、镜像管理、访问控制等强大功能,二者结合可构建高效、安全的内部容器生态。本文将详细介绍从 Docker 环境配置、代理与镜像源优化,到 Docker Compose 安装、Harbor 私有仓库搭建及镜像推送的完整流程,步骤清晰且适配 AnolisOS23 系统特性,适合运维人员与开发人员参考实践。

一、Docker 环境准备与安装

(一)配置阿里云 Docker 软件镜像源

AnolisOS23 系统默认的软件源可能存在 Docker 安装包版本老旧、下载速度慢等问题,因此首先需要配置阿里云 Docker 专属镜像源,确保获取稳定且最新的 Docker 安装包。通过以下命令创建 Docker 软件源配置文件,覆盖系统默认源设置:

Plain 复制代码
sudo tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

上述配置文件包含了 Docker CE 的Stable、Test、Nightly等多个仓库分支,其中仅启用稳定版仓库(enabled=1),确保安装的 Docker 版本稳定可靠;同时通过 gpgcheck=1 开启校验功能,防止安装包被篡改,保障系统安全。

(二)安装 Docker 核心组件

配置好镜像源后,使用 dnf 包管理器安装 Docker CE 及相关依赖组件。AnolisOS23 系统默认采用 dnf 作为包管理工具,相比 yum 具备更快的下载速度和更好的依赖处理能力。执行以下命令完成安装:

Plain 复制代码
dnf install -y docker-ce docker-ce-cli containerd.io --allowerasing

其中:

  • docker-ce:Docker 社区版核心引擎,提供容器运行时环境;

  • docker-ce-cli:Docker 命令行工具,用于通过命令行操作 Docker;

  • <containerd.io>:容器运行时接口(CRI)实现,负责容器的生命周期管理;

  • --allowerasing 参数:用于解决安装过程中可能出现的依赖冲突问题,自动替换冲突的软件包,确保安装顺利进行。

安装完成后,可通过 docker --version 命令验证 Docker 是否安装成功,若输出类似 "Docker version 25.0.0, build 29cf629" 的版本信息,则说明安装成功。

(三)配置 Docker 代理(可选)

若服务器处于内网环境,需要通过代理服务器访问外部网络(如下载 Docker 镜像、拉取 Harbor 安装包等),则需配置 Docker 服务的代理参数。通过修改 Docker 服务配置文件实现代理设置:

Plain 复制代码
vim /usr/lib/systemd/system/docker.service

在文件的 [Service] 段落中添加以下环境变量配置:

Plain 复制代码
[Service]
Environment="HTTP_PROXY=http://192.168.56.1:10811"
Environment="HTTPS_PROXY=http://192.168.56.1:10811"
Environment="NO_PROXY=localhost,192.168.56.0/24,anolisOS-111"

参数说明:

  • HTTP_PROXY/HTTPS_PROXY:指定 HTTP/HTTPS 代理服务器的地址和端口(示例中代理地址为 <192.168.56.1>,端口为 10811),需根据实际环境替换;

  • NO_PROXY:指定无需通过代理访问的地址列表,包括本地回环地址(localhost)、内网网段(<192.168.56.0/24>)和服务器主机名(anolisOS-111),避免内网服务之间的通信被代理拦截。

(四)配置 Docker 非安全仓库访问

由于后续搭建的 Harbor 私有仓库默认使用 HTTP 协议(未配置 HTTPS 证书),而 Docker 默认仅允许访问 HTTPS 协议的仓库,因此需要配置 Docker 允许访问非安全仓库(HTTP 协议)。通过修改 Docker 守护进程配置文件实现:

Plain 复制代码
vim /etc/docker/daemon.json

在文件中添加以下内容(指定 Harbor 私有仓库的 IP 地址,示例为 <192.168.56.111>):

Plain 复制代码
{
  "insecure-registries": ["192.168.56.111"]
}

该配置表示允许 Docker 直接访问 <192.168.56.111> 对应的 HTTP 协议仓库,无需进行 SSL 证书校验。若有多个非安全仓库,可在数组中添加多个 IP 或域名(如 ["<192.168.56.111>", "<192.168.56.112>"])。

(五)重启 Docker 服务使配置生效

修改完 Docker 相关配置后,需要重新加载系统服务配置并重启 Docker 服务,确保所有配置参数生效。执行以下命令:

Plain 复制代码
systemctl daemon-reload
systemctl restart docker
  • systemctl daemon-reload:重新加载系统服务的配置文件,让系统识别到 Docker 服务配置的变更;

  • systemctl restart docker:重启 Docker 服务,应用新的配置参数。

重启完成后,可通过 systemctl status docker 命令查看 Docker 服务状态,若显示 "active (running)",则说明服务正常运行。

(六)Docker 登录私有仓库(预操作)

后续搭建 Harbor 私有仓库后,需要通过 Docker 客户端登录仓库才能进行镜像推送、拉取等操作。此处先介绍登录命令,实际登录需在 Harbor 仓库搭建完成后执行:

Plain 复制代码
docker login 192.168.56.111

执行命令后,会提示输入 Harbor 仓库的用户名和密码(默认账号密码将在 Harbor 配置部分介绍),输入正确后即可完成登录,登录成功后会显示 "Login Succeeded" 提示。

二、安装 Docker Compose

Docker Compose 是 Docker 官方提供的多容器编排工具,能够通过 YAML 文件定义多个容器的服务配置,并一键启动、停止所有服务。Harbor 私有仓库的部署依赖 Docker Compose,因此需要先安装该工具。

(一)下载 Docker Compose 二进制文件

访问 Docker Compose 官方 GitHub 发布页面(https://github.com/docker/compose/releases),选择适合 Linux x86_64 架构的最新稳定版二进制文件(如 docker-compose-linux-x86_64),可通过 wget 命令直接下载(以具体版本为例):

Plain 复制代码
wget https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64

若服务器无法直接访问 GitHub,可先在本地下载文件,再通过 scp 等工具上传至服务器。

(二)配置 Docker Compose 可执行权限

下载完成后,将二进制文件移动到系统可执行目录(/usr/local/bin/),并修改文件名为 docker-compose,方便后续调用:

Plain 复制代码
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

然后为文件添加可执行权限,确保系统能够运行该工具:

Plain 复制代码
chmod +x /usr/local/bin/docker-compose

(三)验证 Docker Compose 安装

安装完成后,执行以下命令验证是否安装成功:

Plain 复制代码
docker-compose --version

若输出类似 "Docker Compose version v2.24.5" 的版本信息,则说明安装成功,可正常用于后续 Harbor 仓库的部署。

三、搭建 Harbor 私有仓库

Harbor 是 VMware 开源的企业级容器镜像仓库,支持镜像的存储、分发、访问控制、安全扫描等功能,相比 Docker 官方的 Registry 仓库,具备更完善的企业级特性。以下是基于 AnolisOS23 系统的 Harbor 部署步骤。

(一)下载 Harbor 离线安装包

Harbor 提供在线安装包和离线安装包两种形式,离线安装包包含所有依赖组件,无需联网即可部署,适合内网环境。访问 Harbor 官方 GitHub 发布页面(https://github.com/goharbor/harbor/releases),下载最新稳定版的离线安装包(如 harbor-offline-installer-v2.14.2.tgz)。

(二)解压安装包并清理文件

下载完成后,在服务器上执行以下命令解压安装包:

Plain 复制代码
tar -xvf harbor-offline-installer-v2.14.2.tgz

解压后会生成 harbor 目录,包含 Harbor 的配置文件、安装脚本等。解压完成后,可删除安装包以节省磁盘空间:

Plain 复制代码
rm -rf harbor-offline-installer-v2.14.2.tgz

进入 harbor 目录准备进行配置:

Plain 复制代码
cd harbor/

(三)配置 Harbor 核心参数

Harbor 提供了默认的配置文件模板 harbor.yml.tmpl,需要复制该模板并修改为实际的配置文件 harbor.yml:

Plain 复制代码
cp harbor.yml.tmpl harbor.yml

使用 vim 编辑 harbor.yml 文件,修改核心配置参数:

Plain 复制代码
vim harbor.yml

关键配置修改如下(其余默认配置可根据需求调整):

Plain 复制代码
# 配置 Harbor 服务器的主机名或 IP 地址,此处填写服务器内网 IP(示例为 192.168.56.111)
hostname: 192.168.56.111

# HTTP 相关配置
http:
  # HTTP 服务端口,默认 80,若 80 端口被占用可修改为其他端口(如 8080)
  port: 80

# HTTPS 相关配置(暂不启用,全部注释掉)
#https:
  # HTTPS 服务端口,默认 443
  #port: 443
  # SSL 证书和私钥文件路径(启用 HTTPS 时需配置)
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path
  # 是否启用强 SSL 加密套件(默认 false)
  #strong_ssl_ciphers: false

配置说明:

  • hostname:必须配置为服务器的实际 IP 或可访问的域名,否则 Docker 客户端无法正常连接 Harbor 仓库;

  • HTTP 端口:默认 80 端口,若服务器 80 端口已被 Nginx 等服务占用,可修改为其他未占用端口(如 8090),修改后需同步更新 Docker 非安全仓库配置和登录地址;

  • HTTPS 配置:此处暂不启用,因此将 HTTPS 相关配置全部注释,后续若需启用 HTTPS,需准备 SSL 证书并配置证书路径。

(四)初始化并启动 Harbor 服务

修改完配置文件后,执行 Harbor 提供的 prepare 脚本进行环境初始化,该脚本会根据 harbor.yml 配置生成相关的 Docker Compose 配置文件和服务依赖:

Plain 复制代码
./prepare

初始化完成后,通过 Docker Compose 启动 Harbor 所有服务(-d 参数表示后台运行):

Plain 复制代码
docker-compose up -d

启动过程中,Docker 会自动拉取 Harbor 所需的所有镜像(如 nginx、postgresql、redis、harbor-core 等),并创建对应的容器。启动完成后,可通过 docker-compose ps 命令查看 Harbor 各服务的运行状态,若所有服务的状态均为 "Up",则说明 Harbor 部署成功。

(五)Harbor 默认账号与访问验证

Harbor 部署成功后,可通过浏览器访问 http://192.168.56.111(对应配置的 hostname 和 HTTP 端口),进入 Harbor 登录页面。默认登录账号和密码如下:

  • 用户名:admin

  • 密码:Harbor12345

登录成功后,即可进入 Harbor 管理界面,可进行仓库创建、用户管理、镜像上传等操作。建议首次登录后及时修改默认密码,提高仓库安全性(在管理界面的 "用户设置" 中修改)。

四、镜像拉取、标签修改与私有仓库推送

搭建好 Harbor 私有仓库后,可通过 Docker 客户端拉取公共镜像,修改镜像标签后推送到私有仓库,实现镜像的内部存储与共享。以下以拉取 Kubernetes、Helm、Calico 相关镜像为例进行演示。

(一)拉取公共镜像

从 Docker Hub 公共仓库拉取所需的镜像,执行以下命令:

Plain 复制代码
# 拉取 Kubernetes 镜像(版本 v1.33.6)
docker pull labring/kubernetes:v1.33.6 
# 拉取 Helm 镜像(版本 v3.19.2)
docker pull labring/helm:v3.19.2 
# 拉取 Calico 镜像(版本 v3.27.4)
docker pull labring/calico:v3.27.4

拉取完成后,可通过 docker images 命令查看本地镜像列表,确认镜像是否拉取成功。

(二)修改镜像标签

Docker 推送镜像到私有仓库时,镜像标签需符合 "私有仓库地址/项目名/镜像名:版本号" 的格式,其中 "项目名" 需在 Harbor 中提前创建(默认存在 library 项目,可直接使用)。执行以下命令修改镜像标签:

Plain 复制代码
# 为 Kubernetes 镜像添加私有仓库标签
docker tag labring/kubernetes:v1.33.6  192.168.56.111/library/labring/kubernetes:v1.33.6 
# 为 Helm 镜像添加私有仓库标签
docker tag labring/helm:v3.19.2  192.168.56.111/library/labring/helm:v3.19.2 
# 为 Calico 镜像添加私有仓库标签
docker tag labring/calico:v3.27.4 192.168.56.111/library/labring/calico:v3.27.4

标签说明:

  • <192.168.56.111>:私有 Harbor 仓库的 IP 地址;

  • library:Harbor 中的默认项目名,若需自定义项目,可在 Harbor 管理界面创建后替换该字段;

  • labring/kubernetes:v1.33.6:原镜像名和版本号,保持与拉取的镜像一致。

(三)推送镜像到私有仓库

推送镜像前,需确保已通过 Docker 客户端登录 Harbor 私有仓库(参考前文 "Docker 登录私有仓库" 步骤)。登录成功后,执行以下命令推送镜像:

Plain 复制代码
# 推送 Kubernetes 镜像到私有仓库
docker push 192.168.56.111/library/labring/kubernetes:v1.33.6 
# 推送 Helm 镜像到私有仓库
docker push 192.168.56.111/library/labring/helm:v3.19.2 
# 推送 Calico 镜像到私有仓库
docker push 192.168.56.111/library/labring/calico:v3.27.4

推送过程中,Docker 会将镜像分层上传至 Harbor 仓库,上传完成后可在 Harbor 管理界面的 "library" 项目中查看已推送的镜像,确认镜像推送成功。

五、总结

本文详细介绍了 AnolisOS23 系统下 Docker 与私有 Harbor 仓库的完整部署流程,包括 Docker 镜像源配置、安装与代理设置、Docker Compose 安装、Harbor 仓库搭建、镜像拉取与推送等核心步骤。通过该流程,可快速构建企业级的容器镜像管理平台,实现镜像的安全存储、内部共享与高效分发。在实际应用中,可根据企业需求进一步优化配置,如启用 Harbor 的 HTTPS 加密、配置镜像扫描策略、设置用户权限与访问控制等,提升容器化部署的安全性与可管理性。

相关推荐
xiep14383335101 小时前
Ubuntu 24.04.3 LTS 搭建离线仓库安装docker-ce
linux·ubuntu·docker
代码游侠2 小时前
学习笔记——ARM Cortex-A 裸机开发实战指南
linux·运维·开发语言·前端·arm开发·笔记
weixin_307779132 小时前
在AWS上构建类Manus的生产级AI Agent服务
运维·人工智能·云计算·aws·agi
汪汪大队u2 小时前
各类 NAT 的差异
运维·服务器
DN金猿2 小时前
ubuntu在apt安装时出现的弹窗详解
linux·运维·ubuntu
大地的一角2 小时前
(Linux)进程间通信
linux·运维·服务器
cly12 小时前
Jenkins重置管理员密码
运维·servlet·jenkins
Flash.kkl9 小时前
Linux——进程信号
运维·服务器
苏宸啊11 小时前
Linux权限
linux·运维·服务器