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.rhkb.cn/news/372630.html

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

相关文章

ST7789 linux4.x驱动

文章目录 ST7789 linux4.x驱动设备树配置驱动程序编译驱动测试驱动 ST7789 linux4.x驱动 设备树配置 pinctrl_ecspi2_cs_1: ecspi2_cs_grp-1 {fsl,pins <MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x40017059>; };pinctrl_ecspi2_1: escpi2grp {fsl,pins <MX6UL_PAD_CSI_…

数字系统与进制转换

数字系统 数字逻辑是计算机科学的基础&#xff0c;它研究的是如何通过逻辑门电路&#xff08;与门、或门、非门等&#xff09;实现各种逻辑功能。数字系统则是由数字逻辑电路组成的系统&#xff0c;可以实现各种复杂的运算和控制功能。在计算机科学中&#xff0c;数字逻辑和数…

项目记录:C语言学生成绩排名程序

一个很简单的小项目&#xff0c;大一的学生作业。我简单介绍一下相关功能和代码之类的吧~ 本来题目不强制要求菜单的&#xff0c;我有点强迫症加了菜单。 【1】题目&#xff1a; 一个班40名学生&#xff0c;期末有10门课程成绩&#xff0c;要求计算并输出如下数据&#xff1a; …

Xilinx Vitis 2020工程源目录修改

目录 1 背景2 分析3 解决4 使用4.1 修改路径4.2 编译工程4.2.1 清理工程4.2.2 编译工程 1 背景 Xilinx Vitis可以做standalone程序开发,不过其工程中使用的路径为绝对路径。工程更换位置后编译将会显示错误。例如&#xff1a;源目录为D:/work,复制到同事电脑上放到C:/work(同事…

注册中心组成结构和基本原理解析

假如你正在设计和开发一个分布式服务系统&#xff0c;系统中存在一批能够独立运行的服务&#xff0c;而在部署上也采用了集群模式以防止出现单点故障。显然&#xff0c;对于一个完整的业务系统而言&#xff0c;这些服务之间需要相互调用并形成复杂的访问链路&#xff0c;一种可…

HTML(29)——立体呈现

作用&#xff1a;设置元素的子元素是位于3D空间中还是平面中 属性名&#xff1a;transform-style 属性值&#xff1a; flat&#xff1a;子级处于平面中preserve-3d:子级处于3D空间 步骤&#xff1a; 父级元素添加 transform-style:preserve-3d 子级定位调整子盒子的位置&a…

14-54 剑和诗人28 - 用于实时嵌入查找的向量检索

介绍 LLM 成功的关键因素是向量嵌入的使用。通过将文本转换为数字向量表示&#xff0c;我们可以将语义含义映射到数学向量空间。这使得模型能够根据向量之间的相似性在语言中概括模式。 随着我们的模型和数据集变得越来越大&#xff0c;高效地存储、组织和检索这些嵌入变得至关…

C++ Qt 自制开源科学计算器

C Qt 自制开源科学计算器 项目地址 软件下载地址 目录 0. 效果预览1. 数据库准备2. 按键&快捷键说明3. 颜色切换功能(初版)4. 未来开发展望5. 联系邮箱 0. 效果预览 普通计算模式效果如下&#xff1a; 科学计算模式效果如下&#xff1a; 更具体的功能演示视频见如下链接…

【易捷海购-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

ffmpeg滤镜-drawtext-命令行

使用 FFmpeg 在视频上添加文字可以通过 drawtext 滤镜来实现。这个滤镜允许你指定字体、大小、颜色、位置等。 基本用法 以下命令将 "Hello, World!" 添加到视频的顶部左侧&#xff1a; ffmpeg -i input.mp4 -vf "drawtexttextHello, World\!:fontcolorwhite…

JAVA Tesseract OCR引擎

Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发&#xff0c;后来被Google收购并于2006年开源。识别效果不好&#xff0c;速度还慢&#xff0c;但是好早好早了。 一、POM依赖 <!--OCR识别https://digi.bib.uni-mannheim.de/tesserac…

14-26 剑和侠客 – 预训练模型三部曲3 – 机器人时代来临

概述 在第 1 部分和第 2 部分中&#xff0c;我们讨论了适用于文本和图像任务的预训练模型&#xff0c;并探索了当今常用的模型。我们分析了这些模型的架构以及如何将它们用于特定任务。实现 AGI 所需的两个主要支柱是语言理解和机器的视觉能力。有许多任务与这两种能力有关。 …

Syncthing一款开源去中心化和点对点文件同步工具

Syncthing&#xff1a;一款开源的文件同步工具&#xff0c;去中心化和点对点加密传输&#xff0c;支持多平台&#xff0c;允许用户在多个设备之间安全、灵活地同步和共享文件&#xff0c;无需依赖第三方云服务&#xff0c;特别适合高安全性和自主控制的文件同步场景。 &#x…

4. kvm存储虚拟化

kvm存储虚拟化 一、命令行工具管理虚拟磁盘1、查看虚拟磁盘2、添加磁盘3、删除磁盘 二、qcow2格式的磁盘文件1、创建磁盘文件2、差量镜像/快速创建虚机2.1 创建差量镜像2.2 准备配置文件2.3 创建虚拟机2.4 批量部署虚拟机 三、存储池 storage pool1、类型2、在线迁移2.1 规划后…

【基于R语言群体遗传学】-14-种群起源的相对似然

我们可以将预测的基因型比例视为在种群中看到一组特定等位基因的概率。如果种群在等位基因频率上存在差异&#xff0c;我们可以使用基因型来推断个体起源于每个种群的相对可能性。大家可以先看一下之前的博客&#xff1a;群体遗传学_tRNA做科研的博客-CSDN博客 种群起源的相对似…

pytest-yaml-sanmu(六):YAML数据驱动测试

如果说 pytest 中哪些标记使用得最多&#xff0c;那无疑是 parametrize 了&#xff0c; 它为用例实现了参数化测试的能力&#xff0c;进而实现了数据驱动测试的能力。 1. 使用标记 parametrize 的使用需要提高两个内容&#xff1a; 参数名 参数值 pytest 在执行用例时&…

javascript DOM BOM 笔记

Web API API的概念 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细…

el-scrollbar实现自动滚动到底部(AI聊天)

目录 项目背景 实现步骤 实现代码 完整示例代码 项目背景 chatGPT聊天消息展示滚动面板&#xff0c;每次用户输入提问内容或者ai进行流式回答时需要不断的滚动到底部确保展示最新的消息。 实现步骤 采用element ui 的el-scrollbar作为聊天消息展示组件。 通过操作dom来实…

高智能土壤养分检测仪:农业生产的科技新助力

在科技日新月异的今天&#xff0c;农业领域也迎来了革命性的变革。其中&#xff0c;高智能土壤养分检测仪作为现代农业的科技新助力&#xff0c;正逐渐改变着传统的农业生产方式&#xff0c;为农民带来了前所未有的便利与效益。 高智能土壤养分检测仪&#xff0c;是一款集高科技…

共筑智能未来 | 思腾合力闪耀2024世界人工智能大会(WAIC 2024)

在刚刚结束的2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC 2024&#xff09;上&#xff0c;思腾合力作为行业领先的人工智能基础架构解决方案提供商&#xff0c;凭借卓越的产品和解决方案&#xff0c;成为展会上的亮点之一。此次盛会不仅展示了全球人工智…