Harbor 是一个企业级的 Docker Registry,可以实现镜像的私有存储和日志统计权限控制等功能,并支持创建多项目。
Harbor 可以部署在任何支持Docker的Linux发行版上。目标主机需要安装Python,Docker和Docker Compose。
1、下载指定版本的docker-compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#赋予可执行权限
chmod +x /usr/local/bin/docker-compose
#查看版本号
docker-compose --version
2、下载Harbor安装包
cd /opt
wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.2.tgz
#解压文件
tar -xzvf harbor-offline-installer-v1.5.2.tgz
#进入安装目录
cd /harbor
docker load -i harbor.v1.5.2.tar.gz
3、配置Python环境
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
4、配置Harbor
harbor安装目录下,修改harbor.cfg的 hostname 为当前主机IP(如114.116.99.151),其他的如Harbor密码等,可视情况进行修改。
因为harbor的默认端口为80,经常会与其他服务产生冲突,所以这里把端口修改为8083.
修改 docker-compose.yml文件。主要就是80->8083。
vim docker-compose.yml
proxy:
image: nginx:1.11.5
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx
ports:
- 8083:80
- 8443:443
depends_on:
- mysql
- registry
- ui
- log
特别需要注意的是,这里的服务端口修改后, common/templates/registry/config.yml 文件也需要进行修改。
vim common/templates/registry/config.yml
使用官方自带脚本更新参数,在harbor目录中执行 ./prepare , 然后安装 ./install.sh 。
以后启动的话就可以通过docker-compose直接启动。
docker-compose up -d #后台启动,如果容器不存在根据镜像自动创建
docker-compose down -v #停止容器并删除容器
docker-compose start #启动容器,容器不存在就无法启动,不会自动创建镜像
docker-compose stop #停止容器
5、harbor启动后,就可通过 http://114.116.99.151:8083 进行访问。默认的账户为 admin,密码为 Harbor12345。
6、推送镜像
通过命令 docker login -u admin -p Harbor 114.116.99.151:8083 会报错。
这里还需要修改docker配置文件 。
vim /lib/systemd/system/docker.service
找到ExecStart行 ,在后面添加 --insecure-registry 114.116.99.151:8083
然后重启docker
systemctl daemon-reload
systemctl restart docker
然后就可以推送、拉取镜像啦,不过推送、拉取镜像的时候都需要添加端口8083。
docker tag {镜像名或ID} 114.116.99.151:8083/{项目名}/{标签名}
docker push 114.116.99.151:8083/{项目名}/{标签名}
docker pull 114.116.99.151:8083/{项目名}/{标签名}