Docker基础操作入门

news2024/11/16 4:37:02

1 初识 Docker

1.1 简介

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBVk7XHJ-1692534385562)(E:\Typora_img\image-20211023171023554.png)]

Docker概念

  • Docker 是一个开源的应用容器引擎,诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)。

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

  • 容器是完全使用沙箱机制,相互隔离,并且性能开销极低。

  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),二者差别不大。

1.2 安装docker

# 1.更新apt包索引
sudo apt-get update

# 2.安装以下包以使apt可以通过HTTPS使用存储库(repository)
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

# 3.添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 国内阿里云版 
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -

# 4.验证key的指纹
sudo apt-key fingerprint 0EBFCD88

# 5.添加稳定版repository
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
# 国内阿里云版 - 镜像加速器 - 在阿里云官网搜镜像就能搜到
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
   
# 6.安装最新版本的Docker CE
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 查看可获取的版本
apt-cache madison docker-ce
# 安装指定版本
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

# 7.验证
docker --versiondocker -v
# 配置阿里云镜像加速器
# 阿里云会为每个人分配一个加速器地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://4giu3izt.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.3 docker 架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIJz3BVc-1692534385563)(E:\Typora_img\image-20211023192331193.png)]

  • 镜像(Image):docker镜像,相当于是一个root文件系统。比如官方镜像ubuntu就包含一整套ubuntu最小系统的root文件系统。

  • 容器(Container):镜像和容器的关系,就像是面向对象程序设计的类和对象一样。镜像是静态的定义,容器时镜像运行时的实体。容器可以被创建、启动、停之、删除、暂停等。

  • 仓库(Repository):仓库可以看成一个代码控制中心,用来保存镜像。

2 Docker 命令

可以在菜鸟教程上随时查找。

2.1 docker服务相关命令 - daemon,也称为后台守护进程

  • 启动docker服务

    sudo service docker start
    
  • 停止docker服务

    sudo service docker stop
    
  • 重启docker服务

    sudo service docker restart
    
  • 查看docker服务状态

    sudo service docker status
    
  • 开机启动docker服务

    sudo systemctl enable docker
    

2.2 Docker 镜像相关命令 - images

  • 查看镜像

    docker images
    
  • 搜索镜像 - 远程操作

    docker search redis
    
  • 拉取镜像 - 远程操作

    # 默认下载latest
    docker pull redis
    # 下载指定版本
    docker pull redis:${version} 
    

在这里插入图片描述

  • 从docker hub上查询具体版本信息

  • 删除镜像

    docker rmi ${IMAGE ID}
    # 查看所有 IMAGE ID
    docker images -q
    # 删除所有images
    docker rmi `docker images -q`
    # 如果不能删除,尝试
    docker rmi -f imageName:id
    

2.3 Docker容器(container)相关命令

# 查看容器
# 查看正在运行的容器
docker ps
# 查看所有容器(运行和不运行的)
docker ps -a

# 创建容器
方式一:
	-it:创建完就进入容器终端,退出容器后,容器自动关闭
	redis:latest 声明镜像和版本
	/bin/bash 进入容器的初始化指令,可以省略
docker run -i -t --name=redis-server redis:latest /bin/bash
方式二:
	-id:后台运行创建容器,创建完容器不会立即进入,
		 退出也不会结束运行
docker run -id --name=redis-server2 redis:latest /bin/bash

# 退出容器
exit

# 进入容器
docker exec -it redis-server2 /bin/bash

# 启动容器
docker start redis-server

# 停止容器
docker stop redis-server2

# 删除容器,开启的容器不能删除
docker rm redis-server
# 查看所有容器id
docker ps -aq
# 删除所有容器
docker rm `docker ps -aq`

# 查看容器信息
docker inspect redis-server

参数说明:

  • -i :保持容器运行。通常与﹣ t 同时使用。加入 it 这两个参数后,容器创建后自动进入容器中。退出容器后,容器自动关闭
  • -t :为容器重新分配一个伪输入终端,通常与 ﹣i 同时使用。
  • -d :以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用 docker exec 进入容器。
  • -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
  • –name:为创建的容器命名。

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

3 Docker 容器的数据卷

3.1 数据卷概念及作用

思考问题

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

  • Docker 容器和外部机器可以直接交换文件吗?这是不行的,因为存在宿主机这个中介。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iaX1QtIm-1692534385565)(E:\Typora_img\image-20211023210226969.png)]

数据卷介绍

  • 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,双方的修改会立即同步

  • 一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。

数据卷的特点

  • 容器删除,数据卷不会删除

  • 外部机器将数据传到数据卷,容器就会同时进行修改

  • 能实现容器之间的数据交互

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KIxAebQf-1692534385565)(E:\Typora_img\image-20211023210439569.png)]

