Docker核心组件

news2024/11/25 6:57:19

Docker核心组件 -镜像

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。

实际工作镜像仓库的使用:

在这里插入图片描述

常见的私有仓库工具:
• Harbor:Harbor 是 VMware 公司最近开源的企业级 Docker Registry 项目, 其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。它以 Docker 公司开源的registry 为基础,提供了管理 UI, 基于角色的访问控制(Role Based Access Control),
AD/LDAP 集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 DockerCompose 来对它进行部署。
• Nexus:Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,目前常被用来作为 Maven 私服、Docker 私服。
• Docker registry:由 docker 官方提供的私服,类似于 docker hub。用于保存公司内部上传的 Docker 镜像(不推荐)

镜像仓库命令

#登录命令(不加地址默认登录docker hub)
docker login [option] [server]
docker login 

#从镜像仓库拉取或更新指定镜像
docker pull [options] NAME[:TAG|@DIGEST]
-a : 拉取所有tagged镜像
--disable-content-trust : 忽律镜像校验 默认开启
docker pull nginx:1.23.3
docker pull nginx@sha256:557c9ede65655e5a70e4a32f1651638ea3bfb0802edd982810884602f700ba25

#将本地镜像上传到镜像仓库
docker push [OPTIONS] NAME[:TAG]
docker image push
-a : 推送所有tagged 镜像
--disable-content-trust : 忽略镜像校验,默认开启
我们先需要打个标签
docker tag nginx:1.23.4 newbie22docker/mybitnginx:v1.23.4
上传:
docker push newbie22docker/mybitnginx:v1.23.4

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

#登出一个Docker镜像仓库
docker logout [SERVER]

镜像命令

#列出本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
别名:
docker image ls/docker image list
关键参数:
-a : 列出本地所有的镜像(含中间映像层.默认情况下,过滤中间映像层)
--digests : 显示镜像的摘要信息
-f : 显示满足条件的镜像
--format : 指定返回值的模板文件
--no-trunc : 显示完整镜像信息
-q : 只显示镜像ID

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

#标记本地镜像,将其归入某一仓库
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag nginx:1.23.4 newbie22docker/mybitnginx:v1.23.4
docker push newbie22docker/mybitnginx:v1.23.4

#删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
-f : 强制删除
--no-prune : 不移除该镜像的过程镜像,默认移除

#将指定镜像保存成tar归档文件
docker save [OPTIONS] IMAGE [IMAGE...]
-o : 输出到的文件
docker save -o busyboxV1.36.1 busybox:1.36.1

#导入使用 docker save 命令导出的镜像
docker load [OPTIONS]
--input,-i : 指定导入文件,代替 STDIN
--quiet,-q : 精简输出信息

#显示镜像历史
docker history [OPTIONS] IMAGE

#删除不使用的镜像(容器不使用)
docker image prune [OPTIONS]
-a : 删除全部不使用的镜像
--filter : 指定过滤天剑
-f : 不提示是否删除

nginx介绍

在这里插入图片描述

在这里插入图片描述

例子: VPN/加速器/隐藏IP/缓存

==

在这里插入图片描述

保护后面的服务器/负载均衡

反向代理"代理"的是服务器端,这一过程对客户端来说是透明的

安装nginx

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

检查是否yum源是否有了nginx.repo
ll /etc/yum.repos.d

构建缓存
yum makecache

下载nginx
yum install nginx -y

启动nginx
systemctl start nginx
nginx

ps -ef|grep nginx

输入43.143.245.144

在这里插入图片描述

说明nginx安装/启动完成

修改首页内容

修改conf.d包下的default.conf中可找到index.html所在包位置,修改index.html文件

在这里插入图片描述

命令

#创建一个新的容器并运行一个命令
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 ps [OPTIONS]
-a : 显示所有的容器,包括未运行的
-f : 根据条件过滤显示的内容
--format : 指定返回值的模板文件
-l : 显示latest 的容器
-n : 显示最近创建的n个容器
--no-trunc : 不截断输出
-q : 静默模式,只显示容器编号
-s : 显示总的文件大小

Docker hub 上创建自己的私有仓库

#下载busybox
wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 --no-check-certificate

#拉取busybox镜像
docker pull busybox:1.36.1

#上传busybox镜像到私有仓库
docker tag busybox:1.36.1 newbie22docker/busyboxbynewbie22docker:v1.36.1

docker push newbie22docker/busyboxbynewbie22docker:v1.36.1

Docker Image(镜像)

DOcker 镜像是什么

  • Docker image 本质上是一个 read-only 只读文件,这个文件包含了文件系统 源码 库文件 依赖 工具等一些运行 application 所必须的文件
  • 我们可以把 Docker image 理解成一个模板 可以通过这个模板实例化出来很多容器
  • image 里面是一层层文件系统 Union FS 联合文件系统 可以将几层目录挂载到一起,形成一个虚拟文件系统 每一层文件系统我们叫做一层 layer 联合文件系统可以对每一层文件系统设置三种权限 只读 读写 写出 但是docker镜像中每一层文件系统都是只读的
  • 镜像相当于 Java 中的类 容器相当于 Java 中的对象

