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

简介: 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


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
6月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2756 4
|
6月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
318 5
|
6月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2047 8
|
JSON Shell Linux
docker学习(四)--仓库
docker中仓库使用
806 0
|
安全 网络安全 Docker
docker学习(8) 在mac机上搭建私有仓库
docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传、下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证书的私有仓库。
1822 0
下一篇
开通oss服务