搭建Harbor私有镜像仓库

Harbor 是一个企业级的 Docker Registry,可以实现镜像的私有存储和日志统计权限控制等功能,并支持创建多项目。

Harbor 可以部署在任何支持Docker的Linux发行版上。目标主机需要安装Python,Docker和Docker Compose。

  • Python应该是2.7+
  • Docker引擎应为1.10+
  • Docker Compose需要为1.6.0+

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私有镜像仓库_第1张图片

使用官方自带脚本更新参数,在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

搭建Harbor私有镜像仓库_第2张图片

然后重启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/{项目名}/{标签名}

 

你可能感兴趣的:(Harbor)