Docker的镜像
目录
- 1. 镜像是什么??
- 2. 镜像命令详解
- 2.1 镜像命令清单
- 2.2 docker rmi命令
- 2.3 docker save命令
- 2.4 docker load命令
- 2.5 docker history命令
- 2.6 docker import命令
- 2.7 docker image prune命令
- 2.8 docker build命令
- 3. 镜像的操作
- 4. 离线迁移镜像
- 5. 镜像存储的压缩与共享
1. 镜像是什么??
(1)镜像的解析如下:
- Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。
- 我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器。
- image 里面是一层层文件系统 Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。
- 每一层文件系统我们叫做一层 layer,联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able),但是 docker镜像中每一层文件系统都是只读的。
- 构建镜像的时候,从一个最基本的操作系统开始,每个构建的操作都相当于做一层的修改,增加了一层文件系统。一层层往上叠加,上层的修改会覆盖底层该位置的可见性,这也很容易理解,就像上层把底层遮住了一样。当你使用的时候,你只会看到一个完全的整体,你不知道里面有几层,也不清楚每一层所做的修改是什么。
(2)生活案例来理解镜像:
- 镜像相当于我们 java 或者 C++中的类,相当于一个模板,可以很方便的构建出来不同的对象。
(3)生活案例来理解镜像的分层:
(4)为什么需要镜像:
- 在部署应用时,通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐,需要配置和给中修改等操作,非常费劲。
- 然而, Docker 镜像就是为了解决这个小小的打包功能,突然一夜之间成名。那么,你可能说 Docker 镜像就是个压缩包,是的,你猜对了,它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题?很简单,它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构,这样的压缩包是跟你本地和测试环境用的操作系统一摸一样。
- docker 最大的贡献就是定义了容器镜像的分层的存储格式, docker 镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。
- docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,可以很方便的将其用于个人用途或与其他 Docker 用户公开共享。
2. 镜像命令详解
2.1 镜像命令清单
(1)整体命令如下:
命令 | 别名 | 功能 |
---|---|---|
docker images | docker image ls/docker image list | 列出本地镜像 |
docker tag | docker image tag | 给镜像打标签,可用于推送镜像仓库 |
docker pull | docker image pull | 从镜像仓库拉取镜像,和镜像仓库命令相同,也可以归类为镜像操作命令 |
docker push | docker image push | 推送镜像到仓库。和镜像仓库命令相同,也可以归类为镜像操作 |
docker rmi | docker image rm/ docker image remove | 删除本地镜像 |
docker build | docker image build | 通过 dockerfile制作镜像 |
docker save | docker image save | 将指定镜像保存成 tar 归档文件 |
docker load | docker image load | 导入使用docker save 命令导出的镜像 |
docker image inspect | 查看镜像详细信息 | |
docker history | docker image history | 查看镜像历史 |
docker import | docker image import | 从归档文件docker export中创建镜像。 |
docker image prune | 删除不使用的镜像 |
(2)命令docker images、docker image inspect、docker tag、docker pull、docker push见博客《Docker的镜像仓库》。本文就不在介绍了。
2.2 docker rmi命令
(1)功能:
- 删除镜像。
(2)语法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
(3)别名:
docker image rm, docker image remove
(4)关键参数:
- -f:强制删除;
- –no-prune:不移除该镜像的过程镜像,默认移除;
(5)样例:
root@139-159-150-152:/data/var/lib/docker/overlay2# docker rmi
maxhou/mybusybox:v0.1
Untagged: maxhou/mybusybox:v0.1
Untagged: maxhou/mybusybox@sha256:2c8ed5408179ff4f53242a4bdd2706110ce000be239fe37a61be9c52f704c437
2.3 docker save命令
(1)功能:
- 将指定镜像保存成 tar 归档文件。
(2)语法:
docker save [OPTIONS] IMAGE [IMAGE...]
(3)别名:
docker image save
(4)关键参数:
- -o:输出到的文件。
(5)样例:
root@139-159-150-152:/data/myworkdir# docker save -o
mynginx_1.22.1.tar nginx:1.22.1
root@139-159-150-152:/data/myworkdir# ll
total 142756
drwxr-xr-x 2 root root 4096 Mar 13 15:05 ./
drwx--x--x 5 root root 4096 Mar 13 15:03 ../
-rw------- 1 root root 146172416 Mar 13 15:05 mynginx_1.22.1.tar
2.4 docker load命令
(1)功能:
- 导入使用 docker save 命令导出的镜像。
(2)语法:
docker load [OPTIONS]
(3)别名:
docker image load
(4)关键参数:
- –input , -i:指定导入的文件,代替 STDIN。
- –quiet , -q:精简输出信息。
(5)样例:
root@139-159-150-152:/data/myworkdir# docker load -i
mynginx_1.22.1.tar
Loaded image: nginx:1.22.1
2.5 docker history命令
(1)功能:
- 显示镜像历史。
(2)语法:
docker history [OPTIONS] IMAGE
(3)别名:
docker image history
(4)关键参数:
- -H , --human:大小和日期采用人容易读的格式展现
- –no-trunc:显示全部信息,不要隔断;
- -q, --quiet:只显示镜像 id 信息;
(5)样例:
root@139-159-150-152:/data/myworkdir# docker history nginx:1.21.1
IMAGE CREATED CREATED BYSIZE COMMENT
822b7ec2aaf2 18 months ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 18 months ago /bin/sh -c #(nop) STOPSIGNALSIGQUIT 0B
<missing> 18 months ago /bin/sh -c #(nop) EXPOSE 800B
<missing> 18 months ago /bin/sh -c #(nop) ENTRYPOINT
["/docker-entr… 0B
<missing> 18 months ago /bin/sh -c #(nop) COPY file:09a214a3e07c919a… 4.61kB
<missing> 18 months ago /bin/sh -c #(nop) COPY file:0fd5fca330dcd6a7… 1.04kB
<missing> 18 months ago /bin/sh -c #(nop) COPY file:0b866ff3fc1ef5b0… 1.96kB
<missing> 18 months ago /bin/sh -c #(nop) COPY file:65504f71f5855ca0… 1.2kB
<missing> 18 months ago /bin/sh -c set -x && addgroup --system -… 63.9MB
<missing> 18 months ago /bin/sh -c #(nop) ENVPKG_RELEASE=1~buster 0B
<missing> 18 months ago /bin/sh -c #(nop) ENVNJS_VERSION=0.6.1 0B
<missing> 18 months ago /bin/sh -c #(nop) ENVNGINX_VERSION=1.21.1 0B
<missing> 18 months ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 18 months ago /bin/sh -c #(nop) CMD ["bash"]0B
<missing> 18 months ago /bin/sh -c #(nop) ADD
file:4ff85d9f6aa246746… 69.3MB
2.6 docker import命令
(1)功能:
- 从归档文件中创建镜像。
(2)语法:
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
(3)别名:
docker image import
(4)关键参数:
- -c:应用 docker 指令创建镜像;
- -m:提交时的说明文字;
(5)样例:
docker import my_ubuntu_v3.tar maxhou/ubuntu:v4
2.7 docker image prune命令
(1)功能:
- 删除不使用的镜像。
(2)语法:
docker image prune [OPTIONS]
(3)关键参数:
- -a , --all:删除全部不使用的镜像;
- –filter filter:指定过滤条件;
- -f, --force:不提示是否删除;
(4)样例:
docker image prune
2.8 docker build命令
(1)功能:
- docker build 命令用于使用 Dockerfile 创建镜像。
(2)语法:
docker build [OPTIONS] PATH | URL | -
(3)关键参数:
- –build-arg=[]:设置镜像创建时的变量;
- -f:设指定要使用的 Dockerfile 路径;
- –label=[]:设设置镜像使用的元数据;
- –no-cache:设创建镜像的过程不使用缓存;
- –pull:设尝试去更新镜像的新版本;
- –quiet, -q:设安静模式,成功后只输出镜像 ID;
- –tag, -t:设镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
- –network:设默认 default。在构建期间设置 RUN 指令的网络模式
(4)样例:
docker build -t mynginx:v1 .
3. 镜像的操作
(1)查找镜像:
[xiaomaker@xiaomaker-virtual-machine:docket]$ docker search busybox
(2)下载镜像:
[xiaomaker@xiaomaker-virtual-machine:docket]$ docker pull busybox:1.36.0
(3)查看镜像及列表存储位置:
- 遍历查看镜像:
[xiaomaker@xiaomaker-virtual-machine:docket]$ docker images busybox
- 查看镜像仓库在本地的存储信息:
- 进入/var/lib/docker/目录查看 overlay2/repositories.json 文件,该文件记录已拉取镜像文件的信息。
- 查看本地镜像,可以发现和 repositories.json 文件记录的信息相同。
[xiaomaker@xiaomaker-virtual-machine:docker]$ cd /var/lib/docker/
- 镜像过滤:
docker image ls ubuntu #根据仓库名列出镜像
docker image ls ubuntu:18.04 #列出特定的某个镜像,也就是说指定仓库名和标签
docker image ls 还支持强大的过滤器参数 --filter,或者简写 -f。之前
我们已经看到了使用过滤器来列出虚悬镜像的用法,它还有更多的用法。查看某个位置之前的镜像 before,查看某个位置之后的镜像 since。
root@139-159-150-152:/data/myworkdir# docker image ls -f
before=ubuntu:18.04
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 b6f507652425 18 months ago 135MB
root@139-159-150-152:/data/myworkdir# docker image ls -f
since=ubuntu:18.04
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 e40cf56b4be3 3 weeks ago 72.8M
(4)查看镜像详情:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker image inspect busybox:1.36.0
(5)查看镜像分层:
- Docker history 可以查看分层:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker history busybox:1.36.0
- docker image inspect 可以查看详细的分层:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker image inspect busybox:1.36.0
- 一些镜像下载的时候也可以看到是一层一层下载的:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker pull nginx:1.21.1
1.21.1: Pulling from library/nginx
a330b6cecb98: Pull complete
5ef80e6f29b5: Pull complete
f699b0db74e3: Pull complete
0f701a34c55e: Pull complete
3229dce7b89c: Pull complete
ddb78cb2d047: Pull complete
Digest: sha256:a05b0cdd4fc1be3b224ba9662ebdf98fe44c09c0c9215b45f84344c12867002e
Status: Downloaded newer image for nginx:1.21.1 docker.io/library/nginx:1.21.1
(6)打标签:
docker tag busybox:1.36.0
ccr.ccs.tencentyun.com/maxhou6/busyboxbymaxhou:v3.0
(7)推送镜像:
docker pull ccr.ccs.tencentyun.com/maxhou6/busyboxbymaxhou:v3.0
(8)运行容器:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker run -it --rm
(9)镜像删除:可以根据 id 和名字删除,对于使用的镜像需要先清理容器再删除镜像
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker rmi busybox:1.36.0
4. 离线迁移镜像
(1)服务器 1 上镜像保存为 tar 文件,如操作系统为 ubuntu:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker save -o busybox.tar busybox
[xiaomaker@xiaomaker-virtual-machine:docker]$ ll
total 147740
drwxr-xr-x 2 root root 4096 Mar 13 16:28 ./
drwx--x--x 5 root root 4096 Mar 13 15:03 ../
-rw------- 1 root root 5101568 Mar 13 16:28 busybox.tar
-rw------- 1 root root 146172416 Mar 13 15:05 mynginx_1.22.1.tar
(2)scp 或者只用使用可视化工具拷贝镜像到第二台服务器上:
[xiaomaker@xiaomaker-virtual-machine:docker]$ scp busybox.tar
root@43.138.218.166:/data/maxhou
The authenticity of host '43.138.218.166 (43.138.218.166)' can't
be established.
ECDSA key fingerprint is
SHA256:ai8KwGyM5W/iocUP8O00OMX7hriCD3ajd3wHVvdazTs.
Are you sure you want to continue connecting
(yes/no/[fingerprint])? yes
Warning: Permanently added '43.138.218.166' (ECDSA) to the list of
known hosts.
root@43.138.218.166's password:
busybox.tar
(3)从 tar 中恢复镜像:
[root@VM-8-12-centos maxhou]# docker load -i busybox.tar
baacf561cfff: Loading layer
[==================================================>]
5.092MB/5.092MB
Loaded image: busybox:1.36.0
[root@VM-8-12-centos maxhou]# docker images
REPOSITORY TAG IMAGE ID CREATED
SIZE
busybox 1.36.0 7cfbbec8963d 3 weeks ago
4.86MB
rabbitmq 3.9-management ef80153df89f 2 months ago
269MB
ubuntu 1.0 955bd67a1123 3 months ago
344MB
myubuntu 1.0 1de21ccbd1a1 3 months ago
344MB
busybox latest 827365c7baf1 3 months ago
4.86MB
redis 7.0 0256c63af7db 3 months ago
117MB
nginx latest 1403e55ab369 3 months ago
142MB
tomcat latest 1dad8c5497f9 4 months ago
474MB
ubuntu latest 6b7dfa7e8fdb 4 months ago
77.8MB
mysql 5.7 d410f4167eea 4 months ago
495MB
maxhou/stress-ng latest ceec0900d3e1 2 years ago
7.34MB
lmmdock/fork-bomb latest fb27e67e6244 2 years ago
934MB
cuilc/mycat latest 2d46917d5584 6 years ago
846MB
(4)执行 docker run 检查镜像是否可以正常运行:
[root@VM-8-12-centos maxhou]# docker run -it --rm busybox:1.36.0
sh
/ #
/ # ls /
bin dev etc home lib lib64 proc root sys tmp
usr var
/ # exit
5. 镜像存储的压缩与共享
(1)拉取 nginx 镜像,如果本地没有,镜像是从仓库拉取,如果有会提示镜像已经存在,并且是最新的。
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker pull nginx:1.21.1
1.21.1: Pulling from library/nginx
Digest:
sha256:a05b0cdd4fc1be3b224ba9662ebdf98fe44c09c0c9215b45f84344c1267002e
Status: Image is up to date for nginx:1.21.1
docker.io/library/nginx:1.21.1
(2)Docker images 查看本地镜像,可以看到该镜像为 142Mb:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker images
REPOSITORY TAG IMAGE
ID CREATED SIZE
ccr.ccs.tencentyun.com/maxhou/mybusybox v0.2
bab98d58e29e 6 days ago 4.86MB
busybox latest
bab98d58e29e 6 days ago 4.86MB
maxhou/mybusybox v0.1
bab98d58e29e 6 days ago 4.86MB
registry.cn-hangzhou.aliyuncs.com/maxhou/busybox v0.3
bab98d58e29e 6 days ago 4.86MB
grafana/grafana latest
944e84f25bc7 10 days ago 329MB
nginx 1.22.1
8c9eabeac475 11 days ago 142MB
nginx 1.23.3
904b8cb13b93 11 days ago 142MB
ubuntu 22.04
74f2314a03de 11 days ago 77.8MB
hello-world latest
feb5d9fea6a5 17 months ago 13.3kB
nginx 1.21.1
822b7ec2aaf2 18 months ago 133MB
(3)从上面看到 nginx 为 1.21.1 的大小是 140 多 MB,但是我们从 docker hub 上查看可以看到镜像是 50 多 MB,说明发生了压缩,因为仓库到本地需要走网络,所以文件越小越好:
(4)把一个镜像打多个 tag,然后同时推送仓库,可以看到是说层已经存在,不会重复存储:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker tag nginx:1.22.1
maxhou/mybitnginx:1.22.1
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker tag nginx:1.22.1
maxhou/mybitnginx:1.22.2
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker tag nginx:1.22.1
maxhou/mybitnginx:1.22.3
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker tag nginx:1.22.1
maxhou/mybitnginx:1.22.4
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker push maxhou/mybitnginx -a
(5)添加一个新的镜像到我们的仓库的时候,如果 docker hub 发现已经有了是 mount的,不是从本地推上去的:
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker tag nginx:1.16.1
maxhou/mybitnginx:1.16.1
[xiaomaker@xiaomaker-virtual-machine:docker]$ docker push
maxhou/mybitnginx:1.16.1
The push refers to repository [docker.io/maxhou/mybitnginx]
c23548ea0b99: Mounted from library/nginx
82068c842707: Mounted from library/nginx
c2adabaecedb: Mounted from library/nginx
1.16.1: digest:
sha256:2963fc49cc50883ba9af25f977a9997ff9af06b45c12d968b7985dc1e9254e4b size: 948
相关文章:
Docker的镜像
目录 1. 镜像是什么??2. 镜像命令详解2.1 镜像命令清单2.2 docker rmi命令2.3 docker save命令2.4 docker load命令2.5 docker history命令2.6 docker import命令2.7 docker image prune命令2.8 docker build命令 3. 镜像的操作4. 离线迁移镜像5. 镜像存…...
深度学习训练参数之学习率介绍
学习率 1. 什么是学习率 学习率是训练神经网络的重要超参数之一,它代表在每一次迭代中梯度向损失函数最优解移动的步长,通常用 η \eta η 表示。它的大小决定网络学习速度的快慢。在网络训练过程中,模型通过样本数据给出预测值࿰…...
Vue技术中参数传递:Props与事件的实践指南
在Vue.js中,组件间的参数传递是构建动态和交互式应用的核心。本文将深入探讨如何通过Props和事件($emit)在Vue组件间进行参数传递,并提供代码示例。 Props传递数据 Props是Vue中组件间传递数据的一种方式,它允许父组…...
刷题日志【4】
目录 1、猜数字大小 1、猜数字大小 题意有点抽象,我大概讲一下,就是在1——n里面会有一个目标数,我们通过猜数字的方式逼近这个数字,直到解出这个数,之前我们是用二分法求最快达到求解的问题,这道题多了每…...
IDEA对windows下的docker里面的Weblogic 进行远程调试(漏洞环境搭建)部署Vulhub漏洞环境
参考书籍:《Java代码审计》入门篇 人民邮电出版社 话不多说,上教程!!! 环境很重要!!!! 其他的环境不保证对 本机环境:java jdk 8 下载 选择 下载就行 然后 …...
【深度学习】Java DL4J基于多层感知机(MLP)构建公共交通优化模型
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探…...
医学分割数据集肾结石分割数据集labelme格式359张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):359 标注数量(json文件个数):359 标注类别数:1 标注类别名称:["kidney stone"] 每个类别标注的框数&…...
Ansible自动化运维(五) 运维实战
Ansible自动化运维这部分我将会分为五个部分来为大家讲解 (一)介绍、无密钥登录、安装部署、设置主机清单 (二)Ansible 中的 ad-hoc 模式 模块详解(15)个 (三)Playbook 模式详解 …...
ReactPress最佳实践—搭建导航网站实战
Github项目地址:https://github.com/fecommunity/easy-blog 欢迎Star。 近期,阮一峰在科技爱好者周刊第 325 期中推荐了一款开源工具——ReactPress,ReactPress一个基于 Next.js 的博客和 CMS 系统,可查看 demo站点。(…...
Dual-Write Problem 双写问题(微服务)
原文链接https://www.confluent.io/blog/dual-write-problem/ 双写问题发生于当两个外部系统必须以原子的方式更新时。 问题 说有人到银行存了一笔钱,触发 DepositFunds 命令,DepositFunds 命令被发送到Account microservice。 Account microservice需…...
文件转曲,限制PDF文件编辑的最佳方案!
随着数字化进程的推进,PDF文件凭借其多样化的功能和优越的兼容性已经被广泛使用,成为了现代文档交流和存储的重要工具,满足了不同用户和行业的需求。 虽然PDF格式文件的功能很多,常见的比如阅读、编辑、加密、转换、还可用于印刷…...
call,apply,bind 深入
显示绑定 我们通常会碰见丢失绑定的情况,例如系统函数setTimeOut function foo() { console.log( this.a ); } var obj { a: 2, foo: foo }; var a "oops, global"; // a是全局对象的属性 setTimeout( obj.foo, 100 ); // "oops, globalca…...
监测预警智能分析中心建设项目方案
随着科技的不断进步,地理信息与遥感技术在国家治理、环境保护、灾害预警等领域发挥着越来越重要的作用。监测预警智能分析中心的建设,旨在通过集成先进的遥感技术、地理信息系统(GIS)、大数据分析和人工智能(AI&#x…...
redis stream轻量级消息队列
redis 5.0 之后新推出了stream数据结构,可以实现一个轻量级的消息队列,下面通过自定义注解和springboot使用一下redis stream 1.自定义注解 Target(ElementType.METHOD) Retention(value RetentionPolicy.RUNTIME) public interface MsgStreamListener …...
ORACLE SQL思路: 多行数据有相同字段就合并成一条数据 分页展示
数据 分数表: 学号,科目名(A,B,C),分数 需求 分页列表展示, 如果一个学号的科目有相同的分数, 合并成一条数据,用 拼接 科目名 ORACLE SQL 实现 SELECT Z.*, SUBSTR(DECODE(f…...
UE5制作倒计时功能
设置画布和文本 文本绑定 格式化时间 转到事件图表,计算时间,时间结束后面的事件可以按自己需求写 进入关卡蓝图,添加倒计时UI...
若依-帝可得app后端
视频地址 https://www.bilibili.com/video/BV1pf421B71v?t=510.1 APP后端技术栈 架构解析 验证码功能 开发环境使用改的是固定的验证码 12345正式环境使用的是 阿里云的短信方案@Override public void sendSms(String mobile) {// String code = RandomUtil.randomNumbers(5);…...
Vulnstack红日安全内网域渗透靶场2实战攻略
一:环境搭建 新增的网卡VMnet2,ip调成10段。 PC配置如下: DC在该环境中充当是域控。DC配置如下 : WEB配置:需要两块网卡,相当于网关服务器。 作者把外网网段都写成了192.168.111.1/24,我们可以…...
苹果电脑可以安装windows操作系统吗?Mac OS X/OS X/macOS傻傻分不清?macOS系统的Java支持?什么是macOS的五大API法王?
苹果电脑可以安装windows操作系统吗? 先抛开虚拟机安装,苹果电脑可以安装Windows操作系统。苹果公司提供了一个名为Boot Camp的软件,它允许用户在Mac电脑上安装Windows操作系统。通过Boot Camp,用户可以在启动电脑时选择是要进入macOS还是Wi…...
benchANT (Time Series: Devops) 榜单数据解读
近日,国际权威数据库性能测试榜单 benchANT 更新了 Time Series: Devops(时序数据库)场景排名,KaiwuDB 数据库在 xsmall 和 small 两类规格下的时序数据写入吞吐、查询吞吐、查询延迟、成本效益等多项指标刷新榜单原有数据纪录 &a…...
React useEffect使用
useEffect依赖 是reac hook的函数 useEffect作用:不是由事件引起,而是由渲染本身引起的操作,比如发起请求,更改DOM 不发生任何的用户事件,组件渲染完毕之后就需要和服务器要数据,整个过程中属于‘只需要…...
Python随机抽取Excel数据并在处理后整合为一个文件
本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件,随机从其中选取一部分数据,并将全部文件中随机获取的数据合并为一个新的Excel表格文件的方法。 首先,我们来明确一下本文的具体需求。…...
Unix 和 Windows 的有趣比较
Unix 和 Windows NT 比较 来源于这两本书,把两本书对照来读,发现很多有意思的地方: 《Unix 传奇》 https://book.douban.com/subject/35292726/ 《观止 微软创建NT和未来的夺命狂奔 》 Showstopper!: The Breakneck Race to Create Windows…...
解决Android Studio Unexpected tokens (use ; to separate expressions on the same line)
[TOC](Unexpected tokens (use ; to separate expressions on the same line)) 问题描述:Unexpected tokens (use ; to separate expressions on the same line) 原因:Android Studio 更新到最新的版本之后,gradle工程目录结构发生改变 问…...
【Office】Office实现shift+鼠标滚轮左右滑动
Office实现shift鼠标滚轮左右滑动 windows系统安装office之后发现,使用shift鼠标滚轮不能够实现左右滑动,我记得以前的office好像是可以的,然后在网上找了一下,找到了一个插件可以实现这个功能 OfficeScroll插件 下载地址&…...
1.C语言 typedef的使用方法
描述作用 1.typedef主要通途给类型起一个别名,比如给int类型取个中文名字 zhengxingint。 2.typedef可以简化struct关键字 3.typedef可以区分数据类型 4.typedef提高代码的平台可移植性。 举例 取别名 #include "stdio.h" #include "string.h&q…...
人工智能原理实验四:智能算法与机器学习
一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程,通过实验,帮助学生更好地掌握人工智能相关概念、技术、原理、应用等;通过实验提高学生编写实验报告、总结实验结果的能力;使学生对智能程序、智能算法等…...
redis 架构详解
Redis架构详解可以从以下几个方面进行阐述: 一、部署架构 Redis有多种部署架构,适用于不同的应用场景和需求,主要包括以下几种: 单机模式(Standalone Mode) 特点:部署简单,配置方便…...
shell脚本自动发布Java应用
单体项目或定制化小应用,频繁发布会有些麻烦,用脚本实现git提交完代码自动发布,并完成jar包备份 1.前提条件:linux安装了JDK、Maven、Git 安装参考链接: jdk安装 https://blog.csdn.net/weixin_44904239/article/de…...
微信小程序调用腾讯地图-并解读API文档 JavaScript SDK和 WebService API
搜索:腾讯位置服务 找到API文档: 入门中第一步:申请开发者密钥key 前往控制台: 创建应用并获取key: 设置key的时候,还需要小程序的APPID。所以要前往微信公众平台中获取小程序的APPID: 限制要求:…...
go build command
文章目录 1.简介2.格式3.选项4.示例5.小结参考文献 1.简介 go build 是 Go 语言工具链中的一个命令,它用于编译 Go 源代码并生成可执行文件。 2.格式 go build [-o output] [build flags] [packages]可选的 -o 选项强制 build 将生成的可执行文件或对象写入指定的…...
前端面试题目 (Node.JS-Express框架)[二]
在 Express 中如何使用 Passport.js 进行身份认证? Passport.js 是一个 Node.js 的身份验证中间件,它可以很容易地与 Express 集成。下面是一个简单的示例,展示了如何使用 Passport.js 进行基本的身份认证。 安装依赖 npm install express passport …...
云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证
近日,云和恩墨(北京)信息技术有限公司(以下简称:云和恩墨)的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司(以下简称:华为云)的 GaussDB 数据库完成了兼容性互…...
go-zero(十三)使用MapReduce并发
go zero 使用MapReduce并发 一、MapReduce 介绍 MapReduce 是一种用于并行计算的编程模型,特别适合在大规模数据处理场景中简化逻辑代码。 官方文档: https://go-zero.dev/docs/components/mr 1. MapReduce 的核心概念 在 MapReduce 中,主…...
【鸿蒙实战开发】数据的下拉刷新与上拉加载
本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载,在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧! List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…...
SQL中的替换函数replace() 使用
这条 SQL 语句的作用是将 tool_tool 表中所有 link 字段包含 https://www.xxspvip.cn 的记录中的 https://www.xxspvip.cn 替换为 http://192.168.1.1。具体解释如下: SQL 语句分解 UPDATE tool_toolSET link REPLACE(link, https://www.xxspvip.cn, http://192.…...
算法(三)——贪心算法
文章目录 定义基本原理基本思路优缺点优点缺点 经典案例及解析找零问题问题描述贪心思路算法解析java代码示例 活动选择问题问题描述贪心思路算法解析java代码示例 车辆路径问题问题描述贪心思路算法分析java代码示例 定义 贪心算法是指在求解问题时,总是做出在当前…...
【Iot】前端串口serialport.js串口通信库快速入门(附经验总结)
前端串口serialport.js串口通信库快速入门(附经验总结) 一、serialport简介1.1 安装1.2 基本用法1.3 完整示例代码二、问题2.1 数据包被拆分(已解决)2.2 串口返回的多种数据,如何区分类别(待解决)公司项目需要开发一个windows客户端,提供串口modbusRTU数据读取、处理、显…...
【学一点儿前端】本地或jenkins打包报错:getaddrinfo ENOTFOUND registry.nlark.com
问题 今天jenkins打包一个项目,发现报错了 error An unexpected error occurred: “https://registry.nlark.com/xxxxxxxxxx.tgz: getaddrinfo ENOTFOUND registry.nlark.com”. 先写解决方案 把yarn.lock文件里面的registry.nlark.com替换为registry.npmmirror.…...
STEM真题 第五题 比 n 小的最大数
题目描述 给定一个正整数 n,请将 n 中的每位数字重新排列并组成一个新数,要求新数的值要小于 n,请找出所有 符合要求的新数中最大的那个正整数,如果不存在这样的正整数,则输出 -1。例 1:n 312࿰…...
Mysql基础操作(1)
目录 简介 1. 数据库的创建与删除 1.1 创建数据库 1.2 删除数据库 2. 表的创建与删除 2.1 创建表 2.2 删除表 3. 数据插入 4. 数据查询 4.1 基本查询 4.2 条件查询 4.3 多条件查询 4.4 排序查询 4.5 分页查询 5. 数据更新 6. 数据删除 7. 总结 简介 MySQL 是一…...
React Image Crop——在React应用中轻松实现图片裁剪功能
React Image Crop是一个用于在React应用程序中裁剪和调整图像的库。它提供了一个简单而强大的界面,允许用户选择和调整裁剪区域,并生成裁剪后的图像。 什么是React Image Crop? React Image Crop是一个开源的React组件,用于在浏览…...
CQRS Design Pattern in Microservices - CQRS模式
原文链接 CQRS Design Pattern in Microservices - GeeksforGeeks 【文章看起来像是AI写的。。。 😂😂😂】 简介 实现步骤 1,识别有界上下文:(Identify Bounded Contexts:) 2,命…...
Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:药品进销存信息管理系统(前后端源码 + 数据库 sql 脚本)
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 供应商管理功能 5.0 药品管理功能 6.0 采购记录管理功能 7.0 销售记录管理功能 8.0 退货记录管理功能…...
主流webgl 引擎 glsl 如何升级webgpu为 wgsl?
0、背景 SPIR-V、GLSL 和 WGSL 是三种不同的着色语言或中间表示形式,它们在现代图形编程中的关系如下: 1、playcanvas 方案: glsl 转 SPIR-V 转 wgsl 调研版本: "version": "2.4.0-dev"webgpu-shader.js transpile(src, shader…...
SSL证书部署(linux-nginx)
一、SSL证书的作用 HTTP协议无法加密数据,数据传输可能产生泄露、篡改或钓鱼攻击等问题。 SSL证书部署到Web服务器后,可帮助Web服务器和网站间建立可信的HTTPS协议加密链接,为网站安全加锁,保证数据安全传输。 二、前提条件 1.已通过数字证书管理服务控制台签发证书。 …...
SpringBoot3.3.0集成Knife4j4.5.0实战
原SpringBoot2.7.18升级至3.3.0之后,Knife4j进行同步升级(Spring Boot 3 只支持OpenAPI3规范),从原3.0.3(knife4j-spring-boot-starter)版本升级至4.5.0(knife4j-openapi3-jakarta-spring-boot-starter),以下是升级过程与注意事项等 版本信息…...
C# 的反射窗体的使用
C# 的反射窗体的使用 using System; using System.Reflection; using System.Windows.Forms;public class ReflectedFormFactory {public static Form CreateForm(string formName, string assemblyName){// 加载程序集Assembly assembly Assembly.Load(assemblyName);// 获取…...
大模型呼出机器人能够解决哪些问题?
大模型呼出机器人能够解决哪些问题? 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 大模型呼出机器人作为现代科技在客户服务领域的创新应用,能够解决多个方面的问题,以下是…...
密码学——密码学概述、分类、加密技术(山东省大数据职称考试)
大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 密码学 大数据…...