先来看一下Harbor的页面,不管是页面布局,还是操作功能,明显比registry好。
docker安装
Harbor对docker-compse的版本是有要求的,我记得是要高于1.19版本。这里提供1.25版本的安装。
curl -L https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version
# 获取安装包 wget https://github.com/goharbor/harbor/releases/download/v2.4.0/harbor-online-installer-v2.4.0.tgz # 解压 tar -xf harbor-online-installer-v2.4.0.tgz -C /opt cp /opt/harbor/harbor.yml.tmpl /opt/harbor/harbor.yml # 修改harbor.yml文件 cd /opt/harbor/ vi harbor.yml
# Harbor的默认密码是 Harbor12345 也可以在harbor.yml配置文件进行修改。 # 运行 ./prepare ./install.sh
IP+端口号。
账号admin,密码Harbor12345
首先在Harbor管理页面新建一个test项目
并且这里是有推送命令的。
服务器准备(这里我用了两个机子,如果没有,就用Harbor所在的一台机子也行。主要操作就是将镜像push到镜像仓库):
10.159.62.232: Harbor镜像仓库所在机子 10.159.62.214: 测试机子
开始push(下面命令当中的test指的就是我们刚才创建的test,如果你创建了其他项目,替换就行):
在214机子上操作: docker pull java:8 docker tag java:8 10.159.62.232:5000/test/java:8 docker push 10.159.62.232:5000/test/java:8
第一次push报错:
解决方案:
修改214机子daemon.json文件,将下面内容复制到里面 vi /etc/docker/daemon.json { "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"], "insecure-registries": [ "10.159.62.232:5000" ] }
第二次push报错:
解决方案:
#在214机子上登录docker连接232,账号密码为Harbor的账号密码。 docker login 10.159.62.232:5000 # 登录成功之后重新push 成功。
备注:另外如果是你搭建了Jenkins+svn+docker持续基础环境,在用本镜像仓库的时候第一次push也会报 我上面第二次push的错误。
解决方案:
# 在搭建Harbor的主机上登录一下login即可。账号密码为Harbor的账号密码。 docker login 10.159.62.232:5000
1 进行Harbor目录 2 修改harbor.yml文件 3 ./prepare 4 docker-compose donw -v 5 docekr-compose up -d
#编辑harbor.service,将下面内容复制进去 vi /lib/systemd/system/harbor.service
[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 /opt/harbor/docker-compose.yml up ExecStop=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml down [Install] WantedBy=multi-user.target
# 启动harbor.service文件使之生效 systemctl enable harbor systemctl start harbor