Docker 使用基础(1)—镜像仓库

                                        🎬慕斯主页修仙—别有洞天

                                       ♈️今日夜电波:秒針を噛む—ずっと真夜中でいいのに。

                                                           0:34━━━━━━️💟──────── 4:20
                                                                🔄   ◀️   ⏸   ▶️    ☰  

                                 💗关注👍点赞🙌收藏您的每一次鼓励都是对我莫大的支持😍


 目录

首先理解几个概念

Docker镜像仓库(Registry)是什么?

镜像仓库分类?

镜像仓库工作机制?

常用的镜像仓库命令

1. 登录镜像仓库

2. 登出镜像仓库

3. 拉取镜像

4. 推送镜像

5. 搜索镜像

注意事项

常见的镜像命令

1. docker images

2. docker image inspect

3. docker tag

常见容器命令

1. docker run

2. 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
        认证能力:提供用户注册,登录、登出能力
        索引:提供镜像的索引信息,方便检索
        一个容器镜像包含了两个部分,一个是元数据,其实就是由 dockerfile 构建出来的描述文件,这个描述文件会说这个容器镜像有多少层,每一层里面有什么内容,它的checksum 这些信息都会记录下来,还有最终的可执行文件在哪就是在存储数据里面,就是在一个一个的 blob 里面,真正占有空间的就是这些 blob。

        下面看看官方给出的Docker 架构,可以结合此图来理解镜像仓库的概念:

镜像仓库分类?

        Docker镜像仓库按照不同的分类标准可以划分为多种类型。以下是根据镜像仓库的公开性、供应商和面向群体等维度进行分类的详细介绍:

一、按是否对外公开分类

  1. 公有仓库
    • Docker Hub:最常用的公共仓库,包含了大量的官方和社区维护的镜像。用户可以通过Docker Hub获取这些镜像,并享受自动构建、团队协作等额外功能。Docker Hub的官网为https://hub.docker.com/。
    • 阿里云仓库:在国内使用较为方便,提供了丰富的镜像资源和服务。
    • 其他公有仓库:还有如Google、RedHat等供应商提供的镜像仓库服务,以及第三方赞助的registry等。
  1. 私有仓库
    • Registry私有仓库:Docker官方提供的工具,可以用于构建私有的镜像仓库。Registry分为v1版本和v2版本,v2版本使用Go语言编写,相对更加快速简洁。
    • Harbor企业私有仓库:Harbor是VMware公司开源的企业级Docker Registry项目,它基于Docker Registry进行了更高级的封装,提供了图形管理UI、基于角色的访问控制(RBAC)、AD/LDAP集成以及审计日志等功能。
    • 阿里云个人私有仓库:阿里云提供的个人私有仓库服务,用户可以在阿里云上创建和管理自己的私有镜像仓库。

二、按供应商和面向群体分类

  1. Sponsor Registry(赞助仓库)
    • 这类仓库由第三方提供,供客户和Docker社区版使用。它们可能提供一些特定的服务或功能,以吸引用户。
  1. Mirror Registry(镜像仓库)
    • 第三方提供的镜像仓库,但只让客户使用。例如,阿里云等云服务商提供的镜像仓库服务,用户需要注册才能使用。
  1. Vendor Registry(供应商仓库)
    • 由发布Docker镜像的供应商提供的仓库。例如,Google、RedHat等公司在提供其软件或服务的同时,也提供了对应的Docker镜像仓库服务。
  1. Private Registry(私有仓库)
    • 通过没有防火墙和额外安全层的私有实体提供的仓库,仅供内部使用。这类仓库通常由企业或组织自行搭建和管理,用于存储和管理自己的镜像资源。

镜像仓库工作机制?
  1. 镜像仓库使用流程
    • 通过 docker login 登录仓库
    • Docker pull 拉取需要的镜像
    • 通过 dockerfile 或者 commit 等方式制作完镜像通过 docker push 上传到仓库
  2. 实际研发中镜像仓库如何使用
    Docker Registry 中的镜像通常由开发人员制作,而后推送至“公共”或“私有”Registry 上
    保存,供其他人员使用,例如“部署”到生产环境;

常用的镜像仓库命令

        Docker的镜像仓库命令是Docker生态系统中的重要组成部分,它们允许用户与Docker镜像仓库进行交互,包括登录、登出、拉取镜像、推送镜像以及搜索镜像等。以下是对这些命令的详细介绍:

