0.学习目标

◆ 初识 Docker

◆ Docker 命令

◆ Docker 容器数据卷

◆ Dockerfile

◆ Docker 应用部署

◆ Docker 服务编排

◆ Docker 私有仓库

◆ Docker相关概念

1. 初始docker

1.1 docker概念

我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TvsfbJWc-1598534360201)(images\1592741447865.png)]

  • Docker 是一个开源的应用容器引擎

  • 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上

  • 容器是完全使用沙箱机制,相互隔离

  • 容器性能开销极低

  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)

1.2 安装docker

Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS 7 安装

Docker。官网:https://www.docker.com

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v

1.3 docker架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WvKPV29H-1598534360203)(images\1592741985974.png)]

  • **镜像(Image):**Docker 镜像(Image),就相当于是 一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包 含了完整的一套 Ubuntu16.04 最小系统的 root 文件系 统。
  • 容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容 器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心, 用来保存镜像。

1.4 配置 Docker 镜像加速器

默认情况下,将来从docker hub(https://hub.docker.com/)上下载

docker镜像,太慢。一般都会配置镜像加速器:

• USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)

• 阿里云

• 网易云

• 腾讯云

本次我们使用阿里云镜像

1.登录阿里云网站(https://www.aliyun.com/)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JoN0ym6A-1598534360204)(images\1592742973168.png)]

  1. 查看文件/etc/docker/daemon.json
# 执行如下命令: 
cat /etc/docker/daemon.json

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZMLSe7fH-1598534360206)(images\1592743065182.png)]

2 .docker命令

2.1 进程相关命令

关于进程相关的命令

2.1.1 启动docker服务

systemctl start docker

2.1.2 停止docker服务

systemctl stop docker

2.1.3 重启docker服务

systemctl restart docker

2.1.4 查看docker服务状态

systemctl status docker

2.1.5 开机启动docker服务

systemctl enable docker

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SuGmnByc-1598534360207)(images\1592743261888.png)]

2.2 Docker 镜像相关命令

2.2.1 查看镜像

  • 查看本地所有的镜像
docker images
docker images –q # 查看所用镜像的id

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nfr5Hvtm-1598534360208)(images\1592743915716.png)]

REPOSITORY:镜像名称

TAG:镜像标签

IMAGE ID:镜像ID

CREATED:镜像的创建日期

SIZE:镜像大小

2.2.2 搜索镜像

  • 从网络中查找需要的镜像
docker search 镜像名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d20aoLUr-1598534360209)(images\1592744016271.png)]

NAME:镜像名称

DESCRIPTION:镜像描述

STARS:用户评价,反应一个镜像的受欢迎程度

OFFICIAL:是否官方

AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

2.2.3 拉取镜像

从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。 如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。

docker pull 镜像名称

2.2.4 删除镜像

删除本地镜像

docker rmi 镜像id # 删除指定本地镜像
docker rmi `docker images -q` # 删除所有本地镜像

关于docker更多命令, 大家可以菜鸟教程查看, 网址:

https://www.runoob.com/docker/docker-command-manual.html

2.3 容器相关的命令

2.3.1 查看容器

docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器,包括正在运行和停止的容器

2.3.2 创建并启动容器

docker run 参数

参数说明:

• -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。

• -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。

• -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。

• -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器

• --name:为创建的容器命名。

1)交互式容器

交互式方式创建并启动容器,启动完成后,直接进入当前容器。使用exit命令退出容器。需要注意的是以此种方式 启动容器,如果退出容器,则容器会进入停止状态。

# 先拉取一个镜像;这一步不是每次启动容器都要做的,而是因为前面我们删除了镜像,无镜像可用所以才再拉取一个 
docker pull centos:7 #创建并启动名称为 mycentos7 的交互式容器;下面指令中的镜像名称 centos:7 也可以使用镜像id 
docker run -it --name=mycentos7 centos:7 /bin/bash

2)守护式容器

创建一个守护式容器;如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称 不能重复):

