Docker运维高级容器技术知识点总结
1、虚拟机部署和容器化部署的区别是什么?
1、技术基础:
<1>.虚拟化技术在物理硬件上创建虚拟机,每台虚拟机运行自己完整的操作系统、从而实现资源隔离。
<2>.容器化技术:将应用程序打包在容器内,在进程空间上实现隔离。
2、资源效率和开销:
<1>.虚拟机比较占资源、导致资源使用率高。
<2>.容器共享宿主机操作内核、仅隔离程序进程。
3、隔离和安全性:
<1>.虚拟化:提供强大隔离性、提供高安全性,但资源占用率大。
<2>.容器化:虽然实现了隔离,但共享宿主内核,但是隔离性稍差。
2、什么是docker?什么是镜像、容器、仓库?
docker是一种开源平台,允许开发者将程序部署在容器中。可以部署在任何环境中,确保一致性和可移植性。
镜像是容器的模板,用来创建容器的。一个镜像可以创建出多个容器。
容器是用来运行各种应用程序、服务的。
仓库是用来存储镜像文件的地方。仓库分为公有仓库和私有仓库,存放了大量的镜像供用户下载
3、什么是docker容器?
docker容器是运行中的实例。
4、如何从dockerfile构建镜像?
使用docker build命令进行构建镜像。
docker build -t myimage:latest // -t用于指定镜像标签
5、如何运行一个docker?
使用docker run命令运行docker
docker run -d --name mycontainer myimage:latest
// 运行一个基于myimage:latest镜像的容器
6、如何查看正在运行的docker容器?
可以使用docker ps 命令进行查看。
如果要查看所有的容器,包括已经停止的docker ,可以使用
docker ps -a // 查看所有容器(包括已经停止的docker容器)
7、如何停止和删除一个容器?
使用docker stop 和 docker rm命令进行查看。
例如停止并删除mycontainer容器。
docker stop mycontainer // 停止使用mycontainer容器
docker rm mycontainer // 删除mycontainer容器。
8、Docker安装失败了如何进行排查?
1、检查系统是否满足Docker的安装要求。
2、在/var/log目录下进行查看日志
3、检查防火墙或云服务的安全组设置,确保Docker需要的端口没有被阻塞。
4、确保操作系统和所有软件包都是最新的,有时旧的软件包可能会导致安装问题。
5、尝试清理环境后重新安装
9、镜像管理
在dockers中镜像是容器的模板,当用户需要从Docker镜像中查找所需要的镜像。
1、查找镜像
docker search keyword(keyword表示要查找镜像所包含的关键词)
eg:要查找出包含mysql的关键词 // docker search mysql
2、下载镜像
查找到合适的镜像后,可以将其下载到本地计算机中,以便创建容器。
docker pull name:tag // name为镜像名称、tag参数指定镜像标签
eg:docker pull mysql // 将mysql镜像下载到本地计算机中
3、列出本地镜像
docker image ls // 列出本地镜像
docker images
4、删除镜像
对于当前系统中已经不需要的镜像,为了节省存储空间 。可以将其删除。
可以同时删除多个镜像,多个镜像名称使用空格进行隔开即可。
docker rmi image //image为镜像名称
docker rmi -f mysql //强行删除mysql镜像
5、查看镜像
对于下载到本地的镜像文件,可以使用docker inspect进行查看详细信息。
root@ubuntu-virtual-machine:/home/ubuntu# docker inspect mysql
6、构建镜像
构建docker镜像有两种方法:
1、docker commit命令进行构建
2、docker build 命令和Dockerfile文件进行构建,但是过程十分繁琐。因此一般我们使用docker commit进行构镜像。
3、使用docker commit进行构建镜像。
eg:在docker中进行创建数据库mysql并进行映射到主机的3306端口
1、在docker中创建数据库
docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
// --name 进行对容器进行命名
// -e 对创建的MySQL进行密码设置为123456 、账号为root
// -p 对docker创建的MySQL进行端口映射
// -d 后台运行容器
2、进入创建好的容器mysqltest中
docker exec -it mysqltest /bin/bash
// -i表示交互式,-t 表示分配一个虚拟终端。/bin/bash为要执行的命令。
3、进入交互式页面
mysql -uroot -p
password:123456 // 进入数据库
7、镜像标签管理
镜像标签可以区分不同的版本,镜像和标签之间可以使用冒号进行隔开。
docker提供了docker tag命令来设置镜像的标签。
docker tag httpd local/httpd // 将名称为httpd的镜像标识为local仓库的httpd
10、容器管理
容器是docker提供网络服务的主体,为了提供mysql,apache,nginx等网络服务,用户必须创建对应的容器。
在docker中常使用docker create 创建容器,但是创建的新容器处于停止状态。
另一种是通过docker run 创建新容器,但是容器会启动。
1、创建容器
docker create [option] image
用户可通过option为容器指定相应的选项。用来设置新的容器。
--add-host=[] //指定主机到IP地址之间的关系,格式为host:ip
--dns=[] //为容器指定域名服务器
-h //为容器指定主机名
-i //打开容器的标准输入
--name //指定容器名称
-u //创建用户
eg1:创建一个名为yunwei的容器
docker create yunwei
eg:创建一个名为yunwei的容器,创建之后立即启动该容器,并进入交互模式
root@ubuntu-virtual-machine:/home/ubuntu# docker run -it --name yunwei ubuntu /bin/bash
root@0dd80eac1c83:/# pwd
/
root@0dd80eac1c83:/# exit
root@ubuntu-virtual-machine:/home/ubuntu# docker run -d -it ubuntu /bin/bash
// 创建一个后台型容器
ec313748b83eeda0f07681480a27003616260b2f74566541ca8c3079f513b608
2、查看容器
docker ps //查看当前正在运行的容器
docker ps -a //查看当前系统中所有的容器,包括运行中的个处于停止状态的容器
有些容器的状态为Exited 表示已经停止运行
有些容器的状态为up 表示处于运行状态
有些容器的状态为Created 表示处于创建过,但是没有启用
查找某些特定的容器
docker ps -a -f name=crank // -f指定筛选条件
root@ubuntu-virtual-machine:/etc/docker# docker ps -a -f name=mysql
field=value //field表示name,image,以及status等字段docker ps -a --before=ubuntu //ubuntu容器之前所建的所有容器
docker ps -a --since=ubuntu //Ubuntu容器之后所建的所有容器
3、启动容器
通常使用docker start命令来进行启动容器。
使用docker restart命令来进行重启容器
使用docker stop 命令来进行停止容器
使用docker kill命令来强制终止容器
使用docker rm 命令来删除容器,加上-f参数就是强制删除容器。
11、网络管理
1、docker的网络原理
在docker安装完成后,宿主机中会创建一个虚拟网桥,通常情况下为docker 0。
网桥工作在OSI七层模型中的数据链路层,在docker中各个容器是通过一个名为docker 0的网桥进行转发流量实现互联的。
一般使用brctl show命令来查看虚拟网桥docker0的信息
root@ubuntu-virtual-machine:/home/ubuntu# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.024277a58ad4 no vethdb861c4
2、docker的网络模式
网络模式可以在创建容器时使用 --network选项来指定。
docker网络模式一共分为4种,分别是host,container,none,bridge。
host模式:容器不会获得一个独立的Network命名空间,而是和宿主机共用一个Network命名空间。容器将不会虚拟出 自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口。
container模式(容器模式):新创建的容器和已经存在的容器共享一个Network命名空间,和指定容器共用一个IP地址,端口范围 等。
none模式(无模式):docker拥有自己的Network命名空间,但是不为docker配置任何网络,需要我们自己手动添加网络配置。
bridge模式(桥接模式):bridge模式是docker默认的网络模式,此模式会为每一个容器分配一个Network命名空间,并将主机上的 docker容器连接到一个虚拟网桥上。
docker容器的网络互联:
// 创建第一个容器
root@ubuntu-virtual-machine:/home/ubuntu# docker run -d -it centos /bin/bash
394b4650ba5bfeacc9c86217f681b79ef79dcf663f65d3021b2312be1949b628
// 创建第二个容器
root@ubuntu-virtual-machine:/home/ubuntu# docker run -d -it centos /bin/bash
720e4167f96280673f5193f025cb75eaf303b972d7dca4ecc552ef0d5b11abf2
// 查看容器运行状态
root@ubuntu-virtual-machine:/home/ubuntu# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c521fb7136cc centos "/bin/bash" 6 seconds ago Up 5 seconds blissful_leakey
720e4167f962 centos "/bin/bash" 16 seconds ago Up 15 seconds youthful_diffie// 获取容器的IP地址
root@ubuntu-virtual-machine:/home/ubuntu# docker exec c521fb7136cc ip a show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.4/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
root@ubuntu-virtual-machine:/home/ubuntu# docker exec 720e4167f962 ip a show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
8: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
// ip地址分别为:172.17.0.4/16;172.17.0.3/16// 使用icmp协议ping命令查看是否可以通信
root@ubuntu-virtual-machine:/home/ubuntu# docker exec c521fb7136cc ping 172.17.0.4
PING 172.17.0.4 (172.17.0.4) 56(84) bytes of data.
64 bytes from 172.17.0.4: icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from 172.17.0.4: icmp_seq=2 ttl=64 time=0.021 ms
64 bytes from 172.17.0.4: icmp_seq=3 ttl=64 time=0.022 msroot@ubuntu-virtual-machine:/home/ubuntu# docker exec 720e4167f962 ping 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.016 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.022 ms
64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.021 ms// 由此可见两容器之间都可以进行通信
// 容器与外部网络的互联通信
root@ubuntu-virtual-machine:/home/ubuntu# docker exec 720e4167f962 ping www.baidu.com
PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.
64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=1 ttl=127 time=36.2 ms
64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=2 ttl=127 time=35.8 ms
12、Docker仓库
1、什么是Docker Hub?
Docker Hub是Docker提供的一项服务,帮助用户查找和共享容器镜像
2、Docker Hub的特点?
1、使用pull和push进行上传和拉取镜像。
docker pull从Docker Hub中进行拉取镜像到本地机器、创建容器进行使用。
docker push是将本地镜像上传到docker hub仓库,当对本地镜像进行修改之后想要分享给他人使用,可以使用
2、Docker官方镜像:提取并使用Docker提供的高质量容器镜像。
3、使用Docker Hub
答:1、使用Docker Hub和Docker Desktop进行镜像管理
2、使用docker login命令进行管理
13、Docker的数据管理
1、什么是数据卷?
数据卷是为一个或多个容器专门指定的目录。
特点:
1、可以在容器间共享和重用。
2、数据卷的数据改变可以直接修改
3、数据的改变不会包括在容器中
4、数据卷是持续的,直到没有容器使用。
2、如何创建数据卷?
docker提供volume进行管理数据卷
使用docker进行创建数据卷
docker volume create -d local volume_demo
// 创建一个volume_demo的数据卷
// 存在目录位于/var/lib/docker/volume路径下
使用docker inspect 命令可进行查看详细信息
3、数据卷的分类
在运行容器时可以通过指定-v 或 --mount参数来使用该Volume,并且可以依据数据卷类型不同挂在不同类型的数据卷。
在docker中数据卷分为三类:
volume普通数据卷,Bind绑定数据卷,tmpfs临时数据卷
volume普通数据卷:映射到特定位置:/var/lib/docker/volumes
Bind绑定数据卷:映射到主机的任意位置
tmpfs临时数据卷:只存在于内存中
查看运行的容器和数据卷信息
root@ubuntu-virtual-machine:/home/ubuntu# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ef9d2eed6a28 mysql "docker-entrypoint.s…" 36 minutes ago Up 36 minutes 3306/tcp, 33060/tcp mysqltest
1d65b1b42524 httpd "httpd-foreground" 3 hours ago Up 3 hours 0.0.0.0:80->80/tcp, :::80->80/tcp reverent_fermatroot@ubuntu-virtual-machine:/home/ubuntu# ls -al /var/lib/docker/volumes/
数据迁移
数据卷可以有效的进行数据备份,恢复,和迁移。
14、Docker日志
1、docker logs
作用:docker logs主要是用来进行查看日志
docker logs [options] container
// 可以通过子命令来查看具体某个容器的日志
docker logs container (此时看到的容器日志是静态的)
// 如果想要看到动态的容器日志,加上-f参数即可
docker logs -f container
docker logs命令选项
Options:
--details 显示提供给日志的其他详细信息
-f, --follow 跟踪日志输出
--since string 显示给定的时间戳 (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail string 从日志末尾显示n行的日志
-t, --timestamps 显示时间戳
--until string 显示给定的时间戳 (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
2、logging driver
docker允许我们从运行的容器中提取日志、这个机制就被称为logging driver
docker默认的logging driver文件格式为json-file
快速查看nginx的日志文件路径:
root@node:/home/ubuntu# docker inspect nginx_server | grep -i logpath
"LogPath": "/var/lib/docker/containers/1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008/1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008-json.log"root@node:/home/ubuntu# cd /var/lib/docker/containers/1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008/
root@node:/var/lib/docker/containers/1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008# ls
1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008-json.log checkpoints config.v2.json hostconfig.json hostname hosts mounts resolv.conf resolv.conf.hash
root@node:/var/lib/docker/containers/1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008# cat 1bcf7355d531834fd7d3b9cbf2408a897cb6756d205f0c12b46679e7a8677008-json.log
3、安装ELK日志监控系统
ELK是可以进行搜集、过滤、传输、存储以及实现多系统的组件日志进行集中管理,并且可以帮助运维人员进行线上业务的实时监控,以及业务异常的标准定位。
ELK优点:1、安全性、密钥库和访问控制。
2、可以进行管理日志和指标等
3、仪表盘和可视化界面
4、可以确定在哪里找到其他资源
1、采用docker方式进行部署
docker pull sebp/elk:640 // 下拉sebp/elk、640版本的镜像2、启动ELK服务
docker run -it --name=elk -p 5601:5601 -p 9200:9200 -p 5044:5044 -d sebp/elk:6403、浏览器访问ELK页面
http://192.168.159.131:56014、浏览器访问
http://192.168.159.131:9200 (查看API接口是否可用)
相关文章:

Docker运维高级容器技术知识点总结
1、虚拟机部署和容器化部署的区别是什么? 1、技术基础: <1>.虚拟化技术在物理硬件上创建虚拟机,每台虚拟机运行自己完整的操作系统、从而实现资源隔离。 <2>.容器化技术:将应用程序打包在容器内,在进程空间…...

react-quill 富文本组件编写和应用
index.tsx文件 import React, { useRef, useState } from react; import { Modal, Button } from antd; import RichEditor from ./RichEditor;const AnchorTouchHistory: React.FC () > {const editorRef useRef<any>(null);const [isModalVisible, setIsModalVis…...

LabVIEW轴承性能测试系统
本文介绍了基于LabVIEW的高效轴承性能测试系统的设计与开发。系统通过双端驱动技术实现高精度同步控制,针对轴承性能进行全面的测试与分析,以提高轴承的可靠性和寿命。 项目背景 随着工业自动化程度的提高,对轴承的性能要求越来越高。传统的…...

【《游戏编程模式》实战04】状态模式实现敌人AI
目录 1、状态模式 2、使用工具 3、状态模式适用范围 4、实现内容 5、代码及思路 Enemy.cs EnemyState.cs 6、unity里的设置 7、运行效果展示 1、状态模式 “允许一个对象在其内部状态改变时改变自身的行为。对象看起来好像是在修改自身类。” 就是一个对象能随着自己…...

借助免费GIS工具箱轻松实现las点云格式到3dtiles格式的转换
在当今数字化浪潮下,地理信息系统(GIS)技术日新月异,广泛渗透到城市规划、地质勘探、文化遗产保护等诸多领域。而 GISBox 作为一款功能强大且易用的 GIS 工具箱,以轻量级、免费使用、操作便捷等诸多优势,为…...

科研绘图系列:R语言科研绘图之标记热图(heatmap)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图系统信息参考介绍 科研绘图系列:R语言科研绘图之标记热图(heatmap) 加载R包 library(tidyverse) library(ggplot2) library(reshape)…...

【轻松学C:编程小白的大冒险】--- C语言简介 02
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【轻松学C:编程小白的大冒险】…...

《HeadFirst设计模式》笔记(上)
设计模式的目录: 1 设计模式介绍 要不断去学习如何利用其它开发人员的智慧与经验。学习前人的正统思想。 我们认为《Head First》的读者是一位学习者。 一些Head First的学习原则: 使其可视化将文字放在相关图形内部或附近,而不是放在底部…...

数据结构:ArrayList与顺序表
目录 📖一、什么是List 📖二、线性表 📖三、顺序表 🐬1、display()方法 🐬2、add(int data)方法 🐬3、add(int pos, int data)方法 🐬4、contains(int toFind)方法 🐬5、inde…...

SpringBoot之核心配置
学习目标: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件属性值注入 3.熟悉Spring Boot自定义配置 4.掌握Profile多环境配置 5.了解随机值设置以及参数间引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…...

EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端
产品需求: 前端上传个csv 或 excel 文件,文件共4列,验证文件大小,类型,文件名长度,文件内容,如果某行某个单元格数据验证不通过,就把错误信息放到这行第五列,然后把带有…...
单片机软件定时器V4.0
单片机软件定时器V4.0 用于单片机定时执行任务等,比如LED GPIO等定时控制,内置前后台工作模式 头文件有使用例子 #ifndef __SORFTIME_APP_H #define __SORFTIME_APP_H#ifdef __cplusplus extern "C" { #endif#include <stdint.h>// #…...

超完整Docker学习记录,Docker常用命令详解
前言 关于国内拉取不到docker镜像的问题,可以利用Github Action将需要的镜像转存到阿里云私有仓库,然后再通过阿里云私有仓库去拉取就可以了。 参考项目地址:使用Github Action将国外的Docker镜像转存到阿里云私有仓库 一、Docker简介 Do…...
C++ 入门第26天:文件与流操作基础
往期回顾: C 入门第23天:Lambda 表达式与标准库算法入门-CSDN博客 C 入门第24天:C11 多线程基础-CSDN博客 C 入门第25天:线程池(Thread Pool)基础-CSDN博客 C 入门第26天:文件与流操作基础 前言…...
使用python将多个Excel表合并成一个表
import pandas as pd# 定义要合并的Excel文件路径和名称 file_paths [file1.xlsx, file2.xlsx, file3.xlsx, file4.xlsx, file5.xlsx]# 创建一个空的DataFrame来存储合并后的数据 merged_data pd.DataFrame()# 循环遍历每个Excel文件,并读取其中的数据 for file_p…...
halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
目录 一、find_shape_model_3d_recompute_score例程代码二、set_object_model_3d_attrib_mod函数三、prepare_object_model_3d 函数四、create_cube_shape_model_3d函数五、获得CamPose六、project_cube_image函数七、find_shape_model_3d函数八、project_shape_model_3d函数 一…...

vue js实现时钟以及刻度效果
2025.01.08今天我学习如何用js实现时钟样式,效果如下: 一、html代码如下: <template><!--圆圈--><div class"notice_border"><div class"notice_position notice_name_class" v-for"item in …...

unity学习15:预制体prefab
目录 1 创建多个gameobject 2 创建prefab 2.1 创建prefab (类) 2.2 prefab 是一个文件 2.3 prefab可以导出 3 创建prefab variant (子类) 3.1 除了创建多个独立的prefab, 还可以创建 prefab variant 3.2 他…...

基于Thinkphp6+uniapp的陪玩陪聊软件开发方案分析
使用uni-app框架进行前端开发。uni-app是一个使用Vue.js开发所有前端应用的框架,支持一次编写,多端发布,包括APP、小程序、H5等。 使用Thinkphp6框架进行后端开发。Thinkphp6是一个轻量级、高性能、面向对象的PHP开发框架,具有易…...
MySQL - 子查询和相关子查询详解
在SQL中,子查询(Subquery)和相关子查询(Correlated Subquery)是非常强大且灵活的工具,可以用于执行复杂的数据检索和操作。它们允许我们在一个查询中嵌套另一个查询,从而实现更复杂的逻辑和条件…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...