1. 登录镜像仓库
  • 命令docker login [OPTIONS] [SERVER]
  • 功能:登录到一个Docker镜像仓库。如果未指定镜像仓库地址,默认为官方仓库Docker Hub。
  • 选项
    • -u:登陆的用户名
    • -p:登陆的密码(出于安全考虑,建议不要在命令行中直接包含密码)
  • 示例docker login -u 用户名 -p 密码(注意:出于安全考虑,实际使用时应避免直接在命令行中输入密码)

2. 登出镜像仓库
  • 命令docker logout [OPTIONS] [SERVER]
  • 功能:登出一个Docker镜像仓库。如果未指定镜像仓库地址,默认为官方仓库Docker Hub。
  • 示例docker logout

3. 拉取镜像
  • 命令docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • 功能:从镜像仓库中拉取或者更新指定镜像。
  • 选项
    • -a:拉取所有tagged镜像
    • --disable-content-trust:忽略镜像的校验,默认开启
  • 示例
    • docker pull ubuntu:18.04:从Docker Hub下载ubuntu的18.04版本镜像
    • docker pull -a java:从Docker Hub下载REPOSITORY为java的所有镜像

如下我们在dockerhub拉取找到自己要拉取的镜像:

找到对应的Tags:

        拉取对应的镜像即可,由于是国外的网站,因此我们可以更换国内镜像源增加下载速度(具体参考上篇博客),注意格式为NAME:Tags:

4. 推送镜像
  • 命令docker push [OPTIONS] NAME[:TAG]
  • 功能:将本地的镜像上传到镜像仓库,需要先登录到镜像仓库。
  • 选项
    • --disable-content-trust:忽略镜像的校验,默认开启
  • 示例docker push myapache:v1:上传本地镜像myapache的v1版本到镜像仓库中

        需要先创建好自己的镜像仓库,并且按照创建好的镜像仓库格式改好镜像源的格式才能进行推送:

5. 搜索镜像
  • 命令docker search [OPTIONS] TERM
  • 功能:从Docker Hub查找镜像。
  • 选项
    • --automated:只列出automated build类型的镜像
    • -f <过滤条件>:基于给定条件过滤输出,例如-f stars=10列出收藏数不小于10的镜像
    • --no-trunc:显示完整的镜像描述
  • 示例docker search -f stars=10 java:从Docker Hub查找所有镜像名包含java,并且收藏数大于10的镜像

注意事项
  • 在使用这些命令时,请确保已经安装了Docker,并且Docker服务正在运行。
  • 登录和推送镜像到私有仓库时,需要确保你有足够的权限。
  • 镜像的TAG和DIGEST是镜像的唯一标识,用于区分不同版本的镜像。
  • 在拉取和推送镜像时,Docker会检查镜像的完整性,确保镜像没有被篡改或损坏。这可以通过选项--disable-content-trust来忽略,但通常不推荐这样做。

常见的镜像命令


当然,下面是对您提到的Docker命令的详细解析:

1. docker images

命令作用
docker images 命令用于列出本地主机上所有可用的Docker镜像。这些镜像可以是您从Docker Hub或其他镜像仓库拉取下来的,也可以是您自己构建的。

命令格式

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

尽管该命令支持[OPTIONS][REPOSITORY[:TAG]]作为可选参数,但通常直接运行docker images而不带任何参数就足以列出所有镜像。

常用选项

  • -a--all:显示所有镜像(包括中间层镜像)。默认情况下,docker images只显示顶层镜像。
  • --digests:显示镜像的摘要信息。
  • -f--filter:根据提供的条件过滤镜像列表。
  • --no-trunc:不截断输出信息,显示完整的镜像信息。

示例

docker images

这将列出所有顶层镜像的名称、标签、镜像ID、创建时间以及大小。

2. docker image inspect

命令作用
docker image inspect 命令用于显示一个或多个Docker镜像的详细信息,包括镜像的配置信息、层信息、元数据等。

命令格式

docker image inspect [OPTIONS] IMAGE [IMAGE...]

您可以通过指定一个或多个镜像名称或ID来查看它们的详细信息。

常用选项

  • --format:使用Go模板格式化输出信息。这允许您以自定义的格式显示镜像的详细信息。
  • --size:显示镜像的大小信息。

示例

docker image inspect nginx

这将返回nginx镜像的详细信息,包括其配置、层、架构等。

3. docker tag

命令作用
docker tag 命令用于给镜像添加一个新的标签(即,重命名镜像或为其指定一个新的版本)。这对于将镜像推送到Docker Hub或其他私有仓库时特别有用,因为您可以为镜像指定一个更具描述性的名称和标签。

