本文共 2514 字,大约阅读时间需要 8 分钟。
在 Docker 容器化应用的开发和运行过程中,镜像管理是至关重要的一环。尽管 Docker 官方提供了公共镜像仓库,但从安全性和效率等方面考虑,搭建私有镜像仓库是非常必要的。Harbor 是 VMware 公司开源的企业级 Docker Registry 管理项目,具备权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制以及中文支持等多项功能。
此外,docker-compose 是一个强大的编排工具,能够轻松管理多个服务的启动顺序和优先级。
Harbor 私有镜像仓库的架构主要由以下几个关键组件构成:
这些服务需要根据优先级进行排列和配置。
安装 Docker Compose 可以通过以下命令实现:
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
可以通过以下命令查看 Docker Compose 的版本:
docker-compose --version
Harbor 提供了离线安装包,下载并解压后可以通过以下命令加载镜像:
docker load -i harbor.v1.8.0.tar.gz
openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=wzj/L=wzj/O=example/OU=Personal/CN=wzj.com" \ -key ca.key -out ca.crt
openssl genrsa -out reg.wzj.com.key 4096
openssl req -sha512 -new \ -subj "/C=CN/ST=wzj/L=wzj/O=example/OU=Personal/CN=reg.wzj.com" \ -key reg.wzj.com.key -out reg.wzj.com.csr
vim v3.ext
openssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in reg.wzj.com.csr -out reg.wzj.com.crt
将证书和私钥复制到 /root/cert 目录,并配置 harbor.yml 文件:
mkdir /root/certcp reg.wzj.com.crt reg.wzj.com.key /root/cert/
编辑 harbor.yml 文件,确保配置正确无误:
version: '3'services: - name: proxy image: nginx:latest ports: - "443:443" volumes: - ./harbor.yml:/etc/harbor/harbor.yml restart: always # 其他服务配置...
docker load -i harbor.v1.8.0.tar.gz
./prepare
./install.sh
为了实现服务的自动启动,可以通过以下命令执行:
docker-compose downdocker-compose up -d
如果在解析 yml 文件时出现以下错误:
org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
可能是由于 yml 文件格式不正确导致的,确保文件中没有多个空格或其他格式问题。
在命令行中登录私有仓库时可能会遇到以下问题:
docker login reg.wzj.com
请确保持有相应的 CA 证书,并且配置正确。
配置文件中的域名必须正确解析,确保通过 HTTPS 访问。
harbor.yml 文件的修改需要重新启动服务,可以通过以下命令实现:
docker-compose downdocker-compose up -d
Harbor 的主要组件包括:
这些组件通过 Docker link 的形式连接在一起,实现高效的服务访问和管理。
通过以上步骤,可以成功搭建一个高效、安全的私有 Docker 镜像仓库。
转载地址:http://epzwz.baihongyu.com/