docker (十二)-私有仓库

docker registry

我们可以使用docker push将自己的image推送到docker hub中进行共享,但是在实际工作中,很多公司的代码不能上传到公开的仓库中,因此我们可以创建自己的镜像仓库。
docker 官网提供了一个docker registry的私有仓库项目,可以方便的通过docker部署。
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker image tag ruoyi-java:4.7.4 localhost:5000/ruoyi-java:4.7.4
docker push localhost:5000/ruoyi-java:4.7.4
docker pull localhost:5000/ruoyi-java:4.7.4

docker push默认使用HTTPS协议,而服务端的registry仓库使用的是HTTP。
解决这个问题,需要修改/etc/docker/daemon.json,加入

"insecure-registries": ["192.168.10.133:5000"]

harbor

habor是一个功能更强大镜像仓库,它具有完整的权限控制和Web界面,更符合我们的实际工作场景。

保存与加载image

当我们处于离线状态,比如在很多内网上不能访问互联网,这时候不能通过镜像仓库的方式共享image,我们可以使用导出和导入功能,手动拷贝镜像。
docker save会包含所有层,以及所有标签 + 版本信息。
docker save alpine:3.15 > alpine-3.15.tar  保存image
docker rmi alpine:3.15 删除本地image
docker load < alpine-3.15.tar 加载image

注意:
不要跟export和import命令混淆
docker save/load IMAGE save和load操作的是镜像
docker export/import CONTAINERexport和import操作对象是容器
image包含多个层,每一层都不可变,save保存的信息包含每个层和所有标签 + 版本信息。
容器运行的时候会创建一个可写入的容器层,所有的更改都写入容器层,export导出的只有容器层,不包含父层和标签信息。

具体搭建流程

 一 环境准备

安装docker和docker-compose

docker可选择二进制或yum安装(注意点:这里的如果是二进制安装,切忌不要配置zip,否则无法登录会报500或502错误

curl -SL https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
 
##测试
docker-compose version

二 harbor下载

Release 1.2.2 · goharbor/harbor · GitHubicon-default.png?t=N7T8https://github.com/goharbor/harbor/releases/tag/v1.2.2

v1.2 · Releases · goharbor/harbor (github.com)icon-default.png?t=N7T8https://github.com/goharbor/harbor/releases?expanded=true&page=15&q=v1.2输入v1.2-第15页为1.22版本

建议直接下载,使用wget太慢

三 跟着以下文档操作

Docker 私有仓库 harbor 搭建_docker构建harbor-CSDN博客

四 出现问题

 

这个错误表明在尝试推送镜像时,Docker 发现本地不存在标签为 192.168.10.133/library/photon 的镜像。这可能是因为你尚未在本地构建或拉取过具有该标签的镜像。 

1.构建镜像并打上标签:如果你已经有一个本地的镜像,并且希望将其推送到 192.168.10.133/library/photon 这个仓库,需要先为该镜像打上正确的标签,然后再进行推送

2. 推送的镜像于远程仓库中

总结:推送到指定的仓库的项目中,1.了解该项目推送命令 2.给要推送的镜像指定正确项目标签 3.推送 

五、从A服务器推送镜像到安装harbor的B服务器

请参考 https://www.cnblogs.com/zhengwei-cq/p/16361213.html

要在/etc/docker/daemon.json中配置 insecure-registries字段

insecure-registries 是 Docker 配置文件中的一个字段,用于指定 Docker 客户端信任的不安全的容器注册表(或称为镜像仓库)的地址。当 Docker 客户端尝试与容器注册表建立连接时,如果注册表的地址匹配 insecure-registries 中指定的地址,则 Docker 客户端会允许与该注册表建立非安全的连接,即允许使用 HTTP 或未经验证的 HTTPS 连接

默认情况下,Docker 客户端只信任使用 HTTPS 协议连接的容器注册表,而拒绝使用 HTTP 或未经验证的 HTTPS 连接。这是为了保证传输数据的安全性和完整性。但是,在一些情况下,如使用自签名证书、内部环境或者测试环境,你可能需要连接到不安全的容器注册表。

  • 33
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值