1、harbor安装的先决条件
最低配置以及推荐的配置
资源 | 最低限度 | 推荐 |
---|---|---|
CPU | 2 | 4 |
内存 | 4G | 8G |
磁盘 | 40GB | 160GB |
下表列出了目标主机上必须安装的软件版本。
软件 | 版本 | 描述 |
---|---|---|
Docker Engine | Version 17.06.0-ce+ or higher | 有关安装说明, 请参阅 Docker Engine documentation |
Docker Compose | docker-compose (v1.18.0+) or docker compose v2 (docker-compose-plugin) | 有关安装说明, 请参阅 Docker Compose documentation |
OpenSSL | Latest is preferred | 用于为Harbor生成证书和密钥 |
Harbor 要求目标主机上打开以下端口。
端口 | 协议 | 描述 |
---|---|---|
443 | HTTPS | Harbor 门户和核心 API 接受此端口上的 HTTPS 请求。您可以在配置文件中更改此端口。 |
4443 | HTTPS | 连接到 Harbor 的 Docker Content Trust 服务。仅当启用 Notary 时才需要。您可以在配置文件中更改此端口。 |
80 | HTTP | Harbor 门户和核心 API 接受此端口上的 HTTP 请求。您可以在配置文件中更改此端口。 |
2、安装Docker Engine和Docker Compose
2.1、安装Docker Engine
一、要安装 Docker 引擎,您需要以下 CentOS 版本之一的维护版本:
- centos7
- centos8(stream)
- centos9(stream)
centos-extras必须启用存储库。该存储库默认处于启用状态,但如果您已禁用它,则需要 重新启用它。
二、卸载旧版本的docker,没有则跳过
旧版本的 Docker 的名称为docker或docker-engine。在尝试安装新版本之前卸载任何此类旧版本以及相关的依赖项。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
三、开始安装
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置存储库。
# 先配置阿里云基础镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 安装yum-utils
yum install -y yum-utils
# 设置阿里云的镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker 引擎、containerd 和 Docker Compose
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
启动 Docker,设置开机自启动
systemctl start docker
systemctl enable docker
通过运行镜像来验证Docker Engine安装是否成功 hello-world
docker run hello-world
2.2、安装Docker Compose
基于 RPM 的发行版,通过运行下列命令来安装
yum update -y
yum install docker-compose-plugin
通过检查版本来验证 Docker Compose 是否正确安装。
docker compose version
3、下载harbor安装程序
- 从其github下载安装包https://github.com/goharbor/harbor/releases,我选择的是离线安装包,如下
- 解压
tar -zxvf harbor-offline-installer-v2.8.2.tgz -C /usr/local/
- 之后在/usr/local/harbor目录下有个harbor.yml.tmpl文件
cp harbor.yml.tmpl harbor.yml
编辑harbor.yml文件,设置hostname为你自己的harbor主机地址
注释掉https相关的注释,如下所示
- 运行./install.sh安装脚本,该脚本在/usr/local/harbor
如果安装成功,您可以打开浏览器访问Harbor界面http://reg.yourdomain.com,修改reg.yourdomain.com为您在中配置的主机名harbor.yml。如果您没有更改它们harbor.yml,则默认管理员用户名和密码为admin和Harbor12345
5.浏览器输入http://ip,输入账号和密码,可以成功登录
6、在命令行执行docker login ip会发现
Error response from daemon: Get "https://192.168.116.18/v2/": dial tcp 192.168.116.18:443: connect: connection refused
解决方案:
这里防火墙之类的都是关闭的,所以和防火墙没有关系
vim /usr/lib/systemd/system/docker.service
# 查找:ExecStart=/usr/bin/dockerd 在其后面添加 --insecure-registry=你的ip 配置
systemctl daemon-reload
systemctl restart docker
但是我这里这样做还是不行,还是无法通过docker login登录
之后
docker compose down -v
docker compose up -d
重启启动了一下,发现可以成功登录之后就可以按照自己的需求向自己的harbor仓库里面推送镜像,拉取镜像了
docker推送镜像的命令
在项目中标记镜像:
docker tag SOURCE_IMAGE[:TAG] 192.168.116.18/library/REPOSITORY[:TAG]
推送镜像到当前项目:
docker push 192.168.116.18/library/REPOSITORY[:TAG]
参考:http://www.144d.com/post-798.html
有什么错误或者不足之处,欢迎批评指正,谢谢大家!!!