#创建并启动守护式容器
docker run -di --name=mycentos2 centos:7#登录进入容器命令为:docker exec -it container_name (或者 container_id) /bin/bash(exit退出 时,容器不会停止)
docker exec -it mycentos2 /bin/bash

2.3.3 进入容器

docker exec 参数 # 退出容器,容器不会关闭
eg: 
docker exec -it mycentos2 /bin/bash

2.3.4 停止容器

docker stop 容器名称或者容器id

2.3.5 启动容器

docker start 容器名称或者容器id

2.3.6 删除容器

#删除指定容器
docker rm 容器名称或者容器id# 删除所有容器:
docker rm `docker ps -a -q`

注意:如果容器是运行状态则删除失败,需要停止容器才能删除

2.3. 7 查看容器信息

docker inspect 容器名称或者容器id

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DzSr7F6-1598534360210)(images\1592745823262.png)]

说明:容器之间在一个局域网内,linux宿主机器可以与容器进行通信;但是外部的物理机笔记本是不能与容器直接通信的,如果需要则需要通过宿主机器端口的代理。

3 . docker容器的数据卷

3.1 数据卷概念

思考:

• Docker 容器删除后,在容器中产生的数据也会随之销毁

• Docker 容器和外部机器可以直接交换文件吗?

• 容器之间想要进行数据交互?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nmys1Uey-1598534360211)(images\1592748818477.png)]

数据卷

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂载多个数据卷

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gm5YcpeN-1598534360212)(images\1592748888266.png)]

数据卷的作用

• 容器数据持久化

• 外部机器和容器间接通信

• 容器之间数据交换

3.2 配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷

docker run ... –v 宿主机目录(文件):容器内目录(文件) ...

注意事项:

  1. 目录必须是绝对路径

  2. 如果目录不存在,会自动创建

  3. 一个容器可以挂载多个数据卷

  4. 一个数据卷也可以被多个容器挂载

  5. 两个容器可以挂载同一个容器

在宿主机中实现与容器目录的挂载:

在c1容器中的root目录下就可以看到data_container文件夹:如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nkPEyDKM-1598534360213)(images\1592750980127.png)]

同时我们我们回到宿主机中,可以在data文件夹下创建一个文件itcast.txt ,可以发现在容器中也会生成itcast.txt文件:如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-llLxfRD0-1598534360213)(images\1592751613509.png)]

  1. 数据卷的持久化:

​ 当我们把c1容器删除后,宿主机中的数据卷依然存在。 所以当我们重新创建一个容器的同时依然可以挂载宿主机中的data文件夹,对应data里的数据依然同步到容器中。

  1. 一个容器可以挂载多个数据卷

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b9oLkLAa-1598534360214)(images\1592752027409.png)]

  1. 多个容器可以挂载同一个数据卷

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qit2lTc1-1598534360215)(images\1592749838266.png)]

分别创建两个容器,两个容器都挂载宿主机中data目录,当 修改c3容器的data目录c4会实现同步。

从而实现两个容器之间的交互。

3.3 配置数据卷容器

多容器进行数据交换

  1. 多个容器挂载同一个数据卷

  2. 数据卷容器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXrYo3SD-1598534360216)(images\1592753247374.png)]

步骤:

1.创建启动c3数据卷容器,使用 –v 参数 设置数据卷

docker run –it --name=c3 –v /volume centos:7 /bin/bash
  1. 创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bashdocker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash

3.4 数据卷小结

  1. 数据卷概念
    •宿主机的一个目录或文件

  2. 数据卷作用
    • 容器数据持久化
    • 客户端和容器数据交换
    • 容器间数据交换

  3. 数据卷容器
    • 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。

• 通过简单方式实现数据卷配置

4. 应用部署

参考资料中docker应用部署.md

5. Docerfile

前面的课程中已经知道了,要获得镜像,可以从Docker仓库中进行下载。那如果我们想自己开发一个镜像,那该如 何做呢?答案是:Dockerfifile

Dockerfifile其实就是一个文本文件,由一系列命令和参数构成,Docker可以读取Dockerfifile文件并根据Dockerfifile文 件的描述来构建镜像。

