搭建Docker私有仓库Harbor安装

1. 官方仓库

# 拉取仓库镜像
docker pull registry
# 启动 挂载到指定目录 端口为5000
docker run -d -v /home/jack/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

验证:
​​​http://192.168.50.136:5000/v2/​​​搭建Docker私有仓库Harbor安装_docker

2. Harbor 搭建

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。
Harbor官方GitHub地址: ​​​https://github.com/goharbor/harbor/releases​​​​注意官方和Harbor不能同时使用​​ 要求: ​​docker(17.06.0+)​​ ​​docker-compose(1.18.0+)​​CentOS7安装Docker最新版本Docker Compose 安装使用教程

下载比较慢
迅雷云盘下载链接:​​​https://pan.xunlei.com/s/VMYDvt-eONNav7-eabPPlt7fA1​​​ 提取码:​​upbm​

搭建Docker私有仓库Harbor安装_仓库_02

# 解压
tar -xvf harbor-offline-installer-v2.2.1.tgz

# 进入解压的文件夹
cd harbor

# 修改配置名
mv harbor.yml.tmpl harbor.yml

vim harbor.yml

配置:

hostname: 域名或IP

http:
port: 端口

https:没有的话需要注释掉,不然会启动报错

harbor_admin_password: 后台密码

database:
password: 数据库密码

data_volume: 数据所在目录

搭建Docker私有仓库Harbor安装_远程仓库_03
搭建Docker私有仓库Harbor安装_docker_04

# 安装运行
./install.sh

# 停止harbor
docker-compose down -v

# 修改yml文件后需要重新加载
./prepare

# 重启harbor
docker-compose up -d

成功之后会加载一会…

3. Harbor界面操作

​http://192.168.50.136:9090/​​​ 用户名: admin
密码: 设置文件里面

搭建Docker私有仓库Harbor安装_私有仓库_05
搭建Docker私有仓库Harbor安装_docker_06

# 登录远程仓库
docker login -u admin -p 密码 127.0.0.1:端口

# 从远程仓库拉取nginx镜像
docker pull nginx

# 添加标志
docker tag nginx:latest 127.0.0.1:端口/library/nginx:latest

# 上传到远程仓库
docker push 127.0.0.1:端口/library/nginx:latest

​/home/jack/docker/data/registry/docker/registry/v2/repositories/​​ 在你设置的数据所在目录可以看到对应的仓库

搭建Docker私有仓库Harbor安装_nginx_07
搭建Docker私有仓库Harbor安装_docker_08

4. Harbor启动出错

​✖ Need to install docker-compose(1.18.0+) by yourself first and run this script again.​​​ 需要安装docker-compose​

搭建Docker私有仓库Harbor安装_仓库_09

​ERROR: for registry Cannot create container for service registry: Conflict. The container name "/registry" is already in use by container "0d32ab64c757f53ef4efe16f0c1a4768b5c47a99a6397ecbd8b3d974d5918738". You have to remove (or rename) that container to be able to reuse that name.​

unable to remove repository reference “registry” (must force) - container 0d32ab64c757 is using its referenced image ee34aa9d8ab2

# 列出所有镜像
docker images

# 停止容器
docker stop registry

搭建Docker私有仓库Harbor安装_远程仓库_10
搭建Docker私有仓库Harbor安装_远程仓库_11