Docker-镜像仓库

Docker

  • ⛅Docker-Registry
    • 🌠分类
    • 🌠镜像仓库工作机制
    • 🌠常用的镜像仓库
    • 🌠镜像仓库命令
      • ☃️docker login
      • ☃️docker pull
      • ☃️docker push
      • ☃️docker search
      • ☃️docker logout
    • 🌠镜像命令[部分]
      • ☃️docker images
      • ☃️docker image inspect
      • ☃️docker tag
    • 🌠容器命令[部分]
      • ☃️docker run
      • ☃️docker ps

⛅Docker-Registry


镜像仓库 (Docker Registry) 负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引

镜像仓库管理多个 Repository, Repository 通过命名来区分。每个 Repository 包含一个或多个镜像,镜像通过镜像名称和标签(Tag)来区分

镜像仓库架构图

在这里插入图片描述

  • 镜像仓库(Registry): 要从哪一个镜像仓库拉取镜像,通常通过 DNS 或 IP 地址来确定一个镜像仓库如hub.docker.com, 一个 Registry 中可以存在多个Repository. Repository 可分为“顶层仓库”和“用户仓库”; 用户仓库名称格式为“用户名/仓库名”. 每个仓库可以包含多个 Tag(标签),每个标签对应一个镜像
  • Repository: 由某特定的 docker 镜像的所有迭代版本组成的镜像仓库
  • 镜像名称: (name) + 标签(tag): 如 nginx:latest
  • 认证能力: 提供用户注册,登录、登出能力
  • 索引: 提供镜像的索引信息,方便检索

🌠分类

  • 根据是否对外开放进行划分
    • 公有仓库: 像阿里云、dockerhub等放到公有网络上, 不用登录就可以下载镜像, 供大家访问使用
    • 私有仓库: 不对外开放,往往位于私有网络, 只有公司内部人员可以使用
  • 根据供应商和面向群体划分
    • sponsor(赞助)registry: 第三方的 registry, 供客户和 docker 社区版使用
    • mirror(镜像)registry: 第三方的 registry, 只允许客户使用, 例如阿里云必须注册才能使用
    • vendor(供应商)registry: 由发布 docker 镜像的供应商提供的 registry, 例如像 Google 和 Redhat 提供了镜像仓库服务
    • private(私有)registry:通过没有防火墙和额外的安全层的私有实体提供的 registry, 仅供内部使用

🌠镜像仓库工作机制


🍂镜像仓库使用流程

  • 通过 docker login 登录仓库
  • Docker pull 拉取需要的镜像
  • 通过 dockerfile 或者 commit 等方式制作完镜像通过 docker push 上传到仓库

🍂实际研发中镜像仓库的使用

Docker Registry 中的镜像通常由开发人员制作, 而后推送至公共私有 Registry 上保存, 供其他人员使用, 例如部署到生产环境

在这里插入图片描述

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

🍂镜像仓库的拉取机制

启动容器时, docker daemon 会试图从本地获取相关的镜像

本地镜像不存在时, 将从 Registry 中下载该镜像并保存到本地

🌠常用的镜像仓库

  1. DockerHub
  2. 国内镜像源
    • 网易加速器 → https://hub-mirror.c.163.com
    • 百度 → https://mirror.baidubce.com
    • 中科大 → https://mirrors.ustc.edu.cn/
  3. 私有仓库
    • 常见的私有仓库工具
      • Harbor
      • Nexus
      • Docker registry

🌠镜像仓库命令


commandaliasfunction
docker login登录仓库
docker pulldocker image pull拉取镜像
docker pushdocker image push推送镜像
docker search查找镜像
docker logout登出仓库

☃️docker login


🍂功能

登录到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

🍂语法

docker login [OPTIONS] [SERVER]
  • OPTIONS
    • -u: 登录的用户名
    • -p: 登录的密码
# 登录 Docker Hub 镜像仓库
docker login -u root -p 123

☃️docker pull


🍂功能

从镜像仓库中拉取或者更新指定镜像

🍂语法

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

🍂别名

docker image pull
  • OPTIONS
    • -a: 拉取所有 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验, 默认开启
# 拉取 nginx:1.23.3 镜像
docker pull nginx:1.23.3

☃️docker push


🍂功能

将本地的镜像上传到镜像仓库, 要先登录到镜像仓库

🍂语法

docker push [OPTIONS] NAME[:TAG]

🍂别名

docker image push
  • OPTIONS
    • -a: 推送所有 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验, 默认开启
# 推送 myapache:v1 镜像
docker push myapache:v1

☃️docker search


🍂功能

从 Docker Hub 查找镜像

🍂语法

docker search [OPTIONS] TERM
  • OPTIONS
    • --no-trunc: 显示完整的镜像描述
    • -f <过滤条件>: 列出收藏数不小于指定值的镜像
# 从 Docker Hub 查找所有镜像名包含 nginx,并且 star 数大于等于 10 的镜像
docker search -f stars=10 nginx

☃️docker logout


🍂功能

登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

🍂语法

docker logout [SERVER]
# 登出 Docker Hub 仓库
docker logout

