当前位置: 首页 > news >正文

Docker:公有仓库和私有仓库的搭建

Docker:公有仓库和私有仓库

公有仓库

Docker公有仓库是存储和分发Docker镜像的在线服务。最著名的公有仓库是Docker Hub。它包含了大量的官方镜像和社区镜像,方便用户快速获取所需的镜像。

但是国内现不能访问docker hub,因此本次公有仓库使用阿里云仓库

进入阿里巴巴开源镜像站,然后进入容器镜像控制台

开通容器镜像服务

在这里插入图片描述

开通后可以创建镜像仓库

在这里插入图片描述

可以自行选择公开或是私有

在这里插入图片描述

选择本地仓库

这样我们在阿里云的仓库就创建完了,我们可以在docker上登录阿里云仓库,下载或者上传镜像

登录阿里云仓库,一般在创建完镜像仓库之后会有教程

[root@docker ~]# docker login --username=kami999 crpi-nq4gaj31p1s7eii3.cn-hangzhou.personal.cr.aliyuncs.com
Password: 
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-storeLogin Succeeded

在上传镜像前需要注意阿里云对镜像格式的要求,我们可以使用tag修改

[root@docker ~]# docker tag myhttpd:latest crpi-nq4gaj31p1s7eii3.cn-hangzhou.personal.cr.aliyuncs.com/kami1/kami:myhttpd
[root@docker ~]# docker images
REPOSITORY                                                              TAG       IMAGE ID       CREATED       SIZE
crpi-nq4gaj31p1s7eii3.cn-hangzhou.personal.cr.aliyuncs.com/kami1/kami   myhttpd   e0120625b392   10 days ago   115MB
myhttpd                                                                 latest    e0120625b392   10 days ago   115MB
nginx                                                                   latest    41f689c20910   8 weeks ago   192MB

然后可以使用push上传到镜像仓库

[root@docker ~]# docker push crpi-nq4gaj31p1s7eii3.cn-hangzhou.personal.cr.aliyuncs.com/kami1/kami:myhttpd
The push refers to repository [crpi-nq4gaj31p1s7eii3.cn-hangzhou.personal.cr.aliyuncs.com/kami1/kami]
d4f096d02045: Pushed 
myhttpd: digest: sha256:27cd67a553934c5760ce7b3cc6ae783e8974d9ecf8b3a13f10eca3884efca1d4 size: 528

上传完成后到镜像仓库查看

在这里插入图片描述

能够看到上传的镜像,还能看到镜像的构建历史记录,删除镜像

私有仓库

一般使用harbor搭建私有仓库,Harbor 是一个功能更强大的企业级私有仓库,提供了图形化界面、用户管理、镜像复制、漏洞扫描等功能。

Harbor依赖的外部组件

Nginx(即proxy代理层):Nginx前端代理,主要用于分发前端页面UI访问和

镜像上传和下载流量。

Registry v2:镜像仓库,负责存储镜像文件。

Database(Mysql或者Postgresql):为core services提供数据库服务,负责

存储用户权限、审计日志、Docker image分组信息等数据。

我们只需要nginx和registry 用于前端代理和存储镜像

Harbor自有组件

**Core services(Admin Server):**这是Harbor的核心功能,主要提供以下服务:

**UI:**提供图形化界面,帮助用户管理registry上的镜像(image),并对用户进行授权。

**webhook:**为了及时获取registry上image状态变化的情况,在Registry上配置webhook,把状态传递给

UI模块。

**Auth服务:**负责根据用户权限给每个docker push/pull命令签发token。Docker客户端向Registry服务发

起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。

**API:**提供Harbor RESTful API。

Replication Job Service:提供多个Harbor实例之间的镜像同步功能。

**Log collector:**为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

将harbor的压缩包上传,并且解压

[root@docker ~]# tar -xzvf harbor-offline-installer-v1.10.10\(最新版2022-02-21\).tgz
[root@docker ~]# cd harbor/
[root@docker harbor]# ls
common.sh               harbor.yml  LICENSE
harbor.v1.10.10.tar.gz  install.sh  prepare

修改harbor.yml

