文章

自建docker镜像仓库

这里介绍两种自建docker仓库的方案

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

1 搭建Harbor

1.1 安装Harbor前需要安装docker和docker-compose,步骤略

1.2 安装harbor

下载地址:https://github.com/goharbor/harbor/releases

1.2.1 下载并解压

wget https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz | tar zxvf harbor-offline-installer-v2.11.0.tgz

1.2.2 进入目录并将harbor.yml.tmpl改成harbor.yml

cd harbor
cp harbor.yml.tmpl harbor.yml 

1.2.3 修改配置文件

vim harbor.yml

修改hostname为本机IP地址或域名,注释掉https

1.2.4 运行

./install.sh

1.2.5 登录

登录账号为admin,密码是harbor.yml里的harbor_admin_password,默认为Harbor12345

1.3 上传镜像

1.3.1 下载镜像

从公网拉取nginx:1.24的镜像

docker pull nginx:1.24

1.3.2 修改镜像tag

docker tag nginx:12.4 172.28.11.106:80/cs/nginx:1.24

1.3.3 登录harbor(如果本机就是harbor服务器可以略过)

docker login 172.28.11.106

报错

161.1.png

解决办法:

vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 172.28.11.106 --containerd=/run/containerd/containerd.sock

systemctl daemon-reload      //重载配置文件
systemctl restart docker       //重启docker

1.3.4 推送镜像

docker push 172.28.11.106:80/cs/nginx:1.24

1.4 拉取镜像

docker pull 172.28.11.106/cs/nginx:1.24

1.5 其他

重启harbor命令:

docker-compose stop
docker-compose up –d

161.2.png

2 Gitlab搭建docker私有仓库

2.1 修改配置文件

修改配置 /etc/gitlab/gitlab.rb 文件,将 registry_external_url 的值修改为 http://172.28.11.105:3333 端口可以随意设置

2.2 重启gitlab

docker restart gitlab

如果是docker部署的github,还需要配置docker-compose.yml,放开3333端口

161.3.png

2.3 上传镜像

2.3.1 修改镜像tag

docker tag nginx:1.24 172.28.11.105:3333/root/nginx:1.24

2.3.2 登录

docker login 172.28.11.105:3333

2.3.3 推送镜像

docker push 172.28.11.105:3333/root/nginx:1.24

2.4 拉取镜像

docker pull 172.28.11.105:3333/root/nginx:1.24

161.4.png

License:  CC BY 4.0