5.1 Docker 镜像原理(了解)

思考:

  1. Docker 镜像本质是什么?
    是一个分层文件系统

  2. Docker 中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个个G? ?

    Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层

  3. Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB? ?

由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖于父镜像和基础镜像,所有整个对外暴露的
tomcat镜像大小500多MB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmgfh5XF-1598534360217)(images\1592761590593.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUc4wlwY-1598534360217)(images\1592761605037.png)]

5.2 镜像制作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kalLElxY-1598534360218)(images\1592762650841.png)]

5.2.1 容器转为镜像

  1. 使用docker commit命令可以将容器保存为镜像。

命令形式:docker commit 容器名称 镜像名称

eg:
docker commit 381827f60f70 itheima_tomcat:1.0
  1. 使用docker save命令可以将已有镜像保存为tar 文件。

命令形式:docker save –o tar文件名 镜像名

docker save -o itheima_tomcat:1.0.tar
  1. 使用docker load命令可以根据tar文件恢复为docker镜像。

命令形式:docker load -i tar文件名

# 加载恢复镜像
docker load -i itheima_tomcat.tar 
# 在镜像恢复之后,基于该镜像再次创建启动容器 
docker run -di --name=new_tomcat -p 8080:8080 itheima_tomcat:1.0

注意:新的镜像制作后,原本容器中挂载的目录将失效, 索引一般在恢复镜像创建容器容器的时候需要重新挂载。

5.3 Dockerfile 概念

  • Dockerfile 是一个文本文件
  • 包含了一条条的指令
  • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
  • 对于开发人员:可以为开发团队提供一个完全一致的开发环境
  • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件
    构建一个新的镜像开始工作了
  • 对于运维人员:在部署时,可以实现应用的无缝移植

Dochub网址:https://hub.docker.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wGDySo4N-1598534360219)(images\1592763188913.png)]

关键字:

关键字 作用 备注
FROM 指定父镜像 指定dockerfile基于哪个image构建
MAINTAINER 作者信息 用来标明这个dockerfile谁写的
LABEL 标签 用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看
RUN 执行命令 执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN [“command” , “param1”,“param2”]
CMD 容器启动命令 提供启动容器时候的默认命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD [“command” , “param1”,“param2”]
ENTRYPOINT 入口 一般在制作一些执行就关闭的容器中会使用
COPY 复制文件 build的时候复制文件到image中
ADD 添加文件 build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来源于远程服务
ENV 环境变量 指定build时候的环境变量 可以在启动的容器的时候 通过-e覆盖 格式ENV name=value
ARG 构建参数 构建参数 只在构建的时候使用的参数 如果有ENV 那么ENV的相同名字的值始终覆盖arg的参数
VOLUME 定义外部可以挂载的数据卷 指定build的image那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用 -v 绑定 格式 VOLUME [“目录”]
EXPOSE 暴露端口 定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式: EXPOSE 8080 或者 EXPOSE 8080/udp
WORKDIR 工作目录 指定容器内部的工作目录 如果没有创建则自动创建 如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条workdir的路径的相对路径
USER 指定执行用户 指定build或者启动的时候 用户 在RUN CMD ENTRYPONT执行的时候的用户
HEALTHCHECK 健康检查 指定监测当前容器的健康监测的命令 基本上没用 因为很多时候 应用本身有健康监测机制
ONBUILD 触发器 当存在ONBUILD关键字的镜像作为基础镜像的时候 当执行FROM完成之后 会执行 ONBUILD的命令 但是不影响当前镜像 用处也不怎么大
STOPSIGNAL 发送信号量到宿主机 该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出。
SHELL 指定执行脚本的shell 指定RUN CMD ENTRYPOINT 执行命令的时候 使用的shell

5.4 Dockerfile 案例

需求1:

自定义centos7镜像。要求:

  1. 默认登录路径为 /usr
  2. 可以使用vim

实现步骤

① 定义父镜像:FROM centos:7

② 定义作者信息:MAINTAINER itheima itheima@itcast.cn