数据卷作用

  • 容器数据持久化

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

  • 容器之间数据交换

3.2 配置数据卷

  • 创建启动容器时,使用 –v 参数 设置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ... 
# 示例
docker run -it --name=test1 -v /root/test1_container_data:/root/test1_data redis:latest /bin/bash

注意事项

  1. 目录必须是绝对路径
  2. 如果目录不存在,会自动创建
  3. 可以挂载多个数据卷

示例

  • 一个容器挂载多个目录

    docker run -it --name=test \
    > -v ~/data1:/root/data1 \
    > -v ~/data2:/root/data2 \
    > redis:latest
    
  • 多个容器挂载同一个数据卷实现数据交换

    docker run -it --name=test1 
    -v ~/data:/root/test1_data redis:latest
    
    docker run -it --name=test2 
    -v ~/data:/root/test2_data redis:latest
    

3.3 配置数据卷容器

  • 数据卷实现多容器数据交换,c1和c2就相当于绑定了同一个数据卷,即使c3挂了,也不影响他们之间的通信

  • 配置数据卷容器

    1. 创建启动c3数据卷容器,使用 –v 参数 设置数据卷,/volume是容器目录,不配置左边宿主机目录,docker会自动在宿主机中分配一个目录作为数据卷

      docker run –it --name=c3 –v /volume centos:7 /bin/bash 
      
    2. 创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷,c1和c2中的绑定目录名称也为 volume

      docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
      docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash  
      

4 Dockerfile(制作Docker镜像)

4.1 Docker镜像原理

  • Docker 镜像本质是分层文件系统。

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

    • Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层。
  • Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB?

    • 由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖于父镜像和基础镜像,所有整个对外暴露的tomcat镜像大小500多MB。
  • Linux文件系统由bootfs和rootfs两部分组成

    • bootfs:包含bootloader(引导加载程序)和 kernel(内核)

    • rootfs: root文件系统,包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件

    • 不同的linux发行版,bootfs基本一样,而rootfs不同,如ubuntu,centos等

  • Docker镜像是由特殊的文件系统叠加而成 - 复用
  • 最底端是 bootfs,并使用宿主机的bootfs
  • 第二层是 root文件系统rootfs,称为base image
  • 然后再往上可以叠加其他的镜像文件
  • 统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。
  • 一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。
  • 当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器
  • 查看镜像分层:docker inspect tomcat

在这里插入图片描述

5.2 容器转为镜像

容器转为镜像

# 将容器转为镜像,版本号不写默认为最新版
# 注意:通过数据卷同步的文件通过commit提交是不会生效的
docker commit 容器id 镜像名称:版本号
# 将镜像转换为压缩文件
docker save -o 压缩文件名称 镜像名称:版本号
# 将压缩文件还原成镜像
docker load -i 压缩文件名称

在这里插入图片描述

  • 注意:通过数据卷同步的文件通过commit提交是不会生效的

    • 删除img_tomcat镜像
      在这里插入图片描述

    • 将压缩文件还原成镜像
      在这里插入图片描述

    • 查看通过数据卷挂载的文件,发现没有test目录
      在这里插入图片描述

5.3 Dockerfile概念及作用

Dockerfile介绍

  • Dockerfile 是一个文本文件,包含了一条条的指令。每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像

    • 对于开发人员:可以为开发团队提供一个完全一致的开发环境。
    • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了。
    • 对于运维人员:在部署时,可以实现应用的无缝移植。
  • 可以在docker hub上查找常用的dockerfile

5.4 Dockerfile关键字

关键字作用备注
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.5 案例

定义dockerfile,发布springboot项目

  • 实现步骤
    1. 定义父镜像:FROM java:8
    2. 定义作者信息:MAINTAINER li@njupt
    3. 将jar包添加到容器: ADD springboot.jar app.jar,app.jar是修改的名称
    4. 定义容器启动执行的命令:CMD java–jar app.jar
    5. 通过dockerfile构建镜像:docker build -f ./springboot_dockerfile -t app:latest .
# 需要java8父容器
FORM java:8
MAINTAINER  li@njupt
# 名称随便定义
ADD springboot-test-1.0-SNAPSHOT.jar app.jar
# 运行命令
CMD java –jar app.jar

# 执行dockerfile
docker build -f ./springboot_dockerfile  -t app:latest .

# 构建容器测试测试
docker run -id -p 9000:8080 app

自定义centos7镜像。

要求:

  1. 默认登录路径为 /usr

  2. 可以使用vim

  1. 定义父镜像:FROM centos:7
  2. 定义作者信息:MAINTAINER itheima <itheima@itcast.cn
  3. 执行安装vim命令: RUN yum install -y vim
  4. 定义默认的工作目录:WORKDIR /usr
  5. 定义容器启动执行的命令:CMD /bin/bash
  6. 通过dockerfile构建镜像:docker bulid –f dockerfile文件路径 –t 镜像名称:版本 .