在这里插入图片描述

Docker的镜像可以被认为是一个包含了应用程序、依赖库和操作系统基础环境的快照文件。它类似于虚拟机中的镜像,但是更加轻量级和灵活。使用Docker的镜像可以方便地在不同的计算机或服务器之间共享应用程序,并且可以很容易地部署到生产环境中。在Docker中,镜像是由Dockerfile定义的一系列指令构建而成,每个指令都会在当前层次上进行改变,从而形成一个新的层次结构。最终,这些层次结构组合在一起形成了一个完整的镜像。

为什么设计镜像

Docker设计镜像有以下几个原因:

  1. 便于应用程序的开发和测试:在传统的应用程序开发中,开发人员可能需要在不同的机器上安装不同的软件和依赖库,这样会导致应用程序之间出现不兼容、版本问题等。而使用Docker的镜像技术,可以将所有的依赖和应用程序打包成一个镜像,方便开发人员进行开发和测试。
  2. 标准化部署:在传统的应用程序部署中,由于每台服务器的环境不同,可能会导致应用程序在不同的服务器上运行效果不一致。而使用Docker的镜像技术,可以保证应用程序在任何服务器上运行时都能够一致,从而提高了应用程序的可移植性和稳定性。
  3. 快速部署和扩展:使用Docker的镜像技术可以快速地部署和扩展应用程序。当需要部署新的应用程序时,只需在已有的Docker镜像上进行修改或新增,然后重新构建镜像即可。这样可以大大缩短应用程序部署时间,并使应用程序更易于扩展

,从而提高了应用程序的可移植性和稳定性。
3. 快速部署和扩展:使用Docker的镜像技术可以快速地部署和扩展应用程序。当需要部署新的应用程序时,只需在已有的Docker镜像上进行修改或新增,然后重新构建镜像即可。这样可以大大缩短应用程序部署时间,并使应用程序更易于扩展

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

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

相关文章

UI自动化测试用例管理平台搭建

用到的工具&#xff1a;python3 django2 mysql RabbitMQ celery selenium python3和selenium这个网上很多教程&#xff0c;我不在这一一说明&#xff1b; 平台功能介绍&#xff1a; 项目管理&#xff1a;用于管理项目。每个项目可以设置多个环境&#xff0c;例如开发环境…

winpcap 发包工具

本工具主要用来进行网络协议的调试&#xff0c;主要方法是&#xff0c;对现场数据抓包&#xff0c;然后将数据包带回交给开发人员&#xff0c;开发人员将该数据包重新发送和处理&#xff0c;模拟现场环境以便于调试和分析。 &#xff08;一&#xff09;使用方法 命令行下输入s…

linux0.12-10-chr_drv

[466页] 第10章 字符设备驱动程序 466–10-1-总体功能 466–10-1-1-终端驱动程序基本原理 467–10-1-2-Linux支持的终端设备类型 468–10-1-3-终端基本数据结构 472–10-1-4-规范模式和非规范模式 473–10-1-5-控制台终端和串行终端设备 476–10-1-6-终端驱动程序接口 476–…

【微信小程序】如何获取用户手机号授权登录

一. 前置条件 目前该接口针对非个人开发者&#xff0c;且完成了认证的小程序开放&#xff08;不包含海外主体&#xff09;&#xff0c;也就是说只针对企业认证小程序开放。若用户举报较多或被发现在不必要场景下使用&#xff0c;微信有权永久回收该小程序的该接口权限。在使用…

到底什么是CIDR(无类域间路由)?做网络的一定得懂这个术语!

CIDR&#xff08;无类域间路由&#xff09;是一种用于对互联网IP地址进行聚合和分配的技术。它通过改变IP地址的分配方式&#xff0c;有效地解决了IPv4地址空间不足的问题。 本文将详细介绍CIDR的原理、使用方法以及它对互联网的影响&#xff0c;还会针对CIDR出三道例题&#x…

使用SolVES 模型与多技术融合快速实现生态系统服务功能社会价值评估

生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xff0c;对提升人类福祉具有重大意义&#xff0c;且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目&#xff08;Millennium Ecosystem Asse…

金融学学习笔记第3章

第3章 管理财务健康状况和业绩 一、财务报表的功能 财务报表有三个重要的经济功能: (1)向公司的所有者和债权人提供关于公司目前状况及过去财务表现的信息。 (2)为所有者及债权人设定经营目标,对管理层施加限制提供了便捷的方式。 (3)为财务计划提供了方便的模式。 二、…

【马蹄集】第十二周作业

第十二周作业 目录 MT2056 二阶前缀和MT2057 门票MT2058 最大的平均值MT2068 高数考试MT2069 等差 MT2056 二阶前缀和 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 在一个直角坐标系上&#xff0c;有 n n n 个坐标上有元素值&…

