Docker harbor私有仓库部署与管理-3

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Docker harbor私有仓库部署与管理

4.6 在其他客户端上传镜像

以上操作都是在 Harbor 服务器本地操作。如果其他客户端登录到 Harbor,就会报如下错误。出现这问题的原因为Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。


docker login -u admin -p Harbor12345 http://192.168.147.105
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.147.105/v2/: dial tcp 192.168.147.105:443: connect: connection refused

72a050b70a7c4f5e8619d5b604e12574.png


(1)在 Docker 客户端配置操作

//解决办法是:在 Docker server 启动的时候,增加启动参数,默认使用 HTTP 访问。
vim /usr/lib/systemd/system/docker.service
--13行--修改
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.147.105 --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.147.105

44bc29f910114ebe8c3e5fa67256c7a0.png


//重启 Docker,再次登录
systemctl daemon-reload
systemctl restart docker
//再次登录 Harbor
docker login -u admin -p Harbor12345 http://192.168.147.105
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
//将自动保存凭据到/root/.docker/config.json,下次登录时可直接使用凭据登录 Harbor


047bd481556241ec9177d2e26d4e2e25.png


//下载镜像进行测试
docker pull 192.168.147.105/myproject-01/nginx:v1

eba921526899492a92f61d8602006c92.png


//上传镜像进行测试
docker pull cirros
docker tag cirros:latest 192.168.147.105/myproject-01/cirros:v2
docker push 192.168.147.105/myproject-01/cirros:v2

8fae36b4c8bf4d8a8e09db417064cce3.png


(2)刷新 Harbor 的 Web 管理界面进行查看,会发现 myproject-01 项目里面有两个镜像

0e8bf96dc26c4d559045c580d5c10113.png


5、维护管理Harbor

5.1 通过 Harbor Web 创建项目

在 Harbor 仓库中,任何镜像在被 push 到 regsitry 之前都必须有一个自己所属的项目。

单击“+项目”,填写项目名称,项目级别若设置为"私有",则不勾选。如果设置为公共仓库,则所有人对此项目下的镜像拥有读权限,命令行中不需要执行"Docker login"即可下载镜像,镜像操作与 Docker Hub 一致。


5.2 创建 Harbor 用户

(1)创建用户并分配权限

在 Web 管理界面中单击系统管理 -> 用户管理 -> +用户,

填写用户名为“xc”,邮箱为“xcdyx12138@163.com”,全名为“xiongchen”,密码为“Abc123456”,注释为“管理员”(可省略)。

附:用户创建成功后,单击左侧“…”按钮可将上述创建的用户设置为管理员角色或进行删除操作,本例不作任何设置。

e71fe07bf2714e50a32f745d86740dcc.png

7561d2ce36444c0a90b00e0c2dc20f75.png



(2)添加项目成员

单击项目 -> myproject-01-> 成员 -> + 成员,填写上述创建的用户 xc 并分配角色为“开发人员”。

附:此时单击左侧“…”按钮仍然可对成员角色进行变更或者删除操作

6afc2880c35a49c0b96381429275ded2.png


c788564490c24c8daa4f38cfa65caa53.png


(3)在客户端上使用普通账户操作镜像

//删除上述打标签的本地镜像
docker rmi 192.168.147.105/myproject-01/cirros:v2
//先退出当前用户,然后使用上述创建的账户 xc 登录
docker logout 192.168.147.105
docker login 192.168.147.105
docker login -u xc -p Abc123456 http://192.168.147.105
//下载和上传镜像进行测试
docker pull 192.168.147.105/myproject-01/cirros:v2
docker tag cirros:latest 192.168.147.105/myproject-01/cirros:v3
docker push 192.168.147.105/myproject-01/cirros:v3

0f69e87c8a5e44e9b6f2a79b6f6dfc8c.png

90cad64a6fc54037a1b80c04c509fd20.png


5.3 查看日志

Web 界面日志,操作日志按时间顺序记录用户相关操作

b17e0044ccb74a57ab0e22c281a26f27.png


5.4 修改 Harbor.cfg 配置文件

要更改 Harbor的配置文件中的可选参数时,请先停止现有的 Harbor实例并更新 Harbor.cfg;然后运行 prepare 脚本来填充配置; 最后重新创建并启动 Harbor 的实例。


使用 docker-compose 管理 Harbor 时,必须在与 docker-compose.yml 相同的目录中运行。


cd /usr/local/harbor
docker-compose down -v

29d2c73c7f9a4007a89a0d653e10740e.png


vim harbor.cfg      #只能修改可选参数
./prepare
docker-compose up -d
//如果有以下报错,需要开启防火墙 firewalld 服务解决
Creating network "harbor_harbor" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b53c314f45e8 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))
systemctl restart firewalld.service
docker-compose up -d

0bf73358d8a546c499340ce54304b99b.png


5.5 移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移

在Harbor服务器上操作


(1)移除 Harbor 服务容器

cd /usr/local/harbor
docker-compose down -v

4db933425cee481083905b7ae060aeea.png

(2)把项目中的镜像数据进行打包

//持久数据,如镜像,数据库等在宿主机的/data/目录下,日志在宿主机的/var/log/Harbor/目录下
ls /data/registry/docker/registry/v2/repositories/myproject-01
cd /data/registry/docker/registry/v2/repositories/myproject-01
tar zcvf registry01.tar.gz ./*

5702635fabaf436dbbb20844e06ef614.png


5.6 如需重新部署,需要移除 Harbor 服务容器全部数据

cd /usr/local/harbor
docker-compose down -v
rm -r /data/database
rm -r /data/registry


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
11
分享
相关文章
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
42 2
|
13天前
|
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
334 8
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
91 1
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
使用阿里云部署基于docker的mysql云服务
本篇文章将介绍如何使用阿里云安装docker、部署mysql服务,并远程连接至远端mysql
750 1
使用阿里云部署基于docker的mysql云服务
阿里云一键部署 Docker Datacenter
使用ROS模板在阿里云上一键部署Docker Datacenter
7877 0