知识库

个人知识管理

用户工具

站点工具


博客:局域网搭建docker私有仓库管理平台harbor

局域网搭建Docker私有仓库管理平台Harbor

安装环境

  • Ubuntu14.04(Trusty Tahr) amd64(IP:192.168.15.224)
  • docker 18.03.0-ce, build 0520e24e
  • docker registry 2.6
  • docker-compose 1.21.0
  • Harbor v1.5.0-rc2

离线安装Docker

进入系统对应离线包目录 https://download.docker.com/linux/ubuntu/dists/trusty/pool/stable/amd64/ , 下载最新的安装包. 目前使用的版本是是Docker version 18.03.0-ce, build 0520e24e

安装docker

$ sudo dpkg -i docker-ce_18.03.0_ce-0_ubuntu_amd64.deb
$ docker -v
Docker version 18.03.0-ce, build 0520e24

docker 会自动设置为开机启动

安装docker-compose

docker私有仓库管理系统 harbor 依赖 docker-compose,先下载 docker-compose

$ curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-Linux-x86_64 -o docker-compose

复制到内网服务器上,安装到 /usr/local/bin 目录下

$ sudo cp docker-compose /usr/local/bin
$ sudo chmod a+x /usr/local/bin/docker-compose

安装成功后可以测试版本包

$ docker-compose -v
docker-compose version 1.21.0, build 5920eb0

安装并配置docker私有仓库管理系统Harbor

下载离线安装包

$ wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.0-rc2.tgz

复制到内网服务器上后解压

$ tar xvf harbor-offline-installer-v1.5.0-rc2.tgz
$ sudo mv harbor /opt

修改 harbor.cfg 文件,将主机名改成自己的IP地址

hostname = 192.168.15.224 # 主机名或IP

还可以修改默认密码等设置

默认Harbor的所有配置数据(包括Docker私有仓库的数据)都会存放在主机的 /data/ 目录下,为了防止以后一直推送镜像导致数据过大磁盘空间不足,考虑将数据存放到外置的数据盘上.

之前先分配并挂载了一个500G的磁盘,使用LVM技术挂载到了 /mnt/harbor/ 目录下,希望将默认数据存放到该目录下,之后就可以使用LVM技术扩容. 本来想直接修改 harbor.cfg 中的仓库存储路径,但是设置完后发现客户端push时一直失败,出现 500 Internal Server Error ,查看服务器 /var/log/harbor/registry.log 日志发现 err.code=unknown err.detail=“filesystem: mkdir /mnt/harbor: permission denied” 权限错误,一直没有办法解决.

后来直接使用软链接将 /data/ 将目录链接到了 /mnt/harbor ,安装后push镜像没有出现问题

$ sudo ln -s /mnt/harbor /data

安装Harbor

$ cd /opt/harbor
$ sudo ./install.sh

如果修改配置文件想重新启用可以

$ cd /opt/harbor
$ sudo docker-compose down -v
$ vim harbor.cfg
$ sudo ./prepare
$ sudo docker-compose up -d

现在可以在其他客户机上直接用浏览器打开网址 http://192.168.15.224 , 使用默认或修改过密码的admin用户登录.

客户端测试

修改客户端docker启动参数以支持http模式

因为docker默认使用的是https连接,而harbor默认使用http连接,所以需要修改客户端docker配置,标记insecure registry不安全仓库的主机。 在Ubuntu客户机上,可以修改 /etc/docker/daemon.json 配置文件,加入如下一行配置

{
  "insecure-registries": ["192.168.15.224"]
}

重启docker服务

$ service docker restart

外网下载并导出测试镜像

$ docker pull hello-world
$ docker save hello-world -o hello-world.tar 

复制到内网后导入客户机

$ docker load < hello-world.tar

重新打标签并推送到服务器

$ docker tag hello-world:latest 192.168.15.224/library/hello-world:latest
$ docker push 192.168.15.224/library/hello-world:latest

应该可以看到网页上多了一个镜像

测试拉取镜像功能

$ docker image remove 192.168.15.224/library/hello-world:latest
$ docker pull 192.168.15.224/library/hello-world:latest

参考引用

博客/局域网搭建docker私有仓库管理平台harbor.txt · 最后更改: 2019/09/11 00:49 (外部编辑)