发表计算机SCI期刊,有哪些建议? - 易智编译EaseEditing

要发SCI论文&#xff0c;首先得写一篇论文&#xff0c;然后再向SCI期刊投稿&#xff1a; 计算机SCI论文是一种重要的学术论文&#xff0c;需要遵循一定的写作规范和要求。以下是一些写作建议&#xff1a; 选择合适的标题和摘要。 标题应该简明扼要&#xff0c;能够准确反映论…

UE Http Server 插件说明

1. Create Http Server 创建Http服务器。 Port : 监听端口&#xff0c;范围 1 - 65535&#xff0c;要保证系统唯一&#xff0c;不然会监听失败。 2. Bind 绑定网页路由回调。 Target &#xff1a;HttpServer 对象 Http Path: 绑定路径&#xff0c;如 ”/index“ Http Verbs…

基于IMX8 实时ethercat的手机机器人方案设计

结构&#xff1a; 1、下述结构为操控手柄&#xff0c;用于采集人手运动信号&#xff0c;传递至上位机&#xff0c;对其他设备进行遥操控 2、手柄内含4个电机旋转副的手柄机械臂&#xff0c;内置16位分辨率旋转编码器记录角位移&#xff1b; 3、上位机连接手柄电机、器械电机…

【Java递归】一篇文章带你了解,什么是递归 ,递归的特点,递归应用场景,递归练习题

博主&#xff1a;東方幻想郷 专栏分类&#xff1a;Java | 从入门到入坟 Java递归 ⭐ 递归的定义⭐ 递归的特点⭐ 递归应用场景⭐ 简单例子⭐ 递归练习题&#x1f30c; 练习题模板&#x1f3f4;‍☠️ 练习题答案&#xff1a; ⭐ 递归的定义 &#x1f31f;递归是一种在方法通过调…

使用echocollect e将西门子PLC数据转发至SQL Server数据库

一 背景 随着工业4.0和工业大数据的发展&#xff0c;越来越多的制造型企业开始应用大型数据库来收集和分析数据&#xff0c;以辅助生产运营的决策。在制造工厂中实时收集和分析设备数据能够优化生产流程、减少停机时间并提高效率。然而&#xff0c;这些必要的设备数据通常被“…

在线教育平台小程序,打造高效学习新模式

随着科技的不断发展和互联网的普及&#xff0c;线上教育已经成为了现代人们获取知识、提升自我、实现梦想的重要途径。伴随而来的是线上教育平台的极度竞争。如何才能在这个竞争激烈的市场中脱颖而出&#xff1f;构建一个高效的、符合学生需求的线上教育课堂小程序非常关键。 …

性能测试重要知识与TPS上不去原因分析,测试进阶之路卷起来...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 常见性能测试术语…

阿里P7晒出工资条,看完扎心了……

前几天&#xff0c;有位老铁私信我&#xff0c;说看到某95后学弟晒出阿里P7的工资单&#xff0c;他是真酸了…想狠补下技术&#xff0c;努力冲一把大厂。 为了帮到他&#xff0c;也为了大家能在最短的时间内做面试复习&#xff0c;我把软件测试面试系列都汇总在这一篇文章了。 …

基于OpenCV和PyQt5的跳绳计数器应用程序

基于OpenCV和PyQt5的跳绳计数器应用程序 介绍 本文将介绍一个基于OpenCV和PyQt5的跳绳计数器应用程序。该程序可以使用计算机摄像头来检测跳绳动作&#xff0c;并计算跳绳次数。本文将介绍程序的实现方法和实现细节&#xff0c;包括背景减除算法和轮廓检测算法的使用。 背景…

Linux(云计算)期末复习资料

1&#xff1a;linux概述 ​ Linux是一种自由、开放源代码的操作系统&#xff0c;它最初由芬兰的Linus Torvalds在1991年开发&#xff0c;目前已经成为世界上最流行的操作系统之一。Linux操作系统的特点是免费、稳定、安全、可定制、可移植性强、支持多任务、多用户等。 2&…

[VRTK4.0]安装VRTKv4Tilia软件包导入程序

学习目标&#xff1a; 演示如何从Unitv资源商店安装VRTKv4Tilia包导入器,以轻松访问VRTKv4Tilia包&#xff0c;这些包为构建XR体验提供了各种有用的功能. 简述&#xff1a; 推荐使用2022.2.11F1以上版本来进行VRTK使用&#xff0c;我们可以从Unity资产商店导入Tilia包管理器&am…

Windows和Kali上使用proxychains代理流量

Windows和Kali上使用proxychains代理流量 PS. 本文演示都是在kali进行的&#xff0c;如有出入还请联系我哦1. Linux(Debian)1.1. 检查一下是否有proxychains1.2 修改config文件 2. Linux(Debian)安装proxychians43. Windows3.1 下载3.2 配置 4. Windows下的配置5. 测试 PS. 写这…