🌠镜像命令[部分]

☃️docker images


🍂功能

列出本地镜像

🍂语法

docker images [OPTIONS] [REPOSITORY[:TAG]]

🍂别名

docker image ls, docker image list
  • OPTIONS
    • -a: 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
    • --digests: 显示镜像的摘要信息
    • -f: 显示满足条件的镜像
    • --forma: 指定返回值的模板文件
    • --no-trunc: 显示完整的镜像信息
    • -q: 只显示镜像 ID
# 列出本地全部镜像
docker images# 列出本地镜像中 REPOSITORY 为 ubuntu 的镜像列表
docker images ubuntu

☃️docker image inspect


🍂功能

查看镜像详细信息

🍂语法

docker image inspect [OPTIONS] IMAGE [IMAGE...]
# 查看镜像详细信息
docker images inspect nginx:1.23.3

在这里插入图片描述

☃️docker tag


🍂功能

标记本地镜像,将其归入某一仓库

🍂语法

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

🍂别名

docker image tag
# 给 ubuntu:22.04 这个镜像打上一个新的标签 myregistry.com/myubuntu:22.04
docker tag ubuntu:22.04 myregistry.com/myubuntu:22.04

🌠容器命令[部分]

☃️docker run


🍂功能

创建一个新的容器并运行一个命令

🍂语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

🍂别名

docker container run
  • OPTIONS
    • -d: 后台运行容器, 并返回容器 ID
    • -i: 以交互模式运行容器, 通常与 -t 同时使用
    • -P: 随机端口映射, 容器内部端口随机映射到主机的端口
    • -p: 指定端口映射, 格式为:主机(宿主)端口:容器端口
    • -t: 为容器重新分配一个伪输入终端, 通常与 -i 同时使用
    • --name="nginx-lb": 为容器指定一个名称
    • -h "mars": 指定容器的hostname
    • -e username="ritchie": 设置环境变量
    • --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行
    • -m:设置容器使用内存最大值
    • --network="bridge": 指定容器的网络连接类型
    • --link=[]: 添加链接到另一个容器
    • --volume , -v: 绑定一个卷
    • --rm: shell 退出的时候自动删除容器
# 使用 docker 镜像 nginx:latest 以后台模式启动一个容器,并将容器命名为 mynginx
docker run --name mynginx  -d nginx:latest# 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
docker run run -p 80:80 -v /data:/data -d  nginx:latest

☃️docker ps


🍂功能

列出容器

🍂语法

docker ps [OPTIONS]

🍂别名

docker container ls, docker container list, docker container ps
  • OPTIONS
    • -a: 显示所有的容器,包括未运行的
    • -f: 根据条件过滤显示的内容
    • --format: 指定返回值的模板文件。如json或者table
    • -l: 显示 latest 的容器
    • -n: 列出最近创建的 n 个容器
    • --no-trunc: 不截断输出
    • -h "mars": 指定容器的hostname
    • -q: 静默模式,只显示容器编号
    • -s: 显示总的文件大小
# 显示所有容器
docker ps -a

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/767276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git工具的详细使用

一、环境说明 [rootgit ~]# getenforce Disabled [rootgit ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (d…

网络安全实训Day9

写在前面 访问控制和防火墙桌面端安全检测与防御 网络安全实训-网络安全技术 网络安全概述 访问控制 定义&#xff1a;通过定义策略和规则来限制哪些流量能经过防火墙&#xff0c;哪些流量不能通过。本质是包过滤 可以匹配的元素 IP协议版本 源区域和目的区域 源IP地址和目…

【赠书活动】Python编程 从入门到实践 第3版(图灵出品)(文末送书-进行中)

编辑推荐 适读人群 &#xff1a;本书适合对Python感兴趣的所有读者阅读。 编程入门就选蟒蛇书&#xff01; 【经典】Python入门经典&#xff0c;常居Amazon等编程类图书TOP榜 【畅销】热销全球&#xff0c;以12个语种发行&#xff0c;影响超过 250 万读者 【口碑】好评如潮…

2-dubbo源码 : 源码环境搭建

好的开始是成功的一半&#xff0c;阅读源码也是一样。 很多同学在下定决心阅读一个开源框架之后&#xff0c;就一头扎进去&#xff0c;迷失在代码“迷宫”中。此时&#xff0c;有同学意识到&#xff0c;需要一边 Debug 一边看&#xff1b;然后又有一批同学在搭建源码环境的时候…

学习C++是否有必要学习Boost库?

C作为一门强大且灵活的编程语言&#xff0c;在软件开发领域有着广泛的应用。而在C的学习过程中&#xff0c;Boost库是一个经常被提及的重要资源。那么&#xff0c;对于C的学习者而言&#xff0c;是否有必要投入精力去学习Boost库呢&#xff1f;本文将就此问题展开详尽讨论。 一…

论文:Zero-Shot Entity Linking by Reading Entity Descriptions翻译笔记(阅读实体描述、实体链接)

