当前位置: 首页 > article >正文

第二节 docker基础之---镜像构建及挂载

查看当前镜像:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@docker ~]#很明显docker是咱们新搭建的所以目前还没有镜像

1,搜索镜像:

[root@docker ~]# docker search centos

搜索镜像并过滤是官方的:

[root@docker ~]# docker search --filter 'is-official=true' centos

过滤星级镜像:

[root@docker ~]#例如过滤出大于10星级的镜像
[root@docker ~]# docker search --filter stars=10 centos

2,下载镜像:

[root@docker ~]# 例如下载centos7的镜像如果是版本6在冒号后面修改成6即可
[root@docker ~]# docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
[root@docker ~]#因为我前面已经部署了阿里云的镜像所以下载比较快,下载慢的话可以部署一下

下载好之后进行查看一下本地镜像:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   16 months ago   204MB
[root@docker ~]#已经显示了

3,修改镜像名和版本标签:

[root@docker ~]#例如把centos修改为mycentos版本7修改成1
[root@docker ~]# docker tag centos:7 mycentos:1

进行查看:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   16 months ago   204MB
mycentos     1         eeb6ee3f44bd   16 months ago   204MB
[root@docker ~]# 可以看到已经多出一条修改成功了但是id没变可以理解为重命名

4,删除镜像:

[root@docker ~]# docker rmi eeb6ee3f44bd
Error response from daemon: conflict: unable to delete eeb6ee3f44bd (must be forced) - image is referenced in multiple repositories
[root@docker ~]#像上述那样重命名一个有两个一样的id直接删除id会导致系统不知道要删除哪一个

可以直接指定名称删除:

[root@docker ~]# docker rmi centos:7
Untagged: centos:7
Untagged: centos@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
[root@docker ~]#

进行查看:(已经删除成功)

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mycentos     1         eeb6ee3f44bd   16 months ago   204MB

5,配置阿里云镜像加速:

进入阿里云官网:

https://cn.aliyun.com/

6,容器的构建基本操作