命令格式

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

您需要将SOURCE_IMAGE[:TAG]替换为源镜像的名称和标签(如果未指定标签,则默认为latest),将TARGET_IMAGE[:TAG]替换为目标镜像的名称和标签。

示例

docker tag nginx:1.21 mynginx:latest

这将为nginx镜像的1.21版本添加一个新的标签mynginx:latest。现在,您可以使用这个新标签来引用这个镜像,就像它是一个全新的镜像一样。请注意,这实际上并没有创建镜像的新副本,而只是为现有镜像添加了一个额外的引用(即,标签)。

常见容器命令

1. docker run

• 功能 创建一个新的容器并运行一个命令
• 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
• 别名 docker container run
• 关键参数
○ -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 -p 80:80 -v /data:/data -d nginx:latest

我们使用docker在centos7的环境下启动了一个Ubuntu20.04的操作系统,通过使用-it选项以可以交互的终端方式进行启动:

2. docker ps

• 功能 列出容器
• 语法 docker ps [OPTIONS]
• 别名 docker container ls, docker container list, docker container ps
• 关键参数
○ -a :显示所有的容器,包括未运行的。
○ -f :根据条件过滤显示的内容。
○ --format :指定返回值的模板文件。如 json 或者 table
○ -l :显示 latest 的容器。
○ -n :列出最近创建的 n 个容器。
○ --no-trunc :不截断输出。
○ -q :静默模式,只显示容器编号。
○ -s :显示总的文件大小。
• 样例

docker ps -a


                     感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o! 

                                       

                                                                        给个三连再走嘛~  

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

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

相关文章

android13 固定U盘链接 SD卡链接 TF卡链接 硬盘链接

1.前言 有些客户使用的应用并不带有自动监听U盘 sd卡广播的代码,使用的代码是固定的地址,这样的话,就需要我们将系统的挂载目录固定了。 原始路径 /storage/3123-19FA 增加链接 /storage/upan_000 -> /storage/3123-19FA 2. 首先如果是应用本身监听的话,使用的是 /…

【Linux线程篇】探索Linux多线程:并行编程的入门指南

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; Linux线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行&am…

揭秘:离心风机风量背后的科学原理

在工业生产和建筑环境中&#xff0c;离心风机如同一位不倦的呼吸管家&#xff0c;默默地维持着空气流动与品质。 你是否好奇过&#xff0c;究竟是什么因素在背后操纵着这位“呼吸管家”的风量表现呢&#xff1f;今天&#xff0c;就让我们一探究竟。 举个例子&#xff1a;你在吹…

『大模型笔记』GraphRAG:利用复杂信息进行发现的新方法!

GraphRAG:利用复杂信息进行发现的新方法! 文章目录 一. GraphRAG:利用复杂信息进行发现的新方法!1. 将RAG应用于私人数据集2. 整个数据集的推理3. 创建LLM生成的知识图谱4. 结果指标5. 下一步二. 参考文献微软官方推文:https://www.microsoft.com/en-us/research/blog/gra…

HTML5文本标签、图像标签、超链接

一、文本样式标签 字体样式标签&#xff1a; 加粗&#xff1a;<strong>…</strong> 斜体&#xff1a; < em >…</ em> eg&#xff1a; <h3>徐志摩人物简介</h3> <p> <strong>1910</strong>年入杭州学堂<br/> &l…

微信小程序 - 本地存储 增加有效期

小程序的本地存储API提供了wx.setStorageSync和wx.setStorage来存储数据&#xff0c;注意的是&#xff0c;小程序的本地存储并没有明确的有效期设置&#xff0c;存储的数据在不超过限制的情况下&#xff0c;会一直保留。 一、小程序本地存储API 小程序的本地存储API提供了设置…

WEB06JavaScriptAjax

基础语法 引入方式 引入方式 内部脚本&#xff1a;将JS代码定义在HTML页面中 JavaScript代码必须位于<script></script>标签之间 在HTML文档中&#xff0c;可以在任意地方&#xff0c;放置任意数量的<script> 一般会把脚本置于<body>元素的底部&a…

常见的气体流量计有哪些?

1.气体涡轮流量计 适用场合&#xff1a;流量变化小&#xff0c;脉动流频率小&#xff0c;中低压洁净天然气优点 1.精度高&#xff0c;重复性好 2.测量范围广&#xff0c;压损小&#xff0c;安装维修方便 3.具有较高的抗电磁干扰和抗震动能力缺点&#xff1a;分辨率低&#xff…