文章目录 论文题目&#xff1a;通过阅读实体描述实现零样本实体链接摘要1 介绍2 零点实体链接2.1 审查&#xff1a; 实体链接2.2 任务定义2.3 与其他 EL 任务的关系 3 数据集构建4 实体链接模型4.1 生成候选4.2 候选排序 5 适应目标世界6 实验6.1 基线6.2 对未知实体和新世界6.…

C++例子

#include<iostream> using namespace std;//抽象类 //抽象cpu类 class CPU { public:virtual void calcuate()0; }; //抽象显卡类 class VideoCard { public:virtual void display()0; }; //抽象内存条类 class Memory { public:virtual void storage()0;};//电脑类 clas…

【计算机网络】物理层

文章目录 第二章 物理层一、 物理层的基本概念1. 物理层接口特性 二、数据通信基础1. 典型的数据通信模型2. 数据通信相关术语3. 设计数据通信系统要考虑的3个问题4. 三种通信方式5. 串行传输&并行传输6. 同步传输&异步传输7. 码元8. 数字通信系统数据传输速率的两种表…

rpc详解rpc框架

文章目录 概述rpc的优点组件工作流程&RPC的底层原理RPC的底层原理 RPC框架rpc框架优点RPC 的实现基础RPC的应用场景RPC使用了哪些关键技术rpc 调用异常一般怎么处理rpc和http的区别为什么RPC要比HTTP更快一些Dubbo和openfeign 区别远程调用RPC框架传输协议传输速度 概述 在…

MySQL:存储过程

1. 概念 MySQL中的存储过程指的是存储在数据库中的SQL语句集合。当创建好存储过程后&#xff0c;在运行时提供所需参数&#xff0c;存储过程就可以以代码指定的方式使用参数执行并返回值。 存储过程的特点包括&#xff1a; 封装与复用&#xff1a;可以把某一业务SQL封装在存储过…

2024年三分钟教你激活CleanMyMac v4.15.1破解版下载图文激活教程

软件介绍 CleanMyMac 系列最新X测试版本&#xff0c;CleanMyMac应该是世界上最容易使用且最强大的Mac实用系统清理工具&#xff0c;CleanMyMac X是一款集所有功能于一身的先进程序卸载清理器&#xff0c;只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉&…

使用JavaScript控制<video>视频播放

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 HTML 元素 用于在 …

每日一题 --- 移除链表元素[力扣][Go]

移除链表元素 题目&#xff1a;203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xf…

Java——抽象类和接口

目录 1.抽象类 1.概念: 2.语法 3.特性 2.接口 1.概念 2.语法 3.特性 1.抽象类 1.概念: 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的…

ClickHouse部署安装

准备工作 确定防火墙处于关闭状态 CentOS取消打开文件数限制 在hadoop102的 /etc/security/limits.conf文件的末尾加入以下内容 注意&#xff1a;以下操作会修改 Linux 系统配置&#xff0c;如果操作不当可能导致虚拟机无法启动&#xff0c;建议在执行以下操作之前给…

sentinel中StatisticSlot数据采集的原理

StatisticSlot数据采集的原理 时间窗口 固定窗口 在固定的时间窗口内&#xff0c;可以允许固定数量的请求进入&#xff1b;超过数量就拒绝或者排队&#xff0c;等下一个时间段进入, 如下图 时间窗长度划分为1秒 单个时间窗的请求阈值为3 上述存在一个问题, 假如9:18:04:…

2024年C语言最新经典面试题汇总(11-20)

C语言文章更新目录 C语言学习资源汇总&#xff0c;史上最全面总结&#xff0c;没有之一 C/C学习资源&#xff08;百度云盘链接&#xff09; 计算机二级资料&#xff08;过级专用&#xff09; C语言学习路线&#xff08;从入门到实战&#xff09; 编写C语言程序的7个步骤和编程…

【LLM多模态】Cogvlm图生文模型结构和训练流程

note Cogvlm的亮点&#xff1a; 当前主流的浅层对齐方法不佳在于视觉和语言信息之间缺乏深度融合&#xff0c;而cogvlm在attention和FFN layers引入一个可训练的视觉专家模块&#xff0c;将图像特征与文本特征分别处理&#xff0c;并在每一层中使用新的QKV矩阵和MLP层。通过引…

01. 如何配置ESP32环境?如何开发ESP32?

0. 前言 此文章收录于《ESP32学习笔记》专栏&#xff0c;此专栏会结合实际项目记录作者学习ESP32的过程&#xff0c;争取每篇文章能够将细节讲明白&#xff0c;会应用。 1. 安装IDE&#xff1a;Thonny 后续项目中我们都是使用pythont语言&#xff0c;而thonny工具能很好的支撑E…

DFT应用:频谱分辨率和频率估计

目录 一、什么是频谱分辨率 1. 关于矩形窗函数 2. 分析余弦信号频谱 3. 频谱分辨率的定义 4. 如何提高频谱分辨率 二、关于频率估计 一、什么是频谱分辨率 1. 关于矩形窗函数 当k1时&#xff0c;主瓣宽度就是2x&#xff0c;能量主要集中在主瓣部分&#xff0c;频谱泄露…