6 Docker Compose 服务编排

6.1 服务编排概念

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

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

6.2 Docker Compose 概述

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

使用步骤:

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

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

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

6.3 Docker Compose安装使用

6.3.1 安装

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version

6.3.2 卸载

# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

6.3.3 使用docker compose编排nginx+springboot项目

  1. 创建docker-compose目录

    mkdir ~/docker-compose
    cd ~/docker-compose
    
  2. 编写 docker-compose.yml 文件,名称是固定的

    version: '3'
    services:
      nginx:
       image: nginx
       ports:
        - 80:80
       links:
        - app
       # 数据卷
       volumes:
        - ./nginx/conf.d:/etc/nginx/conf.d
      app:
        image: app
        expose:
          - "8080"
    
  3. 创建./nginx/conf.d目录

    mkdir -p ./nginx/conf.d
    
  4. 在./nginx/conf.d目录下 编写itheima.conf文件

    server {
        listen 80;
        access_log off;
    	
    	# 反向代理
        location / {
            proxy_pass http://app:8080;
        }
       
    }
    
  5. 在~/docker-compose 目录下 使用docker-compose 启动容器

    docker-compose up
    
  6. 测试访问

    http://192.168.149.135/hello
    

7 Docker 私有仓库

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

7.1 搭建私有仓库

# 1、拉取私有仓库镜像 
docker pull registry
# 2、启动私有仓库容器 
docker run -id --name=registry -p 5000:5000 registry
# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
http://192.168.217.128:5000/v2/_catalog

# 4、修改daemon.json,信任这个私有仓库   
vim /etc/docker/daemon.json    
# 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip 
{"insecure-registries":["私有仓库服务器ip:5000"]} 

# 5、重启docker 服务 
systemctl restart docker
docker start registry
  • 访问成功

7.2 上传镜像到私有仓库

# 1、标记镜像为私有仓库的镜像,就是改个名字    
docker tag app 私有仓库服务器IP:5000/centos:7
 
# 2、上传标记的镜像     
docker push 私有仓库服务器IP:5000/centos:7

7.3 从私有仓库拉取镜像

#拉取镜像 
docker pull 私有仓库服务器ip:5000/centos:7

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

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

相关文章

钝感力:项目经理的隐形盾牌

钝感力的定义 钝感力的起源和意义 钝感力&#xff0c;或者说对外部刺激的不敏感性&#xff0c;起源于我们的生存本能。在古代&#xff0c;人们面对各种危险和挑战&#xff0c;需要有一定的抗压能力&#xff0c;才能在恶劣环境中生存下来。这种能力使得我们的祖先能够在面对猛兽…

R package org.Hs.eg.db to convert gene id

文章目录 install使用org.Hs.egENSEMBL将Ensembl id convert to gene idorg.Hs.egGENENAME 将Ensembl id convert to gene nameorg.Hs.egSYMBOL 将 gene symbol convert to gene id我现在有一些ensembl id 如何转为 gene name注意你会遇到一些record不全的情况&#xff0c;gtf文…

Certify The Web (IIS)

一、简介 Certify The Web 适用于 Windows的SSL 证书管理器用户界面&#xff0c;与所有 ACME v2 CA 兼容&#xff0c;为您的 IIS/Windows 服务器轻松地安装和自动更新来自 Letencrypt.org 和其他 ACME 证书授权机构的免费 SSL/TLS 证书&#xff0c;设置 https 从未如此简单。 …

T599聚合物电容器:在汽车应用中提供更长的使用寿命的解决方案

自从电子技术被引入汽车工业以来&#xff0c;汽车的技术含量一直在提升。诸多技术被应用在汽车上&#xff0c;使汽车的形象更接近于轮子上的超级计算机。更多传感器、更强大的计算能力和电力被装载到汽车上&#xff0c;汽车应用中的电子产品数量正在迅速增长。随着电动汽车和自…

jeecg如何创建报表并配置到菜单中

当使用jeecg创建单表之后,需要进行报表显示,并把报表配置到菜单中,该如何操作呢?下面进行详细讲解。这里以课程表这张表为例进行讲解。 一.表单创建完成,并配置好菜单栏。具体步骤略,如下图: 二.创建积木报表 1.左侧边栏展开低代码开发菜单,进入报表设计器栏目 2.进…

数据库中字段不给值或给““,默认存什么

准备 在mysql数据库中有一张stu表,下面是表的结构和数据和Student类 开始测试一(不给值) 情况一:添加一条数据,但是跳过math列 可以看到,表的int类型的默认为null. 查id2的这条数据,用student类去接 结果math是0,因为实体类的int元素不会是null,会默认给个0 用hashMap<st…