-i以交互模式去运行这个容器
-t表示为尾数表示一个输入终端
通常-i和t一起组合运行
[root@docker ~]# docker run -it eeb6ee3f44bd
[root@4f7f394c7b56 /]#
[root@4f7f394c7b56 /]#
[root@4f7f394c7b56 /]# exit
exit
[root@docker ~]#
查看运行的容器:
[root@docker ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]#无容器运行[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
4f7f394c7b56   eeb6ee3f44bd   "/bin/bash"   2 minutes ago   Exited (0) 2 minutes ago             pensive_chatterjee
[root@docker ~]#加上-a表示所有不管正在运行还是没有运行的都显示出来
启动运行的容器:
[root@docker ~]# docker run -itd centos:7
41e2126bc593bfd902080668294ef294301e81c3f2802518189983c1b6eacca4
[root@docker ~]#查看是否运行成功
[root@docker ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
41e2126bc593   centos:7   "/bin/bash"   34 seconds ago   Up 34 seconds             admiring_bohr
[root@docker ~]#运行成功#注意如果上述运行centos:7的时候不加:7的执行结果为会从镜像里面拉去最新的下载执行
停止运行的容器:
[root@docker ~]# docker stop 41e21     #可以不输入全部ID前四五位即可
41e21
[root@docker ~]# docker ps   #查看状态已经没有在运行
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]##注意(还可以在启动时设置一个名字停止运行时执行名字即可如下)
[root@docker ~]# docker run -itd --name=mycentos centos:7   名字设置为mycentos
fd4223709f41cd45d19817c69b8dbac4b887fdfc3a04da332a6fe4ab04973d01
[root@docker ~]# docker ps  查看是否运行(运行中)
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
fd4223709f41   centos:7   "/bin/bash"   11 seconds ago   Up 10 seconds             mycentos
[root@docker ~]# docker stop mycentos  使用命名关闭容器
mycentos
[root@docker ~]# docker ps 查看是否运行(关闭状态)
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker restart mycentos  对命名容器进行重启
mycentos
[root@docker ~]# docker ps   查看状态(启动成功运行中)
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
fd4223709f41   centos:7   "/bin/bash"   2 minutes ago   Up 7 seconds             mycentos
[root@docker ~]# docker ps -a   查看全部
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                       PORTS     NAMES
fd4223709f41   centos:7       "/bin/bash"   4 minutes ago    Up 2 minutes                           mycentos
41e2126bc593   centos:7       "/bin/bash"   13 minutes ago   Exited (137) 8 minutes ago             admiring_bohr
4f7f394c7b56   eeb6ee3f44bd   "/bin/bash"   18 minutes ago   Exited (0) 18 minutes ago              pensive_chatterjee
[root@docker ~]#
删除容器:
[root@docker ~]# docker rm 41e2126bc593 4f7f394c7b56  输入容器ID(可以多个)
41e2126bc593
4f7f394c7b56
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
fd4223709f41   centos:7   "/bin/bash"   9 minutes ago   Up 6 minutes             mycentos
[root@docker ~]#假如要删除正在运行的容器
[root@docker ~]# docker rm fd4223709f41  会出现报错
Error response from daemon: You cannot remove a running container fd4223709f41cd45d19817c69b8dbac4b887fdfc3a04da332a6fe4ab04973d01. Stop the container before attempting removal or force remove
[root@docker ~]#只需加上-f属性就可以进行强制删除
[root@docker ~]# docker rm -f fd4223709f41
fd4223709f41
[root@docker ~]# docker ps -a  查看(没有容器)
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]#
查看容器详情信息:
[root@docker ~]# docker run -itd --name=mycentos centos:7  启动容器命名为mycentos
47bf21e86920a03780e6916147f25b10e2f263101633fee30fbb0ee738b5846e
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
47bf21e86920   centos:7   "/bin/bash"   24 seconds ago   Up 23 seconds             mycentos
[root@docker ~]# docker inspect mycentos  查看详情信息
[{"Id": "47bf21e86920a03780e6916147f25b10e2f263101633fee30fbb0ee738b5846e","Created": "2023-02-03T07:12:35.675093246Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 11586,"ExitCode": 0,"Error": "","StartedAt": "2023-02-03T07:12:35.90377691Z",

进入容器:

[root@docker ~]# docker exec -it mycentos /bin/bash    后缀表示是以什么解释器进入
[root@47bf21e86920 /]# ps -ef  查看当前运行用户
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 07:12 pts/0    00:00:00 /bin/bash
root         15      0  0 07:16 pts/1    00:00:00 /bin/bash
root         29     15  0 07:17 pts/1    00:00:00 ps -ef
[root@47bf21e86920 /]# uname  基于linux
Linux
[root@47bf21e86920 /]# exit   退出
exit
[root@docker ~]#

同时停止运行多个容器:

[root@docker ~]# docker run -itd centos:7   启动一个
475d493ec77156d9576d017b1bc3919c957d21acefdbc331409a5250f5964298
[root@docker ~]# docker run -itd centos:7   启动两个
91b5ba8dfd78c35f674db12f228b5a6b597b228f1d7fd3902811ad88afb98a9e
[root@docker ~]# docker run -itd centos:7   启动三个
3b0d1f2fb104722c3002a3c1af57da7f36902a70915754954b4840b517a03290
[root@docker ~]# docker ps  进行查看
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
3b0d1f2fb104   centos:7   "/bin/bash"   7 seconds ago    Up 7 seconds              epic_hoover
91b5ba8dfd78   centos:7   "/bin/bash"   9 seconds ago    Up 8 seconds              lucid_carver
475d493ec771   centos:7   "/bin/bash"   11 seconds ago   Up 11 seconds             gallant_jackson
47bf21e86920   centos:7   "/bin/bash"   8 minutes ago    Up 8 minutes              mycentos
[root@docker ~]# docker stop $(docker ps -a -q)  停止正在运行的多个容器
3b0d1f2fb104
91b5ba8dfd78
475d493ec771
47bf21e86920
[root@docker ~]# docker ps  查看已停止
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker ps -a -q  查看ID
3b0d1f2fb104
91b5ba8dfd78
475d493ec771
47bf21e86920
[root@docker ~]# docker restart $(docker ps -a -q)  进行同时启动多个容器
3b0d1f2fb104
91b5ba8dfd78
475d493ec771
47bf21e86920
[root@docker ~]# docker ps  查看启动状态
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS         PORTS     NAMES
3b0d1f2fb104   centos:7   "/bin/bash"   3 minutes ago    Up 7 seconds             epic_hoover
91b5ba8dfd78   centos:7   "/bin/bash"   3 minutes ago    Up 7 seconds             lucid_carver
475d493ec771   centos:7   "/bin/bash"   3 minutes ago    Up 7 seconds             gallant_jackson
47bf21e86920   centos:7   "/bin/bash"   11 minutes ago   Up 7 seconds             mycentos
[root@docker ~]#

7,容器的文件复制与挂载

[root@docker ~]# docker run -itd --name=mycentos centos:7  启动命名为mycentos
e37b96055fd48a317cf995213671b4ebc6cac86c9215067d7839f284e972f41b
[root@docker ~]#
[root@docker ~]#
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
e37b96055fd4   centos:7   "/bin/bash"   5 seconds ago   Up 4 seconds             mycentos
本机传文件进容器:

[root@docker ~]# pwd  查看当前目录
/root
[root@docker ~]# cat > 123.txt  新建一个为123.txt的文档输入lyx内容
lyx
^C
[root@docker ~]# cat 123.txt  查看内容
lyx
[root@docker ~]#将本机root目录下123.txt文档复制到容器/home/目录下
[root@docker ~]# docker cp /root/123.txt mycentos:/home/
Successfully copied 2.048kB to mycentos:/home/
[root@docker ~]# docker exec -it mycentos /bin/bash 进入容器
[root@e37b96055fd4 /]# cd /home/  进入home目录下
[root@e37b96055fd4 home]# ls  查看文档
123.txt
[root@e37b96055fd4 home]# cat 123.txt  查看内容
lyx
[root@e37b96055fd4 home]#
容器传文件到本机:

[root@e37b96055fd4 home]# cat > 456.txt 创建456.txt文档输入内容456
456
^C
[root@e37b96055fd4 home]# cat 456.txt 查看内容
456
[root@e37b96055fd4 home]# exit  退出
[root@docker ~]# docker cp mycentos:/home/456.txt /root/  进行复制
Successfully copied 2.048kB to /root/
[root@docker ~]# ls  本机查看文档
123.txt  456.txt  anaconda-ks.cfg
[root@docker ~]# cat 456.txt  本机查看文档内容
456
[root@docker ~]#
挂载(本机挂载到容器)

[root@docker ~]# mkdir lyx  创建一个为lyx的文件夹
[root@docker ~]# docker run -itd -v /root/lyx/:/home centos:7  -v表示挂载
1b054a890054cd307069c992eef14f58f0d9bad39460f0d252ca46ff32dad837
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
1b054a890054   centos:7   "/bin/bash"   8 seconds ago    Up 7 seconds              admiring_euler
e37b96055fd4   centos:7   "/bin/bash"   19 minutes ago   Up 19 minutes             mycentos
[root@docker ~]# docker exec -it 1b054a890054 /bin/bash  进入容器
[root@1b054a890054 /]# cd /home  进入目录
[root@1b054a890054 home]# touch 666.txt  创建666.txt文档
[root@1b054a890054 home]# ls  查看
666.txt
[root@docker ~]# cd lyx/  本机进入lyx目录
[root@docker lyx]# ls  进行查看同步显示有666.txt文档
666.txt
[root@1b054a890054 home]# cat > 666.txt 容器书写两行6
666666666666
666666666666
^C
[root@1b054a890054 home]# cat 666.txt 进行查看
666666666666
666666666666
[root@1b054a890054 home]#
[root@docker lyx]# cat 666.txt  本机查看同步输出内容一致
666666666666
666666666666
创建数据卷容器

启动名为mycentos1的容器,要求此容器包含两上数据卷/opt/volume1和/opt/volume2。

[root@docker ~]# docker run -it -v /opt/volume1 -v /opt/volume2 --name mycentos1 centos:7 /bin/bash[root@74890abe0c22 /]# cd /opt/
[root@74890abe0c22 opt]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume1
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume2[root@74890abe0c22 opt]# 容器内数据卷目录vloume1和volume2已经创建

在宿主机上查看与数据卷对应的目录路径。

[root@docker ~]# docker inspect mycentos1|grep /var/lib/docker/volumes"Source": "/var/lib/docker/volumes/32c4edd9e4e960db559390298dce1da0743a52148a8181a74dc27db4d269c3d8/_data","Source": "/var/lib/docker/volumes/253422197ec80ea80c352df6d703e7f254a3d7764e05a0592cb8583ebcef707f/_data",
[root@docker ~]#从显示结果可以看到与数据卷对应的目录路径

创建mycentos2容器,挂载mycentos1容器种的数据卷。

[root@docker ~]# docker run -it --rm --volumes-from mycentos1 --name mycentos2 centos:7 /bin/bash[root@b63a62d07d5d /]# cd /opt/
[root@b63a62d07d5d opt]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume1
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume2[root@b63a62d07d5d opt]# 从显示结果上可以看到volume1和volume2数据卷都存在

相关文章:

第二节 docker基础之---镜像构建及挂载

查看当前镜像: [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [rootdocker ~]#很明显docker是咱们新搭建的所以目前还没有镜像 1,搜索镜像: [rootdocker ~]# docker search centos 搜索镜像并过滤是官…...

LLM学习笔记1——本地部署Meta-Llama-3.2-1B大模型

系列文章目录 参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1,验证pytorch版本时提示以下问题:错误2,验证pytorch版本时提示以下问题:错误3,有时候还会提示你有一些…...

RNN-day1-NLP基础

NLP基础 一、基本概念 自然语言处理:Natural Language Processing,主要目标是让计算机能够理解、解释和生成人类语言的数据。 1 基本概念 1.1NLP概念 语言:人类沟通的机构化系统,包括声音、书写符号、手势 自然语言:自然进化…...

常见string库中的函数(C语言超详细)

文章目录 strcspnstrcpystrncpystrcatstrncatstrcmpstrncmpstrchrstrrchrstrstrstrtokstrlenstrnlen strcspn 原型: size_t strcspn(const char *str1, const char *str2);功能: strcspn 会扫描 str1,并返回一个整数,表示 str1 中第一个匹配…...

AI安全最佳实践:AI应用开发安全评估矩阵(上)

生成式AI开发安全范围矩阵简介 生成式AI目前可以说是当下最热门的技术,吸引各大全球企业的关注,并在全球各行各业中带来浪潮般的编个。随时AI能力的飞跃,大语言模型LLM参数达到千亿级别,它和Transformer神经网络共同驱动了我们工…...

deepseek+kimi自动生成ppt

打开deepseek官网,输入详细的需求,让他生成个ppt 接着deepseek开始思考生成了 接着复制生成了的内容 打开kimi粘贴刚才deepseek生成的内容 可以一键生成啦,下载编辑使用吧...

# C指针地址CUP寄存器访问IO内存映射

C指针地址&CUP寄存器访问&IO内存映射 在裸机编程中,C语言可以像汇编语言一样直接操作芯片寄存器地址进行读取和写入,主要是由于以下几个原因: 1. 裸机环境下没有操作系统的干预 裸机编程是指直接在硬件上运行程序,没有…...

《薄世宁医学通识50讲》以医学通识为主题,涵盖了医学的多个方面,包括医学哲学、疾病认知、治疗过程、医患关系、公共卫生等

《薄世宁医学通识50讲》是一门由薄世宁医生主讲的医学通识课程,该课程旨在通过深入浅出的方式,向广大听众普及医学知识,提升公众对医学的认知和理解。 晓北斗推荐-薄世宁医学通识 以下是对该课程的详细介绍: 一、课程概述 《薄世…...

突破与重塑:逃离Java舒适区,借Go语言复刻Redis的自我突破和成长

文章目录 写在文章开头为什么想尝试用go复刻redis复刻redis的心路历程程序员对于舒适区的一点看法关于mini-redis的一些展望结语 写在文章开头 在程序员的技术生涯长河中,我们常常会在熟悉的领域中建立起自己的“舒适区”。于我而言,Java 就是这片承载…...

解决_ssl.so: cannot open shared object file: No such file or directory

背景: 我在CentOS8.2的操作系统里安装完python2.7后,源码安装了OpenSSL_1_1_1-stable 下载地址: https://github.com/openssl/openssl/tree/OpenSSL_1_1_1-stable 现象: 结果python导入ssl的时候报错了,报找不到_ssl.…...

优惠券平台(一):基于责任链模式创建优惠券模板

前景概要 系统的主要实现是优惠券的相关业务,所以对于用户管理的实现我们简单用拦截器在触发接口前创建一个单一用户。 // 用户属于非核心功能,这里先通过模拟的形式代替。后续如果需要后管展示,会重构该代码 UserInfoDTO userInfoDTO new…...

【Pytorch实战教程】PyTorch中的Dataset用法详解

PyTorch中的Dataset用法详解 在深度学习中,数据是模型训练的基石。PyTorch作为一个强大的深度学习框架,提供了丰富的工具来处理和加载数据。其中,Dataset类是PyTorch中用于处理数据的重要工具之一。本文将详细介绍Dataset的用法,帮助你更好地理解和使用它。 1. 什么是Dat…...

单例设计模式(Java)

(部分内容参考于菜鸟教程当中关于单例模式的说明) 什么是单例设计模式? 单例模式(Singleton Pattern)是一种常见的设计模式,其主要目的是确保一个类在系统中只有一个实例,并提供全局访问点。使…...

TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...

全文链接:https://tecdat.cn/?p39656 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等&am…...

09vue3实战-----引入element-plus组件库中的图标

09vue3实战-----引入element-plus组件库中的图标 1.安装2.引入3.优化 element-plus中的icon图标组件的使用和其他平台组件(如el-button按钮)是不一样的。 1.安装 npm install element-plus/icons-vue2.引入 在这我们只讲述最方便的一种引入方法------完整引入。这需要从elem…...

DeepSeek vs. ChatGPT:不同的诞生时间,对人工智能发展的不同影响

DeepSeek vs. ChatGPT:不同的诞生时间,对人工智能发展的不同影响 ChatGPT 和 DeepSeek 诞生于不同的时间节点,代表了人工智能不同阶段的发展方向。它们在技术、应用以及对AI发展趋势的影响方面各有侧重。 1. 诞生时间与背景 ChatGPT&#x…...

如何导入第三方sdk | 引入第三方jar 包

0. 背景1. 上传私有仓库2. 使用本地文件系统 0. 背景 对接一些第三方功能,会拿到第三方的sdk,也就是jar包,如何导入呢 1. 上传私有仓库 最好的方式就是将第三方jar包,上传到私有的仓库,这样直接正常在pom引用即可如果只…...

消费电子产品中的噪声对TPS54202的影响

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、概述 在白色家电领域,降压转换器的应用非常广泛,为了实现不同的功能就需要不同的电源轨。TPS542…...

[Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】

文章目录 [Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】引言使用渠道一:硅基流动 Chatbox AI【推荐】硅基流动 Chatbox AI的优势 使用渠道二:秘塔AI搜索秘塔AI搜索的优势 其它方案1. DeepSeek官网2. 纳…...

Websocket从原理到实战

引言 WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议,它使得客户端和服务器之间能够进行实时、双向的通信,既然是通信协议一定要从发展历史到协议内容到应用场景最后到实战全方位了解 发展历史 WebSocket 最初是为了解决 HTTP 协议在实时…...

学习Cherry Studio AI服务平台,主要是各种功能的实践(deepseek 1.5b和7b的模型+ChatGLM3模型)

Cherry Studio 介绍 Cherry Studio 是一个支持多模型服务的桌面客户端,为专业用户而打造,内置 30 多个行业的智能助手,帮助用户在多种场景下提升工作效率。 CherryStudio内置众多服务商 同时也支持其他兼容OpenAI/Anthropic等API格式的服务…...

【实用教程】在 Android Studio 中连接 MuMu 模拟器

MuMu 模拟器是一个非常流行的安卓模拟器,特别适合开发人员进行应用测试,我使用它的根本原因在于Android Studio自带的AVM实现是太难用了,但是Mumu模拟器启动以后不会自动被Android Studio识别到,但是其他模拟器都是能够正常被Andr…...

Linux 系统搭建 Python 开发环境全流程

Linux 系统搭建 Python 开发环境全流程 Python 解释器下载 Pycharm 对应版本解压安装包进入解压后的目录启动 Pycharm创建桌面快捷方式(可选)Pycharm 配置创建第一个目录第一个程序运行补充 Python 解释器 确保电脑里已经有了python解释器,没…...

VUE小技能:通过 Prop 向子组件传递数据

文章目录 引言Props 声明Prop 校验更改 prop引言 一个组件需要显式声明它所接受的 props,这样 Vue 才能知道外部传入的哪些是 props,哪些是透传 attribute。所有 prop 默认都是可选的,除非声明了 required: true。Props 声明 在使用 <script setup> 的单文件组件中,p…...

第16章 Single Thread Execution设计模式(Java高并发编程详解:多线程与系统设计)

简单来说&#xff0c; Single Thread Execution就是采用排他式的操作保证在同一时刻只能有一个线程访问共享资源。 1.机场过安检 1.1非线程安全 先模拟一个非线程安全的安检口类&#xff0c;旅客(线程)分别手持登机牌和身份证接受工作人员的检查&#xff0c;示例代码如所示。…...

AtCoder Beginner Contest 392(A-G)题解

A-B&#xff1a;略 C&#xff1a;可能题意比较绕&#xff0c;第i个答案就是穿着i这个号码&#xff08;也就是Q[j] i,这个时候j这个位置&#xff09;&#xff0c;看向的那个人的号码&#xff08;也就是P[j]) 代码&#xff1a; void solve() {int n;cin >> n;vi p(n 1…...

如何在macOS上安装Ollama

安装Ollama 安装Ollama的步骤相对简单&#xff0c;以下是基本的安装指南&#xff1a; 访问官方网站&#xff1a;打开浏览器&#xff0c;访问Ollama的官方网站。 下载安装包&#xff1a;根据你的操作系统&#xff0c;选择相应的安装包进行下载。 运行安装程序&#xff1a;下载完…...

【Redisson分布式锁】基于redisson的分布式锁

redisson分布式锁 maven文件&#xff1a; <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.15.3</version></dependency>实现代码&#xff1a; 分布式锁对象参…...

【区块链】区块链密码学基础

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1…...

NCV4275CDT50RKG 车规级LDO线性电压调节器芯片——专为新能源汽车设计的高可靠性电源解决方案

产品概述: NCV4275CDT50RKG 是一款符合 AEC-Q100 车规认证的高性能LDO&#xff08;低压差线性稳压器&#xff09;&#xff0c;专为新能源汽车的严苛工作环境设计。该芯片支持 输出调节为 5.0 V 或 3.3 V&#xff0c;最大输出电流达 450mA&#xff0c;具备超低静态电流&#xf…...