CentOS7搭建Harbor企业级Docker仓库

centos7搭建Harbor企业级docker仓库

前言

Harbor是一个企业级的Docker Registry管理项目,主要用于存储和分发Docker镜像。它提供了一些企业必需的功能特性,如安全、标识和管理等,以扩展开源Docker Distribution。

作为企业级私有Registry服务器,Harbor提供了更好的性能和安全,并提升了用户使用Registry构建和运行环境传输镜像的效率。

Harbor的主要功能包括基于角色的访问控制、用户管理、日志审核、镜像复制和中文支持等。此外,它还提供了诸如项目、日志、仓库管理、同步管理和配置管理等基本功能。

通过这些功能,Harbor可以帮助用户迅速搭建一个企业级的Docker registry服务,确保数据和知识产权在公司内部网络中得到有效管控。

实验环境Centos7.9.2009

安装docker 24.0.7版本

curl -sSL https://get.daocloud.io/docker | sh
启动docker 
systemctl start docker

安装docker-compose

安装docker-compose的方式有很多种,不推荐一
方式一:
yum update -y
yum -y install epel-release
yum install python-pip
pip install --upgrade setuptools  # 可能由于setuptools版本过低报错
pip install docker-compose  # 如果报错可以试试 --ignore-installed
方式二:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
方式三:
打开浏览器,访问GitHub上的Compose仓库,找到最新版本的链接。
将下载命令中的Compose替换为最新版本,例如
sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
方式四:
从github上下载docker-compose的二进制文件
https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
docker-compose version
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

安装Harbor1.7.5

wget -P /usr/local/src/     https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.5.tgz  # 在线安装
# 最新版本请查看https://github.com/goharbor/harbor/releases/
cd /usr/local/src/
tar zxf harbor-online-installer-v1.7.5.tgz  -C /usr/local/
cd /usr/local/harbor/
bash install.sh # 使用--with-clair添加镜像漏洞扫描功能
小问题:
➜ Please set hostname and other necessary attributes in harbor.cfg first. DO NOT use localhost or 127.0.0.1 for hostname, because Harbor needs to be accessed by external clients.
Please set --with-notary if needs enable Notary in Harbor, and set ui_url_protocol/ssl_cert/ssl_cert_key in harbor.cfg bacause notary must run under https. 
Please set --with-clair if needs enable Clair in Harbor
Please set --with-chartmuseum if needs enable Chartmuseum in Harbor
 请先在harbor.cfg中设置主机名和其他必要的属性。不要使用localhost或127.0.0.1作为主机名,因为Harbor需要由外部客户端访问。

如果需要,请设置--with公证员在Harbor中启用公证员,并在Harbor.cfg中设置ui_url_procol/ssl_cert/ssl_cert_key,因为公证员必须在https下运行。

请设置——如果需要,请使用clair启用clair in Harbor

请设置——如果需要,请使用图表博物馆在海港启用图表博物馆
需要修改配置文件

Error response from daemon: login attempt to http://myharbor.com/v2/ failed with status: 404 Not Found
修改vim  /etc/hosts
Error response from daemon: Get "http://myharbor.com/v2/": dial tcp 192.168.40.106:80: connect: connection refused


修改配置文件

vim /usr/local/harbor/harbor.cfg  # harbor配置文件

# 找到以下项目并且修改
hostname = myharbor.com  # 修改访问域名,如果使用其它端口,请在后面添加端口号,如test.com:8080
#邮箱配置(根据实际账号配置)
email_server = smtp.qq.com
email_server_port = 465
email_username = myharbor@qq.com
email_password = 123456
email_from = myharbor@qq.com  # 经测试发现必须要和email_username相同才可以发邮件
email_ssl = true  # 开启ssl保护,使用端口465,关闭使用端口25
#禁止用户注册
self_registration = off
#设置只有管理员可以创建项目
project_creation_restriction = adminonly
#设置管理员密码
harbor_admin_password = 123456

对Harbor容器集群管理

cd /usr/local/harbor/
docker-compose ps  # 查看harbor集群容器,安装后已经启动
# ---------- 控制 ----------
# 必须要在/usr/local/harbor/目录下,或者-f指定docker-compose.yml
# 启动Harbor
docker-compose start
# 停止Harbor
docker-comose stop
# 重启Harbor
docker-compose restart
# 移除Harbor
docker-compose down -v  # -v 参数移除vloume
# 重新创建并启动
docker-compose up -d
# ---------- 控制 ----------
登录harbor

默认账号是 admin 密码是 Harbor12345

如有需要可以 修改nginx端口
vim /usr/local/harbor/docker-compose.yml
# 把proxy下的80:80改为8080:80则为使用8080访问harbor
docker-compose stop proxy  # proxy其实就是nginx
docker-compose up -d proxy  # 重新开启nginx
netstat -lntp # 查看本地打开端口,如果有docker-proxy为8080则修改成功
# 如果有安全组防火墙,记得先放行对应端口

Harbor上传、下载镜像

# 由于使用80端口需要备案,harbor页面已经修改为8080端口(注意修改harbor.cfg的hostname后需要重新执行install.sh)
vim /etc/docker/daemon.json
# 添加 {"insecure-registries":["myharbor.com"]} 
systemctl daemon-reload  
systemctl restart docker

# 注意此处需要添加端口
docker login myharbor.com:80
假如修改了端口则是:
docker login test.com:8080  # 尝试登录

# 编写dockerfile
mkdir harbortest && cdharbortest 
cat << EOF > Dockerfile
FROM nginx:latest
MAINTAINER test "test@qq.com"
# 配置环境变量
ENV LANG=C.UTF-8 TZ=Asia/Shanghai
EO
# build镜像
docker build -t myharbor.com:80/library/nginx:latest .
# push镜像到远程仓库
docker push myharbor.com:80/library/nginx:latest
# 从远程仓库拉取镜像
docker pull myharbor.com:80/library/nginx:latest

相关推荐

  1. CentOS7Harbor企业Docker仓库

    2024-01-12 22:22:01       57 阅读
  2. docker: harbor 镜像仓库

    2024-01-12 22:22:01       52 阅读
  3. Centos7.9yum仓库

    2024-01-12 22:22:01       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-12 22:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-12 22:22:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-12 22:22:01       82 阅读
  4. Python语言-面向对象

    2024-01-12 22:22:01       91 阅读

热门阅读

  1. thinkphp 模板解析

    2024-01-12 22:22:01       45 阅读
  2. PyTorch简单理解ChannelShuffle与数据并行技术解析

    2024-01-12 22:22:01       59 阅读
  3. Rust 闭包

    2024-01-12 22:22:01       55 阅读
  4. 并发编程(八)

    2024-01-12 22:22:01       54 阅读
  5. ClickHouse(21)ClickHouse集成Kafka表引擎详细解析

    2024-01-12 22:22:01       56 阅读
  6. draggable中的input、textArea无法聚焦问题解决

    2024-01-12 22:22:01       49 阅读
  7. 战略投资常用的ChatGPT通用提示词模板

    2024-01-12 22:22:01       53 阅读
  8. 需要登录的网站爬虫详解

    2024-01-12 22:22:01       60 阅读
  9. ConflictingBeanDefinitionException异常快速处理

    2024-01-12 22:22:01       46 阅读
  10. **没有完美的人生,不完美的才是人生**

    2024-01-12 22:22:01       51 阅读