安装环境:
环境 | 版本 |
---|---|
cnetos | V 7.6 |
docker | V 19.03.9 |
harbor | V 2.3.3 |
docker-compose | V 2.0.1 |
1. 根据 harbor 的版本,安装对应版本的 docker 服务。
** 注意:** 不要直接安装 docker 服务,因为直接安装的 docker 服务可能与 harbor 版本对不上,导致安装失败。直接执行 harbor 安装,根据报错输出选择安装对应的 docker 服务。
** 注意:** 需要关闭 selinux
2. 根据 harbor 的版本,安装对应版本的 docker-compose 服务。
** 注意:** 不要直接安装 docker-compose 服务,因为直接安装的 docker-compose 服务可能与 harbor 版本对不上,导致安装失败。直接执行 harbor 安装,根据报错输出选择安装对应的 docker-compose 服务。
安装步骤如下:
2.1 去 github 手动下载文件:https://github.com/docker/compose/releases/tag/1.25.0-rc4
[外链图片转存失败, 源站可能有防盗链机制, 建议将图片保存下来直接上传 (img-r7wjyuUq-1634181898388)(./1634123377060.png)]
2.2 将文件上传到/usr/local/bin/
目录下,重命名为 docker-compose ,修改文件权限:
# 重命名
mv docker-compose-linux-x86_64 docker-compose
# 修改文件权限
chmod +x /usr/local/bin/docker-compose
2.3 查看版本
docker-compose -v
3. 安装 harbor
3.1 解压安装包
tar -xvf harbor-offline-installer-v2.3.3.tgz -C /opt/
3.2 修改 harbor.yml.tmpl 文件
hostname : xxxxxxxxx 改成自己的 ip
https: 这一大项全部用 #注释掉,不然还需要搞证书
harbor_admin_password database->password 根据自己需要更改
3.3 重命名 harbor.yml.tmpl 文件为 harbor.yml
mv harbor.yml.tmpl harbor.yml
3.4 创建 harbor 日志存放目录
mkdir -p /var/log/harbor
注意:如果出现报错 invalid mount config for type "bind": bind source path does not exist: /var/log/harbor/
3.5 执行安装
./install.sh
./prepare
docker-compose up
4. 登录访问
地址:http://192.168.1.200/
用户名 / 密码:admin/Harbor12345
成功访问如下:
主界面
5. 启动停止
- 进入到 harbor 目录下
cd /opt/harbor
- 启动
docker-compose start
2.停止
docker-compose stop
harbor 使用
1. 登录仓库
docker login 192.168.1.200 -u admin -p Harbor12345
2. 上传镜像
- 将构建好的镜像打上 “harbor 访问地址 / 项目” 前缀格式的标签
docker tag gateway:1.2 192.168.1.200/database/gateway:1.2
- 上传镜像到 harbor 仓库
docker push 192.168.1.200/database/gateway:1.2
3. 镜像拉取
docker pull 192.168.1.200/database/gateway:1.2
FAQ
1. 连接报错 “443”
Docker 自从 1.3.X 之后 docker registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交时出现以上错误。
解决方法一:
在 /etc/docker
下创建 daemon.json
文件,写入:
{
"insecure-registries" : ["192.168.1.200"]
}
或者通过以下命令添加:
echo ‘{ “insecure-registries”:[“192.168.0.8:5000”] }’ > /etc/docker/daemon.json
重启 docker
服务
systemctl restart docker
解决方法二:
- 修改启动文件
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry www.harbor2.com
#修改此处并且后边添加IP地址或者域名
2、重新启动 docker
systemctl daemon-reload
systemctl restart docker