Docker Harbor

Harbor搭建私有Docker仓库

Posted on 2020-10-12,4 min read

安装环境:

环境 版本
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

成功访问如下:

img

主界面

img

5. 启动停止

  1. 进入到 harbor 目录下
cd /opt/harbor
  1. 启动
docker-compose start

2.停止

docker-compose stop

harbor 使用

1. 登录仓库

docker login 192.168.1.200 -u admin -p Harbor12345

2. 上传镜像

  1. 将构建好的镜像打上 “harbor 访问地址 / 项目” 前缀格式的标签
docker tag gateway:1.2 192.168.1.200/database/gateway:1.2
  1. 上传镜像到 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

解决方法二:

  1. 修改启动文件
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

下一篇: Kubernetes Volume(持久化卷)→