https://www.docker.com/pricing/resource-consumption-updates
然后我想应该有自建镜像仓库的工具吧,果然Google一下就发现了一个非常不错的替代品:Harbor
这里我就在Debian10上搭建一个玩玩,有几个前提条件还是要提前说一下:
1.机器配置至少要2H4G40GDISK。
2.端口需要用到80/443/4443,不能有其他程序占用这些端口,如果有防火墙记得放行。
3.Docker引擎版本17.06.0以上,Docker Compose版本1.18.0以上,低于这个版本号的不支持。
安装docker和docker-compose:
apt -y update
apt -y install curl
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose这里我需要给harbor配置ssl,所以安装一个certbot:
apt -y install certbot直接用certonly模式去签一个证书:
certbot certonly --standalone -d reg.imlala.best签发好的证书路径:
/etc/letsencrypt/live/reg.imlala.best/fullchain.pem
/etc/letsencrypt/live/reg.imlala.best/privkey.pem下载harbor的离线安装包/解压/进入到harbor的目录:
cd /opt
wget https://github.com/goharbor/harbor/releases/download/v2.1.0-rc1/harbor-offline-installer-v2.1.0-rc1.tgz
tar xvf harbor-offline-installer-v2.1.0-rc1.tgz
cd harbor复制一份配置文件:
cp harbor.yml.tmpl harbor.yml编辑配置文件:
nano harbor.yml需要改动的地方如下:
# 换成你的域名
hostname: reg.imlala.best
http:
port: 80
https:
port: 443
# 换成你刚才生成的证书
certificate: /etc/letsencrypt/live/reg.imlala.best/fullchain.pem
private_key: /etc/letsencrypt/live/reg.imlala.best/privkey.pem
# 设置你的管理员密码
harbor_admin_password: password
database:
# 设置你的数据库密码
password: password
# 数据存储路径
data_volume: /data修改好配置后,就可以使用下面的jio本开始安装了:
./install.sh --with-notary --with-clair --with-chartmuseum现在访问你的域名,如果正常的话应该可以看到如下登录界面:

这里先简单说一下如何管理harbor:
cd /opt/harbor
docker-compose stop # 停止harbor
docker-compose start # 启动harbor如果要修改harbor的配置,先删除harbor所有的容器:
docker-compose down -v修改你的配置:
nano harbor.yml修改完成之后执行下面的命令使其生效:
./prepareprepare还可以用来管理notary/clair/chartmuseum。
例如我之前的配置是安装了clair,那这时候我想把clair给关了就可以执行下面的命令来实现:
./prepare --with-notary --with-chartmuseum重新创建并启动harbor:
docker-compose up -d下面简单介绍一下harbor的使用方法。
首先新建一个项目,这里的项目就相当于是一个镜像存储库:

可以设置这个存储库是公开还是私有:

现在我们就可以在另外一台机器内登录harbor:
docker login reg.imlala.best给镜像打一个tag:
docker tag imlala/p2pspider:latest reg.imlala.best/test/p2pspider:latest然后就可以push到我们的镜像仓库了:
docker push reg.imlala.best/test/p2pspider:latest在harbor上也可以看到我们push过来的镜像:

harbor可以使用clair来分析镜像内的漏洞,这是一个很不错的功能: