开始使用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-<version>.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
网友评论