使用harbor搭建docker私仓

开始使用docker registry搭建私仓,后来发现VMware 开源的Harbor更好。

  • proxy:由 Nginx 服务器构成的反向代理。
  • registry:由 Docker 官方的开源 registry 镜像构成的容器实例。
  • ui:即架构中的 core services, 构成此容器的代码是 Harbor 项目的主体。
  • mysql:由官方 MySql 镜像构成的数据库容器。
  • log: 运行着 rsyslogd 的容器,通过 log-driver 的形式收集其他容器的日志。
  • adminserver

1、安装过程

前提条件:

Harbor使用几个Docker容器来部署的,因此部署Harbor的节点上要求安装好Docker服务,同时要求安装好Python如下:

  • Python应该在2.7或以上版本
  • Docker engine应该在1.10或以上版本
  • Docker Compose需要在1.6.0或以上版本

1.1.2不能停用防火墙,要不然安装报错

安装Docker Compose

curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Harbor的安装:

1、下载安装包并解压

tar xvf harbor-offline-installer-.tgz

2、配置harbor.cfg文件

需修改hostname,别的使用缺省值

3、执行install.sh脚本安装并启动

./install.sh
后来修改配置后执行./prepare
再重新启动

登录并创建自己的镜像仓库(初始用户名/密码初始化为:admin/Harbor12345)。
这里我们使用HTTP方式,那么访问地址为:
http://192.168.100.18

管理的常用命令

Harbor的生命周期管理 你可以使用docker-compose来管理Harbor的生命周期,需在harbor目录中执行

启动:

docker-compose start
docker-compose up -d是不是初次启动?

停止

docker-compose stop

移除

docker-compose rm ,会 保留相关镜像文件
如果想删除数据的话,执行:
rm -r /data/database
rm -r /data/registry

查看容器状态:

docker-compose ps

修改配置文件,执行如下步骤:

docker-compose down -v会删除容器
vim harbor.cfg
./install.sh

客服端登录:

docker login -u 用户名 -p 密码 服务器地址
如果访问被拒绝,需在客服端机器上修改配置文件/etc/sysconfig/docker
ADD_REGISTRY='--add-registry 192.168.100.18'
OPTIONS='--insecure-registry 192.168.100.18'
重新启动docker就可以登录了

上传镜像文件

  • docker tag 192.168.100.18/项目名称/ubuntu
    如果项目名称为library,则为公开镜像,其它也新建项目再上传,为私有镜像,如demo
  • docker push 192.168.100.18/library/ubuntu

下载镜像文件

  • docker pull 192.168.100.18/library/ubuntu
    在项目里添加其它用户,这样用户就可以下载私有镜像文件
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.key -out harbor.csr
echo subjectAltName = IP:192.168.100.18 > extfile.cnf
openssl x509 -req -days 365 -in harbor.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor.crt
./prepare
docker-compose down
docker-compose up -d

新建目录/etc/docker/certs.d/192.168.100.18(or your registry host IP),将ca.crt拷贝到这个目录中,重启docker。docker pull 不用登录,push还是要登录。
参考资料:基于Harbor和CephFS搭建高可用Private Registry

基于 Docker Distribution 的企业级 Registry 服务

你可能感兴趣的:(使用harbor搭建docker私仓)