③ 执行安装vim命令: RUN yum install -y vim

④ 定义默认的工作目录:WORKDIR /usr

⑤ 定义容器启动执行的命令:CMD /bin/bash

⑥ 通过dockerfile构建镜像:docker bulid –f dockerfile文件路径 –t 镜像名称:版本

Dockerfile文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-avnqblfo-1598534360220)(images\1592764213253.png)]

文件编写完成执行命令构建:

docker build -f ./centos_dockerfile -t itheima_centos:1 .

需求2:

定义dockerfile,发布springboot项目

实现步骤

​ ① 定义父镜像:FROM java:8

​ ② 定义作者信息:MAINTAINER itheima itheima@itcast.cn

​ ③ 将jar包添加到容器: ADD springboot.jar app.jar

​ ④ 定义容器启动执行的命令:CMD java–jar app.jar

​ ⑤ 通过dockerfile构建镜像:docker bulid –f dockerfile文件路径 –t 镜像名称:版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QgNMkrvJ-1598534360220)(images\1592765120052.png)]

文件编写完成执行命令构建:

docker build -f ./springboot_dockerfile -t app .

6. 服务编排

6.1 服务编排概念

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从Dockerfile build image 或者去dockerhub拉取image
  • 要创建多个container
  • 要管理这些container(启动停止删除)
  • 服务编排: 按照一定的业务规则批量管理容器

6.2 Docker Compose 概述

6.2.1 Docker Compose

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建 ,启动和停止。使用步骤:

  1. 利用 Dockerfile 定义运行环境镜像

  2. 使用 docker-compose.yml 定义组成应用的各服务

  3. 运行 docker-compose up 启动应用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hGd4OduD-1598534360221)(images\1592767533518.png)]

6.2.2 Docker Compose 安装使用

参考《docker-compose.md》

7. Docker 私有仓库

Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜 像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。

搭建参考《docker 私有仓库.md》

8. Docker相关概念

docker容器虚拟化 与 传统虚拟机比较:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9qaX9kiR-1598534360222)(images\1592770300637.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uQt0r9wx-1598534360223)(images\1592770331752.png)]

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