hostname: 192.168.100.10   #监听本地主机ip#https:# port: 443#certificate: /your/certificate/path#private_key: /your/private/key/path把这些注释掉

还能够通过该文件修改harbor的登录密码,登录密码默认为Harbor12345

harbor_admin_password: Harbor12345

还需要安装docker-compose,harbor是被docker-compose控制的,然后再运行 ./install.sh开始安装harbor,安装完毕后,可以通过 docker-compose start/stop开启/关闭harbor。

[root@docker ~]# yum -y install docker-compose
[root@docker harbor]# ./install.sh
✔ ----Harbor has been installed and started successfully.----   #出现这条信息代表脚本运行成功

我们可以通过访问http://ip/harbor来查看harbor的图形化管理界面

在这里插入图片描述

默认用户和密码为admin/Harbor12345

在这里插入图片描述

我们还需要修改docke的配置,添加信任仓库。然后再修

改镜像名,上传镜像

[root@docker ~]# vim /etc/docker/daemon.json
在镜像加速器后面添加"insecure-registries": ["192.168.100.10"]

在这里插入图片描述

[root@docker ~]# systemctl daemon-reload
[root@docker ~]# systemctl restart docker

我们查看运行的容器会发现全都停止运行,这是因为我们重新启动docker,而容器不会随着docker的启动而启动,因此修改配置需要在运行脚本之前修改好,如果需要容器在docker重启后继续运行,可以运行容器的时候加上 – restart always

我们进入到harbor图形化管理界面后,可以创建仓库

在这里插入图片描述

如何将镜像上传到harbor仓库

我们需要先登录到harbor仓库

[root@docker ~]# docker login http://192.168.100.10
Username: admin
Password: 
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-storeLogin Succeeded
[root@docker ~]# docker tag myhttpd:latest 192.168.100.10/kami/myhttpd

上传到harbor仓库

[root@docker ~]# docker push 192.168.100.10/kami/myhttpd
Using default tag: latest
The push refers to repository [192.168.100.10/kami/myhttpd]
d4f096d02045: Pushed 
latest: digest: sha256:27cd67a553934c5760ce7b3cc6ae783e8974d9ecf8b3a13f10eca3884efca1d4 size: 528

在这里插入图片描述

在这里插入图片描述

总结:

常用的公共镜像仓库有Docker hub、阿里云仓库、或者daocloud仓库。

常用的私有镜像仓库有Docker官方提供的registry仓库和harbor仓库。

http://www.dtcms.com/a/466098.html

相关文章:

  • 有专门做牙膏的网站吗网站footer设计
  • 零基础从头教学Linux(Day 47)
  • libevent输出缓存区的数据
  • 宋红康 JVM 笔记 Day18|class文件结构
  • 网站源代码购买荆州 网站建设
  • ws2_32.dll文件丢失或损坏怎么办?4种有效修复方案分享
  • Rust程序语言设计(5-8)
  • 三合一网站建设公司杭州科技公司排名
  • 温州建设监理协会网站录入客户信息的软件
  • 38.Shell脚本编程2
  • ETLCloud-重塑制造业数据处理新范式
  • 【JavaSE】JVM
  • 部分网站dns解析失败wordpress 图片预加载
  • django 网站开发案例公众号微信
  • 数据库进阶实战:从性能优化到分布式架构的核心突破
  • MySQLEXPLAIN命令详解从执行计划看SQL性能优化
  • leetcode 506 斐波那契数
  • Linux 命令:mount
  • JavaWeb——Servlet生命周期
  • JavaWeb——(web.xml)中的(url-pattern)
  • 企业网站建设合作协议范文天津城市建设大学网站
  • 新专业加速落地!设备采购先行,工业视觉人才培养破局。
  • FastAPI 入门:从环境搭建到实战开发的完整指南
  • Redis的String详解
  • MySQL事务隔离级别详解从读未提交到可串行化
  • 网站域名注册空间app外包
  • 赣州网站推广公司微网站建设是什么
  • 图扑 HT 架构下 AR 应用开发与行业解决方案实现
  • 测试实战心得
  • 网页网站设计价格为什么我做的视频网站播放不了