浏览器中js外挂脚本的执行方式

1、开发工具控制台交互执行 网页中按F12打开开发者工具&#xff0c;选择“控制台”&#xff0c;键入js脚本命令回车执行&#xff0c;适用于临时使用脚本逻辑简单的场景&#xff0c;实例如下&#xff1a; // 获取网页元素的文本脚本 var elem document.getElementById("…

接入应用内支付服务,提高商业变现效率

在当今竞争激烈的移动应用市场中&#xff0c;开发者们面临着提升应用商业变现能力的挑战。用户体验的流畅性和支付的安全性至关重要。 HarmonyOS SDK应用内支付服务&#xff08;IAP Kit&#xff09;为开发者提供了一站式的解决方案&#xff0c;简化了应用内支付的接入流程&…

C嘎嘎:类和对象(一)

目录 面向过程和面向对象的初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的作用域 类的实例化 类对象模型 如何计算类对象大小 结构体内存对齐规则 this指针 this指针的引出 this指针的特性 类的6个默认成员函数 构造函数 概念 特性 …

喜讯丨美格智能通过国际EcoVadis平台认证企业社会责任并荣获承诺奖章,彰显可持续发展实力

作为全球领先的无线通信模组及解决方案提供商&#xff0c;美格智能在社会责任领域再创新高。近日&#xff0c;美格智能凭借在企业社会责任和可持续性采购发展方面的卓越表现&#xff0c;通过国际在线权威评价机构EcoVadis对公司环境、劳工与人权、商业道德、可持续采购等方面审…

根据空格、制表符、回车符等分割字符串re.split

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 根据空格、制表符、 回车符等分割字符串 re.split [太阳]选择题 根据给定的Python代码&#xff0c;哪个选项是正确的&#xff1f; import re pattern r\s print(f"【显示】pattern{…

高清图片压缩无水印小程序源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在当今的数字化时代&#xff0c;图片作为信息传播的重要载体&#xff0c;其质量和传输效率直接影响到用户体验。然而&#xff0c;高清图片往往伴随着较大的文件体积&#xff0c;这不仅会占用大量存储空间&#xff0c;还会拖慢网页或应用的加载速度。因此&#xff0c;…

热烈祝贺!全视通多家客户上榜全球自然指数TOP100!

2024年6月18日&#xff0c;全球医疗机构自然指数TOP100榜单发布&#xff0c;中国医疗机构在其中的表现尤为引人注目。 根据《自然》杂志网站发布的数据&#xff0c;此次公布的排名是基于&#xff08;2023年3月1日至2024年2月29日&#xff09;的统计数据&#xff0c;全球医疗机构…

旗晟机器人AI智能算法有哪些?

在当今迅猛发展的工业4.0时代&#xff0c;智能制造和自动化运维已然成为工业发展至关重要的核心驱动力。伴随技术的持续进步&#xff0c;工业场景中的运维巡检已不再单纯地依赖于传统的人工运维方式&#xff0c;而是愈发多地融入了智能化的元素&#xff0c;其中智能巡检运维系统…

前端Din字体和造字工房力黑字体文件

Din 字体是一种经典的、简洁的无衬线字体&#xff0c;它源自1930年代的德国交通标志设计。 造字工房力黑字体适用于数字&#xff0c;驾驶舱标题等统计界面 DIN-Medium.otf 案例 造字工房力黑.TTF 案例

记录一次MySql锁等待 (Lock wait timeout exceeded)异常

[TOC](记录一次MySql锁等待 (Lock wait timeout exceeded)异常) Java执行一个SQL查询未提交&#xff0c;遇到1205错误。 java.lang.Exception: ### Error updating database. Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transactionCluster…

动手学深度学习6.2 图像卷积-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;卷积层_哔哩哔哩_bilibili 代码_哔哩哔哩_bilibili 本节教材地址&#xff1a;6.2. 图像卷积 — 动…

浅析Nginx技术:开源高性能Web服务器与反向代理

什么是Nginx&#xff1f; Nginx是一款轻量级、高性能的HTTP和反向代理服务器&#xff0c;也可以用作邮件代理服务器。它最初由俄罗斯的程序员Igor Sysoev在2004年开发&#xff0c;并于2004年首次公开发布。Nginx的主要优势在于其非阻塞的事件驱动架构&#xff0c;能够处理大量并…