Docker(Docker的安装和介绍,常用命令,镜像制作,服务编排,docker私服)

devtools/2024/9/24 10:05:25/

目录

一、简介

docker%E7%AE%80%E4%BB%8B-toc" style="margin-left:40px;">1. docker简介

docker-toc" style="margin-left:80px;">1 什么是docker

2 容器和虚拟机对比

docker-toc" style="margin-left:40px;">2. 安装docker

docker%E7%9B%B8%E5%85%B3%E6%A6%82%E5%BF%B5-toc" style="margin-left:80px;">1 docker相关概念

docker-toc" style="margin-left:80px;">2 安装docker

docker-toc" style="margin-left:120px;">1 安装docker

2 设置注册中心(仓库)

3. 小结

二、常用命令【重点】

1. 服务管理

2. 镜像管理

1 语法说明

2 使用练习

3. 容器管理

1 容器介绍

2 容器基本使用

1 语法说明

2 练习:创建CentOS容器

3 端口映射

1 端口映射介绍

2 练习:创建Redis容器

3 练习:创建MySQL容器

4 挂载数据卷

1 数据卷常用命令

操作数据卷的命令

容器挂载数据卷

2 练习:创建nginx容器

1 语法说明

2 练习:创建tomcat容器

5 挂载目录

1 语法说明

2 练习:创建tomcat容器

4. 小结

三、镜像制作【了解】

1. 备份与恢复

1 导出镜像

2 加载镜像

3 练习

2. Dockerfile

1 Dockerfile介绍

​编辑

2 Dockerfile示例

3. 小结

四、服务编排【了解】

1. 服务编排介绍

docker%20compose-toc" style="margin-left:40px;">2. 安装docker compose

3. 服务编排示例

4. 常用命令 【掌握】

5. 小结

docker%E7%A7%81%E6%9C%8D%E3%80%90%E6%8B%93%E5%B1%95%E4%BA%86%E8%A7%A3%E3%80%91-toc" style="margin-left:0px;">五、docker私服【拓展了解】

1. 搭建私服

1 拉取私服镜像

2. 上传镜像到私服

1. 给镜像打标记成为私有仓库镜像

2. 上传到私有仓库

3. 从私服拉取镜像

4.小结

今天内容回顾


一、简介

docker%E7%AE%80%E4%BB%8B" style="background-color:transparent;">1. docker简介

