Docker:认识镜像仓库及其命令
文章目录
- Docker Registry
- 什么是Docker Registry
- 镜像仓库工作机制
- 使用流程
- 实际使用方法
- 仓库的拉取机制
- 常用的镜像仓库---DockerHub
- 什么是DockerHub
- 私有仓库
- 镜像仓库命令
- docker login
- docker pull
- docker push
- docker search
- docker logout
Docker Registry
什么是Docker Registry
Docker Registry的意思是镜像仓库,它的功能就是负责存储,管理和分发镜像,提供了登录认证的能力,建立了仓库的索引
在镜像仓库中会管理很多个Registry,Registry会通过命名来区分,每一个Registry都会包含一个或者多个镜像,镜像会通过镜像名称和标签来进行区分
整体的示意图如下所示:

Registry
Registry的意思要从哪一个镜像仓库中进行拉取镜像,通常通过dns和ip地址来确定一个镜像仓库,一个Registry中可以存在多个Repository
Repository
Repository可以分为是顶层仓库和用户从库,用户仓库的格式是用户名/仓库名,而每个仓库又可以包含多个标签,每个标签对应一个镜像

- Repository就是由某个特定的Docker镜像的所有迭代版本组成的镜像仓库
- 镜像名称就是name+tag
- 认证能力就是提供用户登录注册的功能
- 索引就是提供镜像的索引信息,方便进行检索
一个容器镜像可以包含有两个部分,一个是元数据,其实就是由dockerfile构建出来的描述文件,这个描述文件会说出这个容器镜像有多少层,每一层里面有什么内容,它的checksum的这些信息都会记录下来,还有最终的可执行文件是在哪个存储数据里面,就是一个一个的blob
镜像仓库工作机制
使用流程
- 通过docker login登录仓库
- docker pull拉取需要的镜像
- 通过dockerfile或者是commit的方式制作镜像,再通过docker push上传到仓库
实际使用方法
Docker Registry中的镜像通常是由开发人员进行制作,而后推送到公共或者私有的Registry上进行保存,供其他人员使用