Vue教程(五):样式绑定——class和style

1、样式代码准备 样式提前准备 <style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{border: 4px solid red;background-color: rgba(255, 255, 0, 0.644);background: linear-gradient(30deg, yellow, pink, orange, yellow);}.sad{border: 4px …

【Java 高阶】一文精通 Spring MVC - 基础概念(一)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

微信小程序使用npm引入三方包详解

目录 1 前言2 微信小程序npm环境搭建2.1 创建package.json文件2.2 修改 project.config.json2.3 修改project.private.config.json配置2.4 构建 npm 包2.5 typescript 支持2.6 安装组件2.7 引入使用组件 1 前言 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或…

课程项目设计--spring security--用户管理功能--宿舍管理系统--springboot后端

写在前面&#xff1a; 还要实习&#xff0c;每次时间好少呀&#xff0c;进度会比较慢一点 本文主要实现是用户管理相关功能。 前文项目建立 文章目录 验证码功能验证码配置验证码生成工具类添加依赖功能测试编写controller接口启动项目 security配置拦截器配置验证码拦截器 …

一、pikachu之SQL注入

文章目录 一、SQL注入步骤二、数字型注入(post注入)三、字符型注入(get)四、搜索型注入五、XX型注入六、“insert/updata”注入 一、SQL注入步骤 寻找传参页面&#xff1b;判断是否存在注入点&#xff1b; 字符型注入&#xff1f;数字型注入&#xff1f; 判断字段的数量&#…

二、4.makefile、断言和位图内存池

在 Linux 中&#xff0c;文件分为属性和数据两部分&#xff0c;每个文件有三种时间&#xff0c;分别用于记录与文件属性和文件数据相关的时间&#xff0c;这三个时间分别是 atime、 mtime 、 ctime 。 atime&#xff0c;即 access time&#xff0c;和示访问文件数据部分时间&a…

SprintBoot Bean管理

SpringBoot中获取Bean对象 下面这段代码在测试类中进行&#xff0c;下面通过三种方式获取bean对象。 import org.springframework.context.ApplicationContext;// 注意一定要引入上面的依赖SpringBootTest class TliasWebManagementApplicationTests {Testvoid getBeanTest(){…

AI夏令营第三期 - 基于论文摘要的文本分类与关键词抽取挑战赛笔记

赛题&#xff1a;基于论文摘要的文本分类与关键词抽取 背景&#xff1a;高效的从海量医学文献中提取疾病诊断和治疗关键信息 任务&#xff1a;通过论文摘要判断论文是否为医学文献 样例 数据集&#xff1a;csv文件&#xff0c;字段&#xff1a;标题、作者、摘要、关键词 评价指…

uniapp 引入海康H5player实现视频监控的播放

uniapp直接调用海康H5player方法&#xff0c;只能在web浏览器页面正常播放&#xff0c;实机运行会因为找不到文件的相对路径而报错无法播放。因此需要通过web-view或iframe引入html的方式来实现实时视频监控的播放。具体步骤如下&#xff1a; 1、首先将海康h5player的相关文件…

服装定制小程序的秘诀

随着互联网的快速发展&#xff0c;越来越多的企业开始关注互联网商业模式的创新。其中&#xff0c;定制化服务成为了各行各业的关注焦点之一。尤其是在服装行业&#xff0c;定制化服装已经成为许多消费者的追求。而面对这一市场需求&#xff0c;如何创造成功的互联网新商业模式…

https非对称加密算法

非对称加密算法原理 在客户端公开公钥&#xff0c;服务端保存私钥 1.客户端第一次请求先请求443端口&#xff0c;从443端口下载公钥。 2.客户端将数据进行公钥算法进行加密&#xff0c;将秘文发送到服务端 服务端收到秘文后&#xff0c;通过私钥算法进行解密得到明文数据。…

【STM32】开发方式:寄存器、CMSIS、SPL、HAL、LL、RTOS

阅读本专栏其他文章&#xff0c;有助于理解本文。 文章目录 一、开发库选择1.1 概述1.2 CMSIS库1.3 SPL库1.4 HAL 库1.5 LL库1.6 寄存器开发 二、代码对比2.1 使用寄存器2.2 使用CMSIS库2.3 使用SPL库2.4 使用HAL库2.5 使用LL库2.6 使用RTOS 三、软件配置 一、开发库选择 1.1 …

【linux】使用rpm下载mysql

1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 10/ 11/ 12/ 13/

JDBC回顾

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 JDBC回顾 前言一、JDBC1.JDBC是什么&#xff1f;2.如何使用&#xff1f;&#xff08;1&#xff09;注册驱动&#xff08;2&#xff09;获取连接&#xff08;3&#xff09;操作…