蓝易云

Docker 搭建镜像仓库 harbor 并实战上传镜像

479次阅读
没有评论

共计 2376 个字符,预计需要花费 6 分钟才能阅读完成。

一、Harbor 简介

1. 概述

有可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能

Harbor是VMware公司开源的企业级Docker Registry项目。

2. 架构

Docker 搭建镜像仓库 harbor 并实战上传镜像

核心组件:

Proxy
这是一个反向代理组件,通过一个前置的反向代理统一接收浏览器、Docker 客户端的请求,并将请求转发给后端不同的服务。

Registry
负责储存 Docker 镜像,处理 docker push/pull 命令来上传和下载。

Core services
Harbor 的核心功能,包括UI、webhook(网站的一些服务功能)、 token (提供身份验证服务)服务。

Database
数据库,为 core services 提供数据库服务,数据库记录镜像的元信息及用户的身份信息

Log collector
负责收集其他组件的日志,以供然后进行分析以及进行健康检查。

二、Harbor 安装

1. 安装 docker-compose

如果已安装则跳过。

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. 下载安装包

wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-online-installer-v2.7.0.tgz

3. 修改配置文件

tar -zxvf harbor-online-installer-v2.7.0.tgz -C /usr/local/ && \
cd /usr/local/harbor/ && \
cp harbor.yml.tmpl harbor.yml && \
vim harbor.yml

修改内容:

# 修改为服务器所在 ip
hostname: 172.21.9.203
# 管理员密码
harbor_admin_password: Harbor12345
# 存储路径 - 会将数据库、redis等映射文件放在该目录下
data_volume: /data

注释内容:

# https related config
#https:
  # https port for harbor, default is 443
 # port: 443
  # The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path

4. 安装

这里需要注意的是 data_volume 配置的所在目录,有没有历史文件,否则有历史数据的话可能导致 harbor 启动失败。

./install.sh

等脚本运行完,登陆后如图所示:

Docker 搭建镜像仓库 harbor 并实战上传镜像

5. 配置开机自启

创建开机自启配置文件:

cat > /lib/systemd/system/harbor.service<<EOF
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /usr/local/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /usr/local/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
EOF

这里注意,可能 docker-compose 的存放路径不一样,使用 which docker-compose 查看并修改即可。

# 配置开启自启
systemctl enable harbor

三、配置 Docker 仓库

  • 情况一

没有/etc/docker/daemon.json 文件,直接运行命令:

# ip 地址填自己服务器的
cat > /etc/docker/daemon.json <<EOF
{
     "insecure-registries":["172.21.9.203:80"]
}
EOF
# 重新加载配置文件并重启 docker
systemctl daemon-reload && systemctl restart docker
  • 情况二

/etc/docker/daemon.json 文件已经存在,需要后面加一条内容,如下:

{
     "registry-mirrors":["https://c05xby84.mirror.aliyuncs.com"],
     "insecure-registries":["172.21.9.203:80"]
}

要注意 json 文件的格式,新增一条内容的逗号不能少,否则 docker 起不来。

# 重新加载配置文件并重启 docker
systemctl daemon-reload && systemctl restart docker

四、Harbor 简单使用

# 登陆 admin\Harbor12345
docker login 172.21.9.203:80
# 拉取一个官方镜像
docker pull alpine
# 重新打标签
docker tag alpine 172.21.9.203:80/library/alpine
# 推送镜像
docker tag alpine 172.21.9.203:80/library/alpine

可以看见已经上传:

Docker 搭建镜像仓库 harbor 并实战上传镜像

提醒:本文发布于643天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2023-02-17发表,共计2376字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock