【Docker】Docker Registry(镜像仓库)

文章目录

  • 一、什么是 Docker Registry
  • 二、镜像仓库分类
  • 三、镜像仓库工作机制
  • 四、常用的镜像仓库
  • 五、常用命令
    • 镜像仓库命令
    • 镜像命令(部分)
    • 容器命令(部分)
  • 六、docker镜像仓库实战
    • 综合实战一:搭建一个 nginx 服务
    • 综合实战二:Docker hub上创建自己私有仓库
    • 综合实战三:阿里云创建自己的私有仓库

一、什么是 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。


二、镜像仓库分类

按是否对外开放划分,也是研发人员常说的

  1. 公有仓库: 像阿里云、 dockerhub 等放到公有网络上,不用登录就可以下载镜像,供大家访问使用
  2. 私有仓库: 不对外开放,往往位于私有网络,只有公司内部人员可以使用。

按供应商和面向群体划分

  1. sponsor(赞助)registry: 第三方的 registry,供客户和 docker 社区版使用。
  2. mirror(镜像)registry: 第三方的 registry,只让客户使用,例如阿里云必须注册才能使用。
  3. vendor(供应商) registry: 由发布 docker 镜像的供应商提供的registry,例如像Google 和 Redhat 提供了镜像仓库服务
  4. private registry: 通过没有防火墙和额外的安全层的私有实体提供的registry,仅供内部使用。

三、镜像仓库工作机制

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

  2. 实际研发中镜像仓库如何使用
    Docker Registry 中的镜像通常由开发人员制作,而后推送至“公共”或“私有”Registry上保存,供其他人员使用,例如“部署”到生产环境:
    在这里插入图片描述

    • 名词解释
      • 开发环境:开发人员使用的一套环境
      • 测试环境:需求开发完成后,发布到供测试人员进行测试的环境
      • 预发布环境:版本测试完成后,发布到和生产类似的环境,提前模拟生产发布
      • 生产环境:真正面向客户的环境
  3. 镜像仓库的拉取机制
    启动容器时, docker daemon 会试图从本地获取相关的镜像、本地镜像不存在时,其将从 Registry 中下载该镜像并保存到本地。


四、常用的镜像仓库

  1. DockerHub
    • Docker Hub 是什么?
      Docker Hub 是 Docker 提供的托管存储库服务,用于查找容器映像并与您的团队共享。具有以下功能:
      • 个人可以注册私有仓库,能够发布自己的镜像
      • 提供镜像检索能力
      • 提供海量官方和认证组织的镜像
      • 从 GitHub 和 Bitbucket 自动构建容器镜像并将它们推送到 Docker Hub
      • 支持 webhook(webhook 是一种基于 HTTP 的回调函数,发生指定的事件时,服务器会自动将相关的有效负载发送到客户端的 webhook URL )
    • Docker Hub 功能浏览
      • 镜像搜索
        在这里插入图片描述
      • 镜像 tag 查找
        在这里插入图片描述
      • 对应版本拉取命令
        在这里插入图片描述
      • 镜像的大小、id、cpu架构查看
        在这里插入图片描述
  2. 国内镜像源
    国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内镜像加速器服务,例如:
    • 阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像工具 -> 镜像加速器-> 复制加速器地址)
    • 网易云加速器地址
    • 百度云加速器地址

可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

Shell
{# 注意如果最外层以及你给有了配置,不要直接覆盖,而是将下面的内容添加,然后确保 json 的格式正确"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}

添加完成后需要重新加载配置,重启 Docker:

Shell
# 加载配置
sudo systemctl daemon-reload
# 重启 docker
sudo systemctl restart docker
#查看 docker 状态
sudo systemctl status docker
  1. 私有仓库
    私有镜像仓库则是指部署在公司或组织内部,用于自身应用 Docker 镜像存储、分发的镜像仓库。在构建公司内部使用的自动化发布系统的过程中,从安全的角度出发,应用的打包镜像一般情况下只会被存储在私有镜像仓库中, CI/CD 流程的衔接点也是通过向私有镜像仓库上传镜像和拉取镜像的操作来完成的。
    • Harbor: Harbor 是 VMware 公司最近开源的企业级 Docker Registry 项目, 其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。它以 Docker 公司开源的registry 为基础,提供了管理 UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP 集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。 Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 Docker Compose 来对它进行部署。
    • Nexus: Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,目前常被用来作为 Maven 私服、 Docker 私服。
    • Docker registry: 由 docker 官方提供的私服,类似于 docker hub。用于保存公司内部上传的 Docker 镜像。

五、常用命令

镜像仓库命令

命令清单

在这里插入图片描述

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

  • 语法
docker login [OPTIONS] [SERVER]
  • 关键参数
    • -u 登陆的用户名
    • -p 登陆的密码
  • 样例
#root用户下
docker login

在这里插入图片描述

当然我们也可以通过指定选项来登录:

docker login -u cjl1314520

在这里插入图片描述


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

  • 语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • 别名
docker image pull
  • 关键参数
    -a 拉取所有 tagged 镜像
    --disable-content-trust 忽略镜像的校验,默认开启

  • 样例一

    • 先在dockerhub上找到我们想要下载的镜像:
      在这里插入图片描述
    • 输入下载命令docker pull nginx:1.23.4
      在这里插入图片描述
  • 样例二

    • 找到所要下载的镜像的DIGEST,如下:
      在这里插入图片描述
    • 输入下载命令docker pull nginx@sha256:557c9ede65655e5a70e4a32f1651638ea3bfb0802edd982810884602f700ba25
      在这里插入图片描述

docker push 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

  • 语法
docker push [OPTIONS] NAME[:TAG]
  • 别名
docker image push
  • 关键参数

    • -a 推送所有 tagged 镜像
    • --disable-content-trust 忽略镜像的校验,默认开启
  • 样例

这里我们不能直接往nginx站点里推送镜像

在这里插入图片描述

我们需要先在站点上创建仓库:

在这里插入图片描述
在这里插入图片描述

这里我们需要穿插一条命令:

  • docker tag: 给镜像取名字
    • 演示:docker tag nginx:1.23.4 cjl1314520/mybitnginx:v1.23.4
      在这里插入图片描述

使用命令推送镜像到我们的仓库:

docker push cjl1314520/mybitnginx:v1.23.4

在这里插入图片描述

这里我们可以看到,镜像已经被推送到我们在dockerhub上创建的仓库里了。

在这里插入图片描述

下面我们拉取一下我们自己仓库中的镜像:

docker pull cjl1314520/mybitnginx:v1.23.4

在这里插入图片描述

当然我们也可以使用 docker push cjl1314520/mybitnginx -a 把所有的镜像都推送到docker hub仓库中。


docker search 从 Docker Hub 查找镜像

  • 语法
docker search [OPTIONS] TERM
  • 关键参数

    • --no-trunc 显示完整的镜像描述
    • -f <过滤条件> 列出收藏数不小于指定值的镜像
  • 样例

docker search nginx

在这里插入图片描述

#查找所有stars=10的nginx
docker search -f stars=10 nginx

在这里插入图片描述

#查看nginx完整的镜像描述
docker search --no-trunc nginx

在这里插入图片描述


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

  • 语法
docker logout [SERVER]
  • 样例
docker logout

在这里插入图片描述


镜像命令(部分)

docker images 列出本地镜像

  • 语法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
  • 别名
docker image ls, docker image list
  • 关键参数

    • -a 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
    • --digests 显示镜像的摘要信息;
    • -f 显示满足条件的镜像;
    • --format 指定返回值的模板文件;
    • --no-trunc 显示完整的镜像信息;
    • -q 只显示镜像 ID。
  • 样例

docker images

在这里插入图片描述

#查找nginx
docker images nginx
#查找具体的nginx版本
docker images nginx:1.23.4

在这里插入图片描述

当然,docker命令是可以和Linux下的命令结合使用的。

在这里插入图片描述


docker image inspect 查看镜像详细信息

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

在这里插入图片描述

#通过ID来查看镜像的详细信息
docker image inspect IMAGE ID

在这里插入图片描述

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

  • 语法
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • 别名
docker image tag
  • 样例
docker tag ac232364af84 cjl1314520/mybitnginx:vv

在这里插入图片描述


容器命令(部分)

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 hub上找一个Ubuntu 20.04的镜像

在这里插入图片描述

拉取该镜像

在这里插入图片描述

#不带任何参数--没有任何效果
docker run ubuntu:20.04
#带参数--可以看到,终端变成了Ubuntu操作系统
docker run -it ubuntu:20.04

在这里插入图片描述
在这里插入图片描述

  • 样例二 -d参数

后台运行容器

docker run -d nginx:1.24.0

在这里插入图片描述

使用 docker ps 查看

在这里插入图片描述

  • 样例三 -it参数
docker run -it ubuntu:20.04 bash

在这里插入图片描述

  • 样例四 -P/-p参数
docker run -d -p 8081:80 nginx:1.24.0

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

docker run -d -P nginx:1.24.0

在这里插入图片描述

curl 127.0.0.1:32769

在这里插入图片描述

  • 样例五 --name、-h、-e参数
#--name选项
docker run -d --name mynginx1 nginx:1.24.0
#-h选项
docker run -it -h myubuntu ubuntu:20.04 bash
#-e选项
docker run -it -h myubuntu -e myenv=test ubuntu:20.04 bash

在这里插入图片描述
在这里插入图片描述

  • 样例六 --cpuset-cpus、-m选项

在这里插入图片描述

当我们不指定内存时,可以看一下:

docker run -d --name mynginx1 --cpuset-cpus="1" nginx:1.24.0

在这里插入图片描述

docker run -d --name mynginx2 -m 500m nginx:1.24.0

在这里插入图片描述

  • 样例七 --link=[]、--rm选项
#在一个终端启动一个容器
docker run -it --name myubuntu1 ubuntu:20.04 bash
#另一个终端启动另一个容器
docker run -it --name myubuntu2 --link myubuntu1:mywebsite1 ubuntu:20.04 bash

在这里插入图片描述

在这里插入图片描述

docker run -it --name myubuntu1 --rm ubuntu:20.04 bash

在这里插入图片描述
在这里插入图片描述

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
docker ps -a
docker ps -f name =mynginx1
docker ps -f name=mynginx1
docker ps --format json
docker ps -l
docker ps -n 2
docker ps -q
docker ps -s

在这里插入图片描述


六、docker镜像仓库实战

综合实战一:搭建一个 nginx 服务

查找并拉取nginx镜像

  1. 选择一个nginx镜像,版本最好是比较新的,没有安全漏洞的
    在这里插入图片描述
  2. 拉取该镜像
    在这里插入图片描述
  3. 运行容器 docker run -p 8099:80 --name myweb1 -h myweb1.com -e myenv=test -d nginx:1.24.0
    在这里插入图片描述
    在这里插入图片描述

修改nginx首页

  1. 使用终端的方式重新运行该容器在这里插入图片描述
  2. 进入指定目录,修改html文件内容
    在这里插入图片描述
  3. 再次刷新,查看效果
    在这里插入图片描述

综合实战二:Docker hub上创建自己私有仓库

Busybox 简介

BusyBox 是一个集成了三百多个最常用 Linux 命令和工具的软件。 BusyBox 包含了一些简单的工具,例如 ls、 cat 和 echo 等等,还包含了一些更大、更复杂的工具,例如:grep、 find、 mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说 BusyBox 就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的 shell。 busybox 是一个集成了一百多个最常用 linux 命令和工具的软件,他甚至还集成了一个 http 服务器和一个 telnet 服务器,而所有这一切功能却只有区区 1M 左右的大小.因海外带宽较小,我们拉取该镜像推送到自己的仓库。

宿主机CentOS上安装BusyBox

  1. 创建BusyBox的目录并进入该目录
#创建目录
mkdir -p /data/mybusybox
#进入该目录
cd /data/mybusybox/
  1. 通过wget下载BusyBox
wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 --no-check-certificate

在这里插入图片描述

  1. 给它赋予可执行权限
chmod +x busybox

在这里插入图片描述

  1. 查看busybox的功能

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


综合实战三:阿里云创建自己的私有仓库

创建账号

进入 阿里云,点击右上角完成注册,可以使用支付宝快速注册

在这里插入图片描述

创建仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登录并推送镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为仓库创建时是私有的,所以当我们退出账号时,是不能拉取镜像并推送镜像的。

在这里插入图片描述

我入职了一个公司,开发一个镜像,我怎么选择用哪个作为基础镜像啊?

一般大型公司有自己专门的镜像制作组织,他们会选取对应的系统版本作为基础镜
像,例如华为某部门选取欧拉来制作基础镜像,腾讯选择自己的 TLinux 制作基础镜像,
不会因为出现 CentOS 不维护了无法使用的情况,而且这些镜像一般都会经过严格的
安全扫描,然后作为基础组件提供给各个部门。一般的公司往往也会同意镜像的基础
版本,所以这个选择个人一般不用太多纠结。


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

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

相关文章

【数据结构 09】哈希

哈希算法&#xff1a;哈希也叫散列、映射&#xff0c;将任意长度的输入通过散列运算转化为固定长度的输出&#xff0c;该输出就是哈希值&#xff08;散列值&#xff09;。 哈希映射是一种压缩映射&#xff0c;通常情况下&#xff0c;散列值的空间远小于输入值的空间。 哈希运…

正则表达式 与文本三剑客(sed grep awk)

一&#xff0c;正则表达式 &#xff08;一&#xff09;正则表达式相关定义 1&#xff0c;正则表达式含义 REGEXP&#xff1a; Regular Expressions&#xff0c;由一类特殊字符及文本字符所编写的模式&#xff0c;其中有些字符&#xff08;元字符&#xff09;不表示字符字面意…

编程实例分享,眼镜店电脑系统软件,配件验光管理顾客信息记录查询系统软件教程

编程实例分享&#xff0c;眼镜店电脑系统软件&#xff0c;配件验光管理顾客信息记录查询系统软件教程 一、前言 以下教程以 佳易王眼镜店顾客档案管理系统软件V16.0为例说明 如上图&#xff0c; 点击顾客档案&#xff0c;在这里可以对顾客档案信息记录保存查询&#xff0c;…

XUbuntu22.04之如何创建、切换多个工作区(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

远程手机搭建Termux环境,并通过ssh连接Termux

背景 Termux只能通过鼠标点击&#xff0c;无法使用电脑键盘&#xff0c;输入速度很慢&#xff0c;你想通过ssh 连接Termux&#xff0c;获得友好体验搞了个云手机&#xff0c;想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…

红外模块详解

和红外有关的模块有很多&#xff0c;比如红外循迹&#xff0c;红外感应&#xff0c;红外发射&#xff0c;红外接收&#xff0c;红外对射&#xff0c;红外编解码等等。 今天我们要介绍的是红外编解码模块&#xff0c;它最常见的应用就是我们家里的电视、空调&#xff0c;当我们…

Java语法学习线程基础

Java语法学习线程基础 大纲 概念创建线程线程终止常用方法用户线程和守护线程线程的七大状态线程的同步互斥锁线程死锁释放锁 具体案例 1.概念 2. 创建线程 第一种&#xff1a; class Cat extends Thread {int time 0;Overridepublic void run() {while (true) {System.o…

HttpRunner自动化测试工具之获取响应数据extract提取值到变量

获取响应数据 extract: 提取 注&#xff1a;extract 应与request保持同一层级 1、响应行&#xff0c;响应头&#xff1b;通过 extract 提取响应的数据并存储到变量中&#xff0c;如下图&#xff1a; 注&#xff1a;变量名的前面要有 - # 获取响应数据: 响应行&#xff08;…

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

在微服务项目迭代的过程中&#xff0c;不可避免需要上线&#xff1b;上线对应着部署&#xff0c;或者升级部署&#xff1b;部署对应着修改,修改则意味着风险。 传统的部署都需要先停止旧系统&#xff0c;然后部署新系统&#xff0c;之后需要对新系统进行全面的功能测试&#xf…

NAS系统折腾记 – Emby搭建家庭多媒体服务器

Emby简介 Emby是一款优秀的媒体服务器软件&#xff0c;致力于为用户提供丰富的多媒体体验。通过Emby&#xff0c;您可以方便地在家庭内的各种设备上观看您喜爱的电影、电视剧和其他视频内容。而且&#xff0c;Emby还具备强大的媒体管理功能&#xff0c;让您的影视资源井然有序…

设置Nginx进程最大可打开文件数

打开nginx.conf主配置文件。您需要配合worker_rlimit_nofile属性。如下&#xff1a; user root root; worker_processes 4; worker_rlimit_nofile 65535;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid; …

26条prompt规则应用于大模型

1、引入动机 llm大模型在回答一些问题上表现出了惊人的能力&#xff0c;例如数学逻辑推理&#xff0c;代码生成&#xff0c;问题答复等。提词工程是和大预言模型交流的一门艺术。 大模型的返回结合和用户的指令和输入直接相关prompts是用户和大模型沟通的一种编码方式 一般地…

逆向基础-破解密码

1.通过study PE查看.exe程序的位数 打开 x32dbg 从暂停到运行程序 原理&#xff1a;软件算出的密码与用户输入的密码作比较 破解流程&#xff1a;查信息 --> 找内存关键数据 --> 测试

物流平台架构设计与实践

随着电商行业的迅猛发展&#xff0c;物流行业也得到了极大的发展。从最初的传统物流到现在的智慧物流&#xff0c;物流技术和模式也在不断的更新与升级。物流平台作为连接电商和物流的重要媒介&#xff0c;其架构设计和实践显得尤为重要。 一、物流平台架构设计 1. 前端架构设…

寒假 day1

1、请简述栈区和堆区的区别? 2、有一个整形数组:int arr[](数组的值由外部输入决定)&#xff0c;一个整型变量: x(也 由外部输入决定)。要求: 1)删除数组中与x的值相等的元素 2)不得创建新的数组 3)最多只允许使用单层循环 4)无需考虑超出新数组长度后面的元素&#xff0c;所以…

【FFmpeg】ffplay 命令行参数 ① ( 设置播放分辨率 | 禁用 音频 / 视频 / 字幕 选项 )

文章目录 一、ffplay 命令行参数 - 设置播放分辨率1、强制设置通用播放分辨率 -x -y 参数2、命令行示例 - 正常播放视频3、命令行示例 - 强制设置播放分辨率4、设置 YUV 播放分辨率 -video_size 和 像素设置 -pixel_format5、全屏播放 -fs 参数 二、ffplay 命令行参数 - 禁用 音…

vue-cli项目运行流程介绍

一、前言 ​ 本文介绍 vue-cli搭建的项目运行流程&#xff0c;基于已经搭建好的基础项目。关于 vue-cli 构建项目的详细流程&#xff0c;可参考博文&#xff1a;使用vue脚手架构建项目 二、main.js 项目运行 会加载入口文件 main.js /* html文件中&#xff0c;通过script …

深入学习《大学计算机》系列之第1章 1.6节——你真的了解计算机存储器吗

一.欢迎来到我的酒馆 第1章 1.6节&#xff0c;你真的了解计算机存储器吗。 目录 一.欢迎来到我的酒馆二.计算机存储器2.1 计算机存储器简介2.2 计算机存储器发展史2.3 计算机存储器发展史总结 三.计算机存储器分类3.1 主存储器3.2 内存3.3 缓存3.4 寄存器3.5 二级存储器3.6 存…

09. BI - 数据可视化,如何进行基本图形绘制

本文为 「茶桁的 AI 秘籍 - BI 篇 第 09 篇」 文章目录 EDA 作用可视化视图Python 进行可视化subplot Hi&#xff0c;你好。我是茶桁。 今天想给大家讲的是关于数据的可视化。在工作中很多时候我们不光要计算结果&#xff0c;还要把结果呈现出来&#xff0c;最好是一种图形化的…

微服务中间件 RabbitMq学习

1、为什么需要Mq 例如在用户注册业务中&#xff0c;用户注册成功后 需要发注册邮件和注册短信&#xff0c;传统的做法有两种 1.串行的方式&#xff1b;2.并行的方式 &#xff1b; 假设三个业务节点分别使用50ms&#xff0c;串行方式使用时间150ms&#xff0c;并行使用时间10…