我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境等等。多种环境去部署同一份代码,由于环境原因往往会出现软件跨环境迁移的问题(也就是“水土”不服

针对这种问题如何解决?我们可以将工程及此工程依赖的所有软件打包到一个容器中统一部署

docker">1 什么是docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

2 容器和虚拟机对比

本质的区别

容器

容器是应用层的一个抽象,它将代码和依赖关系打包在一起。

多个容器可以在同一台机器上运行,并与其他容器共享操作系统内核,每个容器作为独立的进程在用户空间运行。

容器比虚拟机占用的空间更小(容器镜像的大小一般为几十MB),可以处理更多的应用,对虚拟机和操作系统的要求也更低。

虚拟机

虚拟机(VM)是物理硬件的抽象,将一台服务器变成多台服务器。

管理程序允许多个虚拟机在一台机器上运行。每个虚拟机都包括一个操作系统、应用程序、必要的二进制文件和库的完整副本--占用几十GB的空间。

虚拟机的启动速度也会很慢。

使用的区别

docker" style="background-color:transparent;">2. 安装docker

docker%E7%9B%B8%E5%85%B3%E6%A6%82%E5%BF%B5">1 docker相关概念

镜像image

Docker 镜像(Image),就相当于是一个文件系统,是用于创建 Docker 容器的模板。也可以将镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新。

容器container

容器是独立运行的一个或一组应用,是镜像运行时的实体。(相当于是精简版的虚拟机,其中安装好了软件)

注册中心(仓库)registry

Docker 仓库用来保存镜像,有点类似于Maven的远程仓库。Registry 分为公共和私有两种。Docker 公司运营公共的 Registry 叫做 Docker Hub。用户可以在 Docker Hub 注册账号,分享并保存自己的镜像(说明:在 Docker Hub 下载镜像巨慢,可以自己构建私有的 Registry)。

docker">2 安装docker

Docker 官方建议在 Ubuntu 中安装,因为 Docker 是基于 Ubuntu 发布的。

由于我们学习的环境都使用的是 CentOS,因此这里我们将 Docker 安装到 CentOS 上。

注意:这里建议安装在 CentOS7.x 以上的版本,在 CentOS6.x 的版本中,安装前需要安装其他很多的环境而且 Docker 很多补丁不支持更新。

docker">1 安装docker

在安装docker之前,可以先做如下准备工作:

自己的服务器不要全开防火墙容易被威胁

#1. 关闭防火墙,并禁止防火墙开机自启
systemctl stop firewalld
systemctl disable firewalld

#2. 关闭MySQL,并禁止MySQL开机自启(你的CentOS里之前安装过MySql,为防止端口冲突,需要做这一步)
systemctl stop mysqld
systemctl disable mysqld

启动CentOS7后,使用SecureCRT连接上CentOS7,然后依次执行命令(要联网):

# 更新系统,如果需要确认,全部选 y (yes)。根据网络状况,此操作可能要花几分钟或者十几分钟时间
yum update

# 安装yum-utils工具和两个驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置使用阿里云的yum源,稍后会从阿里云下载docker软件
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker
yum install docker-ce

# 查看docker版本
docker -v

2 设置注册中心(仓库)

如果不设置注册中心,将从默认的docker hub里下载镜像,速度非常慢。

USTC(中科大的镜像服务)是老牌的Linux镜像服务提供者(注册中心Registry),从Ubuntu5.04版本就在使用。USTC的docker镜像速度加载很快,它的优势之一是不需要注册,是真正的公共服务。

设置步骤:

  1. 创建文件夹:mkdir /etc/docker

  2. 编辑文件daemon.json: vim /etc/docker/daemon.json

    按字母i进入编辑模式,复制以下内容,在finalShell里右键,粘贴到文件里

{
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

保存并退出vim:按ESC,输:wq 回车

然后查看配置的是否正确:cat /etc/docker/daemon.json

   3. 重新加载daemon文件,然后重启docker服务:

systemctl daemon-reload
systemctl restart docker

4.查看docker信息:docker info,如果能看到以下信息,就说明配置成功了

3. 小结

 

 

docker是什么:容器引擎,可以管理容器

docker解决什么问题:软件环境的迁移问题

容器和虚拟机的区别:

  • 容器:是应用程序的抽象。占用资源更小,启动速度快。轻巧灵活

  • 虚拟机:是对硬件机器的抽象。占用资源更多,启动速度慢。笨重强大

二、常用命令【重点】

1. 服务管理

# 启动docker服务
systemctl start docker

# 查看docker运行状态
systemctl status docker

# 重启docker服务
systemctl restart docker

# 关闭docker服务
systemctl stop docker

# 设置docker开机自启动
systemctl enable docker

2. 镜像管理

1 语法说明

  • 拉取镜像:docker pull 镜像名称:tag, 从docker hub拉取镜像包

    从注册中心docker hub把镜像拉取到本地。拉取下来的镜像,在/var/lib/docker目录下存储

    tag:标签名称,相当于版本号。如果不知道版本号,可以从https://hub.docker.com/里查询

  • 查看镜像:docker images,查看服务器里的所有镜像

  • 删除镜像:docker rmi 镜像ID 或者 docker rmi 镜像名称:tag

2 使用练习

  1. 拉取CentOS7镜像,查看镜像列表(从https://hub.docker.com/里搜索CentOS镜像,找到CentOS7)

  2. 拉取nginx镜像,查看镜像列表(从https://hub.docker.com/里搜索nginx镜像,找到nginx1.14.2)

3. 容器管理

1 容器介绍

容器是独立运行的一个或一组应用,是镜像运行时的实体。(相当于是精简版的虚拟机,其中安装好了软件)

容器的状态有:

  • 运行状态:容器正在运行,可以直接使用。

  • 暂停状态:容器进程暂停,CPU不再处理容器,但并不释放容器的内存

  • 停止状态:容器进程终止,CPU不再处理容器,并释放容器占用的内存

其中操作容器相关的命令有:

2 容器基本使用

1 语法说明
2 练习:创建CentOS容器

要求:

3 端口映射

1 端口映射介绍

宿主机和容器的关系:

为什么要做端口映射:

  • 每个容器都相当于一个独立的服务器,服务器之间是一个小型局域网,外界的客户端不能访问某一个容器

  • 所以要做一个端口映射:宿主机的一个端口号---容器里的一个端口号。两个端口建议相同

  • 这样:客户端就能通过“宿主机:端口”,访问到映射的容器端口

2 练习:创建Redis容器

要求:

  • 创建redis容器并启动,暴露端口6379

  • 查看所有正常运行的容器

  • 然后用RDM工具或其它工具,访问redis

docker run -id --name=myredis -p 6379:6379 redis:5.0 

3 练习:创建MySQL容器

要求:

  • 创建MySql容器并启动,暴露端口3306

  • 查看所有正在运行的容器

  • 然后使用Navicat或其它工具连接MySQL

# 拉取镜像
docker pull mysql:5.7

# 创建容器
docker run -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7 --character-set-server=utf8

4 挂载数据卷

之前我们创建的所有容器,并不涉及其中文件的修改。但是如果要创建一个nginx容器,或者tomcat容器,如何把项目传输到容器内部呢?docker提供了数据卷的功能,用于实现宿主机目录与容器目录的映射,这样我们在宿主机目录里的一切操作,都会作用到容器目录里了。

1 数据卷常用命令

数据卷:被docker管理的一些文件夹目录。

数据卷可以跟容器里的指定路径进行绑定,绑定后:

  • 在数据卷文件夹里添加文件,docker会自动帮我们把文件同步到容器

  • 容器里的文件有所变化,docker也会同步到绑定的数据卷里

操作数据卷的命令

创建数据卷:docker volume create 数据卷名称

列出数据卷:docker volume ls

查看数据卷:docker volume inspect 数据卷名称

删除数据卷:docker volume rm 数据卷名称

容器挂载数据卷

在创建容器时,可以通过-v参数,将数据卷挂载给容器内的某个目录:

  • docker run -id --name=容器名称 -v 数据卷名称:容器内目录 -p 宿主机端口:容器端口 镜像名称:tag

2 练习:创建nginx容器

要求:创建一个nginx容器,修改nginx内的html页面

已知:nginx内html目录的位置是 /usr/share/nginx/html

提示:

  1. 创建一个数据卷,名称为html。查看数据卷的文件夹位置

    创建数据卷docker volume create html

    查看数据卷docker volume inspect html

        2. 创建nginx容器,使用-v参数把数据卷html挂载绑定到容器内的/usr/share/nginx/html

   docker run -id --name=mynginx -v html:/usr/share/nginx/html -p 80:80 nginx:1.14.2

        3. 使用浏览器访问nginx,先查看原始index.html页面的效果

        浏览器输入地址:http://宿主机ip:80

        4. 直接进入数据卷html的目录,修改其中的index.html文件

   cd /var/lib/docker/volumes/html/_data

        使用vi修改其中的index.html文件,之后保存并退出vi

        5. 再使用浏览器访问nginx,查看修改后的index.html页面效果

        浏览器输入地址:http://宿主机ip:8

1 语法说明

容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。

挂载目录的语法,和挂载数据卷的语法是类似的,都是使用参数-v

  • 挂载数据卷:-v 数据卷:容器内目录

  • 挂载目录:-v 宿主机目录:容器内目录

    注意:“宿主机目录”要以绝对路径的形式提供。以/开头的路径

2 练习:创建tomcat容器

要求:创建一个tomcat容器,修改mysql内的html页面

已知:tomcat内webapps目录的位置是/usr/local/tomcat/webapps

提示:

  1. 创建文件夹/root/webappsmkdir /root/webapps

  2. 创建nginx容器,使用-v参数把/root/webapps挂载绑定到容器内的/usr/local/tomcat/webapps

    docker run -id --name=mytomcat -p 8080:8080 -v /root/webapps:/usr/local/tomcat/webapps tomcat:8.5.88
  3. 把资料中的appfront文件夹上传到/root/webapps文件夹里

  4. 再使用浏览器访问tomcat,访问 http://宿主机ip:8080/appfront/index.html

5 挂载目录

1 语法说明

容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。

挂载目录的语法,和挂载数据卷的语法是类似的,都是使用参数-v

  • 挂载数据卷:-v 数据卷:容器内目录

  • 挂载目录:-v 宿主机目录:容器内目录

    注意:“宿主机目录”要以绝对路径的形式提供。以/开头的路径

2 练习:创建tomcat容器

要求:创建一个tomcat容器,修改mysql内的html页面

已知:tomcat内webapps目录的位置是/usr/local/tomcat/webapps

提示:

  1. 创建文件夹/root/webappsmkdir /root/webapps

  2. 创建nginx容器,使用-v参数把/root/webapps挂载绑定到容器内的/usr/local/tomcat/webapps

docker run -id --name=mytomcat -p 8080:8080 -v /root/webapps:/usr/local/tomcat/webapps tomcat:8.5.88

     3. 把资料中的appfront文件夹上传到/root/webapps文件夹里

     4. 再使用浏览器访问tomcat,访问 http://宿主机ip:8080/appfront/index.html

4. 小结

docker服务的状态管理:

docker镜像管理

  • 搜索镜像:docker search 镜像名

  • 拉取镜像:docker pull 镜像名:tag 如果不指定tag会拉取lastest

  • 查看镜像:docker images

  • 删除镜像:docker rmi 镜像名:tag

docker容器管理:

docker的数据卷:

  • 数据卷:是被docker管理的文件夹。

  • 数据卷的用处:可以把数据卷和 某个容器里的路径进行绑定, 实现容器与宿主机之间文件的双向自动传输

    把文件放到宿主机的数据卷里:docker会自动把文件同步到容器

    容器里的文件有变化:docker会自动同步到宿主机的数据卷里

  • 数据卷操作命令:

    列出数据卷:docker volume ls

    创建数据卷:docker volume create 数据卷名称

    查看数据卷详情(实际路径):docker volume inspect 数据卷名称

    删除数据卷:docker volume rm 数据卷名称

  • 创建容器并绑定数据卷:

    docker run -di --name=容器名 -v 数据卷名:容器里的路径 镜像名:tag

    docker run -di --name=容器名 -v 宿主机里的路径:容器里的路径 镜像名:tag

    注意:-v参数里的路径,全部都得是 绝对路径

三、镜像制作【了解】

1. 备份与恢复

1 导出镜像

  • 命令:docker save -o 文件名称 镜像名称

  • 参数:

    • o:output,表示要输出到文件

  • 说明:

    • 文件名称,通常是xxx.tar打包文件

  • 示例:docker save -o nginx.tar nginx:1.14.2

2 加载镜像

  • 命令:docker load -i xxx.tar

  • 参数:

    • i:input,表示要从文件读取

  • 示例:

    • 我们先将原有镜像删除掉:docker rmi nginx:1.14.2

    • xxx.tar恢复镜像:docker load -i nginx.tar

3 练习

要求:

  1. 把redis镜像保存成文件 redis.tar

    docker save -o redis.tar redis:5.0

  2. 删除所有redis的容器和镜像

    docker stop myredis

    docker rm myredis

    docker rmi redis:5.0

  3. 重新加载redis.tar得到镜像

    docker load -i redis.tar

2. Dockerfile

1 Dockerfile介绍

前边是从一个已有容器生成一个镜像。而Dockerfile是另外一种构建镜像的方式,它是以一种基础镜像为基础,编写一系列的docker指令,每条指令构建一层镜像,通过这些指令一层层构建出一个目标镜像出来。

  • 对于开发人员:可以为开发团队提供一个完全一致的开发环境

  • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了

  • 对于运维人员:在部署时,可以实现应用的无缝移

Dockerfile的常用指令有以下几个:

更新详细语法说明,请参考官网文档: Dockerfile reference | Docker Docs

从前面的内容可以看出,要构建一个容器,需要做很多的工作,设置很多的配置,如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。 这个脚本就是 Dockerfile。

2 Dockerfile示例

需求

定义dockerfile,发布springboot项目

分析

  1. SpringBoot项目可以独立运行,不需要Tomcat;但是需要有jdk

    所以:我们这个容器,要提供基础的jdk环境,基于jdk环境构造一个新容器

    使用:FROM java:8

  2. 要把SpringBoot项目添加到这个容器

    使用:ADD demo.jar /demo.jar

  3. 当启动容器时,要同时启动运行这个SpringBoot项目

    所以:启动容器时,要执行Java命令,运行SpringBoot项目

实现

1. 把SpringBoot项目上传到宿主机

在宿主机里创建一个文件夹~/dockerfiles,把SpringBoot工程打包为demo.jar,然后上传到CentOS的~/dockerfiles

2. 创建Dockerfile

~/dockerfiles文件夹里创建文件Dockerfile,内容如下:

#1.定义父镜像:                                                  
FROM openjdk:8
#2.定义作者信息:
MAINTAINER  itheima <itheima@itcast.cn>
#3.将jar包添加到容器: 
ADD demo.jar /demo.jar
#4.定义容器启动执行的命令: 当通过此镜像启动容器的时候,执行的命令
CMD java -jar /demo.jar

3. 通过Dockerfile构建镜像

# 切换到dockerfile文件所在的路径
cd ~/dockerfiles

# 构建镜像
docker build -f ./Dockerfile -t demo:1 ./

4. 启动容器

#创建启动容器
docker run -id --name=自定义名称 -p 端口  镜像名称

docker run -id --name=demo -p 81:80 demo:1

#打开浏览器,输入地址  http://宿主机ip:81/hello  ,可以访问到SpringBoot项目

3. 小结

简化版:

镜像备份:docker save -o /root/xxx.tar 镜像名:tag

加载备份得到镜像:docker load -i /root/xxx.tar

Dockerfile技术:作用是用于制作新镜像

四、服务编排【了解】

1. 服务编排介绍

服务编排或容器编排:按照一定的业务规则批量管理容器

Docker compose是一个用于定义和运行多个Docker容器的编排工具。可以一条命令启动多个容器。主要是解决了容器容器之间如何管理编排的问题。

使用Docker compose 有三个步骤:

  1. 利用Dockerfile定义运行环境(如果已有镜像,可省略这一步)

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

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

docker%20compose">2. 安装docker compose

# 下载docker compose
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

如果要卸载docker-compose,可执行如下命令:

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

3. 服务编排示例

要求:通过docker-compose 批量创建三个容器(nginx,tomcat,redis)

  1. 创建docker-compose目录

mkdir ~/docker-compose
cd ~/docker-compose

     2. 编写docker-compose.yaml文件

version: "3.0"
services:
  redis:
    container_name: redis 
    image: redis:5.0
    ports:
      - 6379:6379
  nginx:
    container_name: nginx
    image: nginx:1.14.2
    ports:
      - 80:80
    volumes:
      - /root/volumes/nginx/html:/usr/share/nginx/html
  tomcat:
    container_name: tomcat
    image: tomcat:8.5.88
    ports:
      - 8080:8080
    volumes:
      - /root/volumes/tomcat/webapps:/usr/local/tomcat/webapps

      3.启动

# !!!注意:必须先切换到`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
cd ~/docker-compose

# docker-compose up -d 以守护进程方式创建并启动容器
docker-compose up -d

4. 常用命令 【掌握】

# !!!注意:必须先切换到`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!

#创建容器并后台启动
docker-compose up -d

#直接启动容器
docker-compose start

# 了解其它命令:
docker-compose help # 查看帮助
docker-compose stop  # 停止容器
docker-compose start # 启动容器
docker-compose restart # 重启容器
docker-compose rm # 删除已停止的容器
docker-compose down # 停止并删除容器

5. 小结

docker%E7%A7%81%E6%9C%8D%E3%80%90%E6%8B%93%E5%B1%95%E4%BA%86%E8%A7%A3%E3%80%91" style="background-color:transparent;">五、docker私服【拓展了解】

我们知道docker镜像可以托管到Docker Hub中,跟代码库托管到github是一个道理。但如果我们不想把docker镜像公开放到Docker Hub中,只想在部门或团队内部共享docker镜像,能不能项gitlab一样在搭建私有的仓库呢?答案是肯定的,docker也支持将镜像存到私有仓库。

1. 搭建私服

1 拉取私服镜像

# 拉取私服镜像
docker pull registry
# 启动运行私服
docker run -id --name=registry -p 5000:5000 registry

2 设置私服可信任

  • 设置私有仓库为可信任,用vim或vi编辑文件 /etc/docker/daemon.json

"insecure-registries":["私有仓库的ip:端口"]

  • 重启dockersystemctl restart docker

  • 打开浏览器,通过网址:http://192.168.247.140:5000/v2/_catalog来验证是否启动成功

2. 上传镜像到私服

1. 给镜像打标记成为私有仓库镜像

  • 语法:docker tag 镜像名称 私有仓库ip:端口/镜像名称

  • 示例:docker tag redis:5.0 192.168.200.137:5000/redis:5.0

2. 上传到私有仓库

  • 语法:docker push 私有仓库ip地址:5000/镜像名称

  • 示例:docker push 192.168.200.137:5000/redis:5.0

  • 上传后,可以浏览器上看到

3. 从私服拉取镜像

  • 语法:docker pull 私有仓库ip:端口/镜像名称

  • 示例:docker pull 192.168.200.137:5000/redis:5.0

4.小结

先创建一个私服

今天内容回顾

安装、配置docker

管理docker服务:

管理docker镜像:

  • 搜索镜像:docker search 镜像名

  • 拉取镜像:docker pull 镜像名:tag

  • 查看镜像:docker images

  • 删除镜像:docker rmi 镜像名:tag

管理docker容器

镜像备份与恢复:

  • 把镜像保存成文件:docker save -o xx.tar 镜像名:tag

  • 加载文件成镜像:docker load -i xx.tar

制作新的镜像:使用Dockerfile技术

docker服务编排:使用docker-compose技术,可以批量管理容器


http://www.ppmy.cn/devtools/24609.html

相关文章

【高校科研前沿】华东师大白开旭教授博士研究生李珂为一作在RSE发表团队最新成果:基于波谱特征优化的全球大气甲烷智能反演技术

文章简介 论文名称&#xff1a;Developing unbiased estimation of atmospheric methane via machine learning and multiobjective programming based on TROPOMI and GOSAT data&#xff08;基于TROPOMI和GOSAT数据&#xff0c;通过机器学习和多目标规划实现大气甲烷的无偏估…

Android Room 数据库中的 Journal mode 解释

Android Room 数据库底层是有 SQLite 实现的&#xff0c;所以对于 Room 的 Journal mode的分析其实是要基于 SQLite 的 Journal mode 分析。 首先要明白 Journal mode 是什么&#xff1f;它是一个重要的数据库设置&#xff0c;用于控制 SQLite 如何记录事务日志来确保数据完整…

学习 Rust 的第十五天:如何处理程序异常信息

大家好&#xff0c; 在过去的三天里&#xff0c;我们已经完成了 Rust 的三个常见集合&#xff0c;今天我们将学习有关 Rust 中错误处理的所有内容。 引言 错误处理基本上意味着如何处理一些对你的程序来说不是最佳选择的情况&#xff0c;有一些可以优雅处理的错误&#xff0…

【机器学习】Voting集成学习算法:分类任务中的新利器

Voting集成学习算法&#xff1a;分类任务中的新利器 一、Voting集成学习算法概述二、Voting算法的分类方式三、Voting算法在图像识别中的应用四、结论与展望 在机器学习领域&#xff0c;集成学习算法一直以其出色的性能提升能力而备受关注。其中&#xff0c;Voting集成学习算法…

CentOS 常见的命令

CentOS 常见的命令 引言 CentOS&#xff08;Community Enterprise Operating System&#xff09;是基于Red Hat Enterprise Linux (RHEL)构建的开源企业级Linux发行版。它广泛应用于服务器环境中&#xff0c;因其稳定性、可靠性和强大的社区支持而受到许多系统管理员的青睐。掌…

RK3588 Linux5.10 GT9XX 调试

触摸芯片:GT911驱动代码:“kernel\drivers\input\touchscreen\gt9xx\gt9xx.c”(系统自带的驱动)1. 在Makefile添加:obj-$(CONFIG_TOUCHSCREEN_GT9XX) += gt9xx/ Makefile所在路径:"kernel\drivers\input\touchscreen\Makefile" 2.在Kconfig添加:`config …

Python基本数据类型

描述 Python是一种高级编程语言&#xff0c;拥有丰富的数据类型用于表示不同类型的数据。基本数据类型可以分为数值型&#xff08;Numbers&#xff09;、字符串型&#xff08;Strings&#xff09;、布尔型&#xff08;Booleans&#xff09;、空值&#xff08;NoneType&#xff…

简记:机器学习中关于训练集和测试集的标准化问题

01 错误处理 对于标准化统一量纲问题&#xff0c;我之前一直是这么处理&#xff0c;我也从来没有意识到问题&#xff0c;这里记录一下&#xff1a; 错误处理&#xff1a;在未进行数据集划分之前&#xff0c;对所有特征项(X/因子项)进行标准化例如MinMaxScaler\Normalizer等方…