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

[Docker#4] 镜像仓库 | 部分常用命令

目录

什么是 Docker Registry

镜像仓库生活案例

镜像仓库分类

镜像仓库工作机制

常用的镜像仓库

私有仓库

镜像仓库命令

镜像命令[部分]

容器命令[部分]


什么是 Docker Registry

定义:Docker Registry 负责存储、管理和分发镜像,并提供了登录认证能力,建立了仓库的索引。例如:

结构

  • 镜像仓库(Registry):确定镜像仓库的位置,通常通过 DNS 或 IP 地址,如 hub.docker.com。一个 Registry 中可以存在多个 Repository。
  • Repository:特定 Docker 镜像的所有迭代版本组成的集合。Repository 可分为“顶层仓库”和“用户仓库”,用户仓库名称格式为“用户名/仓库名”。
  • 镜像名称(name)+标签(tag):如 nginx:latest。
  • 认证能力:提供用户注册、登录、登出功能。
  • 索引:提供镜像的索引信息,便于检索。

镜像仓库生活案例
  • 类比超市,一个 Repository 就是一个货架,不同的产品标签即为 tag。
镜像仓库分类

按是否对外开放

  • 公有仓库:如阿里云、DockerHub,无需登录即可下载镜像。
  • 私有仓库:位于私有网络,仅限公司内部使用。

按供应商和面向群体

  • Sponsor Registry:供客户和 Docker 社区版使用。
  • Mirror Registry:仅供客户使用,如阿里云需注册才能使用。
  • Vendor Registry:由发布 Docker 镜像的供应商提供,如 Google 和 Redhat。
  • Private Registry:仅供内部使用,无防火墙和额外安全层。许多大公司开发都有自己的私有仓库~
镜像仓库工作机制

1. 使用流程

  • docker login 登录仓库
  • docker pull 拉取镜像
  • docker push 上传镜像

实际研发中的使用

开发人员制作镜像并推送到公共或私有 Registry,供其他人员使用。

解释:

  • 开发环境:开发人员使用的一套环境
  • 测试环境:需求开发完成后,发布到供测试人员进行测试的环境
  • 预发布环境:版本测试完成后,发布到和生产类似的环境,提前模拟生产发布
  • 生产环境:真正面向客户的环境

拉取机制

  • 启动容器时,Docker 守护进程会尝试从本地获取镜像;若本地不存在,则从 Registry 下载并保存到本地。
常用的镜像仓库

1.DockerHub

功能

  • 注册私有仓库,发布镜像
  • 提供镜像检索能力
  • 提供官方和认证组织的镜像
  • 支持从 GitHub 和 Bitbucket 自动构建并推送到 Docker Hub
  • 支持 webhook

功能浏览

  • 镜像搜索
  • 镜像 tag 查找
  • 对应版本拉取命令
  • 镜像大小、ID、CPU 架构查看

2. 国内镜像源

可以配置的镜像加速器

  • 阿里云加速器
  • 网易云加速器
  • 百度云加速器

配置方法

  • 编辑 /etc/docker/daemon.json 文件,添加镜像加速器地址
  • 重启 Docker 服务
私有仓库

定义:部署在公司内部,用于存储和分发 Docker 镜像。

常见工具

  • Harbor:VMware 开源的企业级 Docker Registry,提供管理 UI、RBAC、AD/LDAP 集成、审计日志等功能。
  • Nexus:Sonatype 发布的仓库管理软件,常用于 Maven 和 Docker 私服。
  • Docker Registry:Docker 官方提供的私有仓库,类似于 Docker Hub。(不更新了)
镜像仓库命令

1 命令清单

  • docker login:登录仓库
  • docker pull:拉取镜像
  • docker push:推送镜像
  • docker search:查找镜像
  • docker logout:登出仓库

2. 具体命令

  • docker login
    • 功能:登录到 Docker 镜像仓库
    • 语法:docker login [OPTIONS] [SERVER]
    • 样例:docker login -u 用户名 -p 密码

dockerhub 被 ban 了。。

  • docker pull
    • 功能:拉取或更新指定镜像
    • 语法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    • 样例:docker pull nginx:1.23.3

直接拉取hello-world,可以看到其最终其实是拉取了docker.io/library/hello-world:latest,前面的一长串是官方仓库的地址,而:latest表示默认使用了最新版。

  • docker push
    • 功能:上传本地镜像到仓库
    • 语法:docker push [OPTIONS] NAME[:TAG]
    • 样例:docker push myapache:v1
  • docker search
    • 功能:从 Docker Hub 查找镜像
    • 语法:docker search [OPTIONS] TERM
    • 样例:docker search -f stars=10 nginx
  • docker logout
    • 功能:登出 Docker 镜像仓库
    • 语法:docker logout [SERVER]
    • 样例:docker logout
镜像命令[部分]
  1. docker images
    • 功能:列出本地镜像
    • 语法:docker images [OPTIONS] [REPOSITORY[:TAG]]
    • 样例:docker imagesdocker images ubuntu

  1. docker image inspect
    • 功能:查看镜像详细信息
    • 语法:docker image inspect [OPTIONS] IMAGE [IMAGE...]
    • 样例:docker image inspect nginx:1.23.3
  1. docker tag
    • 功能:标记本地镜像,归入某一仓库
    • 语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    • 样例:docker tag ubuntu:22.04 myregistry.com/myubuntu:22.04

通过docker tag可以给镜像打上一个新的标签,此处就给helllo-world镜像打了一个v1的标签。可以发现,打标签后,两者的image id是相同的,因为两者的镜像内容相同,只是名字不同。

docker tag还可以给镜像起别名,通过这种方式,给镜像名前面加上一串仓库路径,可以方便提交。

容器命令[部分]
  1. docker run
    • 功能:创建并运行新容器
    • 语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    • 样例:docker run --name mynginx -d nginx:latestdocker run -p 80:80 -v /data:/data -d nginx:latest
  1. docker ps
    • 功能:列出容器
    • 语法:docker ps [OPTIONS]
    • 样例:docker ps -a

博主还在研究科学上网,实战和具体的命令之后 ok 了再慢慢更新叭~


http://www.kler.cn/a/390174.html

相关文章:

  • python购物计算 2024年6月青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析
  • 网络安全-蓝队基础
  • GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件
  • 系统架构设计师论文:大数据Lambda架构
  • Java学习--网络编程
  • Python标准库模块的使用:math、datetime
  • AI生活之我用AI处理Excel表格
  • go函数传值是值传递?还是引用传递?slice案例加图解
  • 数据分析-44-时间序列预测之深度学习方法TCN
  • Autosar CP Network Management模块规范导读
  • C#中 layout的用法
  • 易泊车牌识别相机:4S 店的智能之选
  • Spring Boot与Spring Data JPA:简化数据库操作
  • Python毕业设计选题:基于django+vue的医院挂号系统设计与实现
  • stm32 踩坑笔记
  • 通过EtherNetIP转Profinet网关实现跨品牌EthernetIP协议的PLC通讯
  • 【系统设计】数据库压缩技术详解:从基础到实践(附Redis内存优化实战案例)
  • C#中break和continue的区别?
  • HARCT 2025 分论坛4:智能系统传感、传感器开发和数据融合中的智能数据分析
  • 【NOIP普及组】统计单词数
  • Redis数据结构及实现
  • AI Prompt 提示词的5大经典模型
  • 30.1 时序数据库TSDB的典型特点
  • 准确--FastDFS快速单节点部署
  • 【LeetCode】【算法】3. 无重复字符的最长子串
  • 单目视觉测量及双目视觉测量