相关文章

  1. 【简单整理】JDK8 Optional基本用法总结

    判断入参是否为空Integer value1 = null;Integer value2 = new Integer(10);//ofNullable 可以传入null,或者非空,都不会报错Optional<Integer> a = Optional.ofNullable(value1);Optional<Integer> b = Optional.ofNullable(value2);System.out.println("第…...

    2024/4/12 3:06:12
  2. 注册账号c++题解

    题目描述 在某网站收集了n个人的注册账号,账号类型有身份证号或者QQ号两种。请编程用恰当的数据结构保存信息,并统计身份证中男性和女性的人数,以及QQ账号的平均值(取整)。 提示:身份证号码中倒数第2位若为奇数则表示男性,若为偶数则表示女性 输入 第1行,一个正整数n,1 ≤…...

    2024/4/12 3:06:10
  3. 8月26日课课后作业

    ...

    2024/4/12 3:06:08
  4. 【数据分析入门】动手学数据分析 Task5 模型建立和评估

    文章目录Task5: 模型建立和评估1. 第三章 模型搭建和评估--建模【思考回答】这些库的作用是什么呢?【思考回答】二者不同之处模型搭建【思考回答】数据集哪些差异会导致模型在拟合数据是发生变化任务一:切割训练集和测试集【思考回答】划分数据集的方法有哪些?任务二:模型…...

    2024/4/12 3:06:07
  5. TortoiseSVN如何上传项目、更新项目、撤回更新、同步项目

    一.上传项目这里以Idea项目开发为平台操作 第一步:选择idea菜单栏的VCS–>improt into version control–>improt into Subversion第二步:输入你要上传的地址第三步:选择要上传的项目第四步:可填写备注信息(点击ok即上传完成)二.更新项目第一步:第二步:第三步:第…...

    2024/4/12 3:06:07
  6. MyBatis 批量更新踩坑,已解决

    MyBatis 批量更新踩坑,已解决 <!--删除购物车同时批量增加库存--><update id="updateStock" parameterType="java.util.List"><foreach collection="list" item="animeInfo" open="" close="" se…...

    2024/4/12 3:06:05
  7. java web的Servlet基础之Filter的简单使用

    概念 filter,过滤器,顾名思义,即在执行相关请求时,通过过滤器可以将请求拦截,并作出处理,再对请求放行,从而达到对请求拦截能力;比如,客户端提交数据时的敏感词过滤,编码的统一过滤,登录过滤等。 Filter的实现原理Filter创建与使用创建类实现Filter接口 实现doFilte…...

    2024/4/12 3:06:05
  8. 2020C证(安全员)模拟考试及C证(安全员)复审模拟考试

    题库来源:安全生产模拟考试一点通公众号小程序2020C证(安全员)模拟考试及C证(安全员)复审模拟考试,包含C证(安全员)模拟考试答案解析及C证(安全员)复审模拟考试练习。由安全生产模拟考试一点通公众号结合国家C证(安全员)考试最新大纲及C证(安全员)考试真题出具,有助于C证(安…...

    2024/4/12 3:06:03
  9. DGA生成与检测 - 论文《DeepDGA: Adversarially-Tuned Domain Generation and Detection》阅读

    20200827 0. 引言 DGA检测在网络安全中非常重要,通过检测DGA能够及时发现恶意软件;本博客中针对DGA检测的内容进行了简单的整理,见《DGA - 研究内容整理》。本身对GAN应用于安全领域有着极大的兴趣,所以本篇文章对使用GAN进行DGA域名的论文《DeepDGA: Adversarially-Tuned …...

    2024/4/12 3:06:02
  10. Web APIs-01基础:获取元素+操作元素+事件基础

    day01 - Web APIs 1.1. Web API介绍 1.1.1 API的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数。 目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,无需理解其内部工作机制细节,只需直接调用…...

    2024/4/17 16:02:19
  11. 基础4-数据转换/数据格式化/数据校验

    <form/>表单提交时,其是如何与实体类进行一一映射的呢?映射过程中是如何实现数据类型转换、格式化、校验的呢?SpringMVC映射form表单过程如下:①SpringMVC主框架将ServletRequest对象以及目标方法的入参实例传递给WebDataBinderFactory实例,来创建DataBinder实例对象…...

    2024/4/19 2:10:26
  12. 2020低压电工考试题库及低压电工实操考试视频

    题库来源:安全生产模拟考试一点通公众号小程序2020低压电工证考试及低压电工模拟考试软件,包含低压电工证考试答案解析及低压电工模拟考试软件练习。由安全生产模拟考试一点通公众号结合国家低压电工考试最新大纲及低压电工考试真题出具,有助于低压电工在线考试考前练习。1、…...

    2024/4/10 11:07:01
  13. 想成为淘宝美工需要学什么?零基础怎么快速入门?

    本文由:“学设计上兔课网”原创,图片素材来自网络,仅供学习分享想成为淘宝美工需要学什么?零基础怎么快速入门?最近就有不少小伙伴私信小编,大多是问淘宝美工需要掌握哪些知识?新手要如何快速入门等问题,那接下来小编把给他们的回复整理一下,也跟大家分享分享,有需要…...

    2024/4/10 11:07:01
  14. 开源数据库MySQL DBA运维实战 SQL3

    DCL 权限级别 1. Global level 所有库,所有表的权限。 2. Database level 某个数据库中的所有表的权限。 3 .Table level 库中的某个表的权限 4. Column level 表中的某个字段,的权限。 mysql用户管理 1. 创建用户 示例 CREATE USER user1@‘localhost’ …...

    2024/4/19 0:03:00
  15. js添加三种方式

    <!DOCTYPE html> <html lang="zh"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js三种添加方式</title><!--内嵌--&…...

    2024/4/12 3:06:00
  16. 安装RabbitMQ

    一:这里讲的都是在Linux上进行安装使用的。安装rabbitmq的时候要先安装Erlang erlang官网:https://www.erlang.org/ 安装Erlang: 1.上传安装包依次执行命令: 1)rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps2)rpm -ivh esl-erlang_17.3-1centos6_amd64.rpm --…...

    2024/4/12 3:05:59
  17. gdb调试qemu报错:(gdb) break mips_fuloong2e_machine_init Function “cpu_mips_irq_init_cpu“ not defined.

    报错原因:编译qemu时没有使能debug解决办法:./configure 时加上--enable-debug即可eg:./configure --enable-debug再make编译最后make install后调试即可解决该问题。...

    2024/4/12 3:05:58
  18. [PHP面试题]跳槽面试必背-自己最近5年的整理(二)

    看完这些还怕进不了大厂?[PHP面试题]跳槽面试必背-自己最近5年的整理(一)[PHP面试题]跳槽面试必背-自己最近5年的整理(三)PHP经典面试题集(含答案)面试12家公司,收获9个offer,2020年PHP 面试问题100 个常见的 PHP 面试题和答案分享PHP 面试遇到的问题,后期会不定期更…...

    2024/4/18 21:23:11
  19. VMware创建与虚拟机

    VMware创建与虚拟机VMware下载VMware安装VMware搭建虚拟机VMware网络配置网络模式介绍参考链接 VMware下载 首先我们访问官网地址 https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html https://www.vmware.com/cn.html 注意:没有账号必须先注…...

    2024/4/12 3:05:56
  20. 【华为HCIA-5G学习笔记】05H_5G商业应用

    目录1. 5G商业价值及发展2035年5G将在全球驱动12万亿美元的经济活动2. 5G商业应用案例2.1 eMBB商业应用及案例2.1.1 资费演进,释放MBB流量快速增长潜力2.1.2 5G帮助运营商支撑未来10倍流量增长2.1.3 Cloud X 3个重要的eMBB业务2.1.4 5G时代的应用将基于端管云协同:Cloud X2.1…...

    2024/4/12 3:05:55

最新文章

  1. 计算机比赛什么含金量高

    acm含金量不如天梯&#xff0c;和蓝桥杯是同一层次 先说结论&#xff0c;根据专家讨论结果&#xff0c;蓝桥国一水平和icpc金牌含金量一样。&#xff08;doge 赢&#xff01;瑶瑶另先&#xff01; 会统计就多统计&#xff0c;我们acmer就是爱看这种数据 https://www.gxxsjs.co…...

    2024/4/20 2:54:07
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 将.docx格式文件转成html,uniapp使用u-parse展示

    使用mammoth。 1、在index.html中加入&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewp…...

    2024/4/18 23:28:43
  4. 手机无线投屏到windows11电脑

    1 安装无线投影组件 2 电脑端打开允许其他设备投影的开关 3 手机找到投屏选项 4 手机搜索可用设备连接即可 这里的官方文档给的不太好,给了一些让人眼花撩乱的信息,以下是经过整合的有效信息...

    2024/4/18 8:14:23
  5. 全自动封箱机的工作原理:科技与效率的完美结合

    随着科技的不断发展&#xff0c;越来越多的自动化设备走进了我们的日常生活和工业生产中。其中&#xff0c;全自动封箱机作为物流包装领域的重要一环&#xff0c;凭借其高效、精准的工作性能&#xff0c;正逐渐成为提升生产效率、降低劳动成本的得力助手。星派就来与大家深入探…...

    2024/4/16 21:40:47
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/4/19 19:02:10
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/4/19 11:51:49
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/4/19 11:33:34
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/4/19 11:52:08
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/4/19 2:38:12
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/4/19 1:39:20
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/4/19 11:52:49
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/4/19 18:52:15
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/4/19 23:08:02
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/4/20 0:22:23
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/4/19 23:04:54
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/4/20 1:12:38
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/4/19 3:53:57
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/4/19 19:50:16
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/4/20 1:43:00
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/4/19 11:54:11
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/4/19 23:35:17
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/4/19 10:00:05
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/4/18 18:47:01
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/4/19 2:37:58
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57