仓库的拉取机制
在启动容器时,docker daemon会试图从本地获取相关的镜像,如果本地镜像不存在,就会从Registry中下载该镜像并保存到本地
常用的镜像仓库—DockerHub
什么是DockerHub
DockerHub是Docker提供的托管存储库服务,来进行查找容器镜像等功能,它具备的功能通常有:
- 注册私有仓库,发布镜像
- 提供镜像检索能力
- 提供其他的镜像
- 从github和bitbucket中自动构建容器镜像并推送到DockerHub终会
- 只是webhook,也就是一种基于Http的回调函数
私有仓库
下面是私有仓库的概念:
私有镜像仓库则是指部署在公司或组织内部,用于自身应用 Docker镜像存储、分发的镜像仓库。在构建公司内部使用的自动化发布系统的过程中,从安全的角度出发,应用的打包镜像一般情况下只会被存储在私有镜像仓库中,CI/CD 流程的衔接点也是通过向私有镜像仓库上传镜像和拉取镜像的操作来完成的
镜像仓库命令
常用的镜像仓库命令其实不多,这里全部列举出来
- docker login:用来登录仓库
- docker pull:也叫做docker image pull,用来拉取镜像
- docker push:也叫做docker image push,用来推送镜像
- docker search:用来查找镜像
- docker logout:用来登出仓库
docker login
基本功能就是登录到一个docker的镜像仓库,如果没有指明地址,默认使用官方的DockerHub
它这个登录有点像MySQL,需要指明用户名和密码,比如:
docker login -u xxx -p xxx
test@VM-24-7-ubuntu:~$ docker login -uzhaobohan
Password:
WARNING! Your password will be stored unencrypted in /home/test/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
docker pull
基本功能是从镜像仓库拉取或者更新指定的镜像
基本语法是
docker pull [options] name [:tag|@digset]
选项有 -a,表示拉取所有tagged镜像,–disable-content-trust,表示忽略镜像的校验,默认是开启状态
比如说,使用实例如下:
docker pull nginx:1.23.3
docker push
将本地的镜像上传到镜像仓库,和pull用法基本一样
docker push myapache:v1
docker search
从DockerHub中查找镜像,基本语法选项中包含有:
–no-trunc:显示完整的镜像描述
-f<过滤条件>:列出收藏数不小于指定值的镜像
比如说,可以有下面的语句:
docker search -f stars=10 nginx
test@VM-24-7-ubuntu:~$ sudo docker search -f stars=10 nginx
NAME DESCRIPTION STARS OFFICIAL
nginx Official build of Nginx. 19899 [OK]
unit Official build of NGINX Unit: Universal Web … 31 [OK]
nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers fo… 92
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 152
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX and NGIN… 41
nginx/unit This repository is retired, use the Docker o… 63
nginxproxy/nginx-proxy Automated nginx proxy for Docker containers … 137
nginxproxy/acme-companion Automated ACME SSL certificate generation fo… 134
bitnami/nginx Bitnami container image for NGINX 188
bitnami/nginx-ingress-controller Bitnami container image for NGINX Ingress Co… 34
nginxproxy/docker-gen Generate files from docker container meta-da… 17
ubuntu/nginx Nginx, a high-performance reverse proxy & we… 113
rancher/nginx-ingress-controller 13
上述的语句表示的意思是,从DockerHub中查找所有镜像包含NGINX,并且star数大于10的镜像
docker logout
登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认是官方的Docker Hub
指令很简单:
docker logout
test@VM-24-7-ubuntu:~$ docker logout
Removing login credentials for https://index.docker.io/v1/
相关文章:
Docker:认识镜像仓库及其命令
文章目录 Docker Registry什么是Docker Registry 镜像仓库工作机制使用流程实际使用方法仓库的拉取机制 常用的镜像仓库---DockerHub什么是DockerHub私有仓库 镜像仓库命令docker logindocker pulldocker pushdocker searchdocker logout Docker Registry 什么是Docker Regist…...
使用 Django 创建 App
文章目录 步骤 1:创建 Django 项目步骤 2:创建 App步骤 3:配置 App步骤 4:编写代码步骤 5:运行服务器 在 Django 中,App 是组织代码的基本单元,它可以包含模型、视图、模板等组件,帮…...
java定时任务 设置开始时间、结束时间;每周一、四、六执行;并且隔n周执行。最后计算所有执行时间
java定时任务 设置开始时间、结束时间;每周一、四、六执行;并且隔n周执行。最后计算所有执行时间) 定时任务需求程序设计依赖引入程序一、计算开始时间那周的周一时间二、根据executeTime和weekList.get(n),计算每个cron表达式。三、根据一和…...
linux的持续性学习
安装php 第一步:配置yum源 第二步:下载php。 yum install php php-gd php-fpm php-mysql -y 第三步:启动php。 systemctl start php-fpm 第四步:检查php是否启动 lsof -i :9000 计划任务 作用&am…...
MyBatis:概念简章
1. hello world 配置文件:mybatis-config.xml(核心配置文件,用于配置连接的数据库信息)(一般一个)XxxMapper.xml 该文件用于操作表(执行sql语句)(一张表一个)…...
有什么接码平台比较好用的
接码平台,也被称作短信接收平台或虚拟号码服务,主要是提供可以接收短信验证码的虚拟手机号码服务。这种服务通常被用于需要在网络平台上注册大量账号的情况,如营销推广、应用测试或是海淘购物时所需的手机号验证。下面将推荐几个较为好用的接…...
微服务之负载均衡器
1、负载均衡介绍 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上 进行执行。 根据负载均衡发生位置的不同, 一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方ÿ…...
《时间管理九段》前四阶段学习笔记
文章目录 0.何谓时间管理九段0.1 第一段--把一件事做好0.2 第二段--把一天过好0.3 第三段--掌控两周内的固定日程0.4 第四段--掌控两周内的弹性时间0.5 第五段--科学管理3个月的项目事件0.6 第六段--实现一年的梦想0.7 第七段--明确一生的愿景0.8 第八段--正确补充和释放自身能…...
LLVM Cpu0 新后端5 静态重定位 动态重定位
想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…...
旅游卡是项目还是骗局?还是实实在在的旅游项目?
旅游卡是一个实实在在的旅游项目,而非骗局。以下是我对旅游卡项目的几点分析: 项目实质: 旅游卡项目是由国内外多条旅游线路整合而成的卡片,为旅游者提供方便、实惠的旅游方式。持有旅游卡,可以完全抵销跟团游线路中的…...
大模型+RAG,全面介绍!
1 、介绍 大型语言模型(LLMs)在处理特定领域或高度专业化的查询时存在局限性,如生成不正确信息或“幻觉”。缓解这些限制的一种有前途的方法是检索增强生成(RAG),RAG就像是一个外挂,将外部数据…...
智能合约中存储和计算效率漏洞
存储和计算效率 不当的存储结构或计算密集型操作可能导致高Gas费用和性能瓶颈。示例场景:频繁读取和写入大数组 假设你正在构建一个投票系统,其中每个提案都有一个独立的计票器。为了实现这一点,你可能最初会考虑使用一个映射(m…...
软件测试基础知识总结
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、软件测试概述 1、什么是软件 定义:计算机系统中与硬件相互依存的一部分&#x…...
C语言 | Leetcode C语言题解之第143题重排链表
题目: 题解: struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head;struct ListNode* fast head;while (fast->next ! NULL && fast->next->next ! NULL) {slow slow->next;fast fast->next-&g…...
探寻性能优化:如何衡量?如何决策?
目录 一、衡量指标说明 (一)响应时间(Response Time) 平均响应时间(Average Response Time) 百分位数响应时间(Percentile Response Time) (二)吞吐量&a…...
Python Django 5 Web应用开发实战
Django 是一个高级 Python Web 框架,它鼓励快速开发和简洁、务实的设计。下面是一个关于如何使用 Django 开发一个包含五个基本页面的 Web 应用的实战指南。请注意,这里仅提供一个概述,实际开发中会有更多细节和步骤。 1. 安装 Django 首先,你需要安装 Django。你可以使用…...
H.264官方文档下载
H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。其官方文档可以在ITU官网上下载:https://www.…...
minio多节点部署
MinIO 是一个高性能的分布式对象存储服务,它可以配置为多节点(或多服务器)模式以提供高可用性和数据冗余。以下是一个基本的多节点MinIO部署示例: 确保你有多个服务器或虚拟机。在每个节点上安装MinIO。使用minio server命令启动多…...
2024年工业设计与制造工程国际会议(ICIDME 2024)
2024年工业设计与制造工程国际会议 2024 International Conference on Industrial Design and Manufacturing Engineering 会议简介 2024年工业设计与制造工程国际会议是一个集结全球工业设计与制造工程领域精英的盛会。本次会议旨在为业界专家、学者、工程技术人员提供一个分享…...
一次曝 9 个大模型,「字节 AI」这一年都在做什么?
字节跳动的大模型家族,会长出下一个抖音吗? 整个 2023 年,字节并没有对外官宣其内部自研的大模型。外界一度认为,大模型这一技术变革,字节入场晚了。梁汝波在去年底的年会上也提到了这一点,他表示「字节对…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
