docker总结,一套搞定,常用命令,项目部署,jar包打包成镜像/容器

news2024/10/6 12:19:38

docker 归总

一、学习路线

1、学习视频(黑马程序员)

(https://www.bilibili.com/video/BV1HP4118797/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=6acc7ed97919d92de048f2b1e5803427)

2、文档

安装文档:(https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d)

学习文档:(https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec)

二、安装

1.卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

2.配置Docker的yum库

首先要安装一个yum工具

yum install -y yum-utils

安装成功后,执行命令,配置Docker的yum源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.安装Docker

最后,执行命令,安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.启动和校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

5.配置镜像加速

具体命令如下:

# 创建目录
mkdir -p /etc/docker

# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

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

三、项目部署

1、创建网络

docker network create pxh

2、安装底座(MySQL、Redis)

(1)安装mysql
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=pxh123456 \
  -v /docker/mysql/data:/var/lib/mysql \
  -v /docker/mysql/conf:/etc/mysql/conf.d \
  -v /docker/mysql/init:/docker-entrypoint-initdb.d \
  --network pxh \
  mysql:5.7.36

上面使用的MySQL是8的,如果需要5的版本,请改成:8.0.31

以上数据库的密码为pxh123456,如需变更,请修改

以上网桥为pxh,如需变更,请修改

挂载的配置文件: pan.cnf

[client]
#设置客户端默认字符集utf8mb4
default-character-set=utf8mb4
[mysql]
#设置服务器默认字符集为utf8mb4
default-character-set=utf8mb4
[mysqld]
#配置服务器的服务号,具备日后需要集群做准备
server-id = 1
#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
log-bin=mysql-bin
#设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满
expire_logs_days=30
#解决MySQL8.0版本GROUP BY问题
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
#允许最大的连接数
max_connections=1000
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 设置东八区时区
default-time_zone = '+8:00'
(2) 安装redis
docker run \
--restart=always \
--log-opt max-size=100m \
--log-opt max-file=5 \
-p 6379:6379 \
--name redis \
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf  \
-v /usr/local/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes
# --requirepass pxh123456 

以上代码中不包含网络配置,如需网络配置,可以尝试添加

--network pxh \

如需设置redis密码:可以加入:

--requirepass pxh123456 

挂载的配置文件: redis.conf ,配置文件中包含密码设置

# Redis服务器配置 
 
# 绑定IP地址
#解除本地限制 注释bind 127.0.0.1  
#bind 127.0.0.1  
 
# 服务器端口号  
port 6379 
 
#配置密码,不要可以删掉
requirepass pxh123456
  
 
 
#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no
 
#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid  
 
#默认为no,redis持久化,可以改为yes
appendonly yes
 
 
#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300
 
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000
 
# 按需求调整 Redis 线程数
tcp-backlog 511
 
 
# 设置数据库数量,这里设置为16个数据库  
databases 16
 
 
# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
 
 
# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128
 
 
# 是否记录系统日志,默认为yes  
syslog-enabled yes  
 
#指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice
  
# 日志输出文件,默认为stdout,也可以指定文件路径  
logfile stdout
 
# 日志文件
#logfile /var/log/redis/redis-server.log
 
 
# 系统内存调优参数   
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

3、创建jar包镜像和容器

(1)配置启动文件 Dockerfile

​ 文件: Dockerfile

​ 文件内容:

# 基础镜像
FROM openjdk:17
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY ***.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

基础镜像可以选择相对应得Java版本,可以为:openjdk:8

***.jar 为你需要创建镜像得jar包名

启动配置文件名必须是: Dockerfile

配置文件和jar包放在同一个文件夹下。

在这里插入图片描述

(2)创建镜像
docker build -t jarsxweb-nacos .

jarsxweb-nacos 为你创建的镜像名称

执行这条命令之前先 cd 到你文件夹的目录下

(3)创建容器
docker run -d --name jarsxweb-nacos --network pxh \
-p 8016:8848 \
-v /docker/nacos/conf/application.properties:/root/nacos/conf/application.properties \
 jarsxweb-nacos

如有配置文件:application.properties nacos的配置文件:

注意修改数据库账号密码:

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
spring.datasource.platform=mysql
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=1
db.url.0=jdbc:mysql://mysql:3306/herefly-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=pxh123456
### The auth system to use, currently only 'nacos' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}


### The token expiration in seconds:
nacos.core.auth.default.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}

### The default token:
nacos.core.auth.default.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}

### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:serverIdentity}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:security}
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
# default current work dir
server.tomcat.basedir=
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false

nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true

4、安装Nginx镜像和容器

docker run -d \
  --name nginx \
  -p 806:806 \
  -p 807:807 \
  -v /docker/nginx/html:/usr/share/nginx/html \
  -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
  -v /docker/nginx/cert:/etc/nginx/cert \
  --network sxweb \
  nginx:1.24.0

cert : 域名配置文件

html: 项目路径

nginx.conf 配置文件 : nginx.conf

这里要注意因为在docker网桥中没有分配localhost和127.0.0.1,因此,在涉及到IP访问时,如需要访问本地,请使用容器名称

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    # 限制body大小
    client_max_body_size 100m;

    server {
        listen       806;

        # https配置参考 start
        #listen       443 ssl;

        # 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径
        #ssl on;
        #ssl_certificate      /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改
        #ssl_certificate_key  /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改
        #ssl_session_timeout 5m;
        #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #ssl_prefer_server_ciphers on;


        # 限制外网访问内网 actuator 相关路径 
        location ~ ^(/[^/]*)?/actuator(/.*)?$ {
            return 403;
        }
	
	# 前台
	# 页面
 	location /front {
            alias /usr/share/nginx/html/sxweb/front; # docker映射路径 不允许更改
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
	# 访问地址
 	location /api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # websocket参数
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://jarsxweb-gateway:8080/;
        }



	# 后台
	# 页面
        location / {
            root   /usr/share/nginx/html/sxweb/dist; # docker映射路径 不允许更改
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
	# 文件上传
	 location /proxy/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # websocket参数
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://jarsxweb-gateway:8080/;
        }
	# 文件映射
 	location /resource/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # websocket参数
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://jarsxweb-gateway:8080/resource/;
        }
	# 系统模块
 	 location /monitor/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # websocket参数
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://jarsxweb-gateway:8080/monitor/;
        }
	# 内容管理模块
	 location /cms/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # websocket参数
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://jarsxweb-gateway:8080/cms/;
        }
	# 系统模块
	 location /system/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # websocket参数
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://jarsxweb-gateway:8080/system/;
        }
	# 认证中心
	 location /auth/ {
            	proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size 10m;
		client_body_buffer_size 128k;
		proxy_connect_timeout 20;
		proxy_send_timeout 30;
		proxy_read_timeout 30;
		proxy_buffer_size 4k;
		proxy_buffers 4 32k;
		proxy_busy_buffers_size 64k;
		proxy_temp_file_write_size 64k;
            	proxy_pass http://jarsxweb-gateway:8080/auth/;
        }

	

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

四、常用代码

1、网络

命令说明
docker network create 网络名创建一个网络
docker network ls查看所有网络
docker network rm 网络名删除指定网络
docker network prune清除未使用的网络
docker network connect 网络名 容器名使指定容器连接加入某网络
docker network disconnect 网络名 容器名使指定容器连接离开某网络
docker network inspect 网络名查看网络详细信息

2、创建mysql

docker run -d \
  --name mysql \
  -p 3307:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=sx123456 \
  -v /docker/mysql/data:/var/lib/mysql \
  -v /docker/mysql/conf:/etc/mysql/conf.d \
  -v /docker/mysql/init:/docker-entrypoint-initdb.d \
  --network sxweb \
  mysql:5.7.36

修改密码:
修改挂载的.cnf文件,添加无密码模式
在这里插入图片描述

skip-grant-tables

重启MySQL服务

service mysql restart

接着就可以免密登录了:敲入

mysql -u root -p 密码

修改密码

use mysql
update user set authentication_string=password("你的密码") where user="root"; 
flush privileges;

退出mysql,重启MySQL服务

quit
service mysql restart

3、创建redis

docker run \
--restart=always \
--log-opt max-size=100m \
--log-opt max-file=5 \
-p 16379:6379 \
--name redis \
-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf  \
-v /docker/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes

4、镜像容器常用命令

命令说明
docker pull拉取镜像
docker images / dis查看本地镜像
docker rmi删除本地镜像
docker run创建并运行容器(不能重复创建)
docker stop停止指定容器
docker start启动指定容器
docker restart重新启动容器
docker rm删除指定容器
docker ps / dps查看容器
docker logs查看容器运行日志
docker exec -it 容器名 bash进入容器
docker save保存镜像到本地压缩文件
docker load加载本地压缩文件到镜像
docker inspect 容器名查看容器详细信息

5、docker启动、重启、关闭、开机自启

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

6、防火墙

#关闭防火墙命令:
systemctl stop firewalld

#查看防火墙状态
systemctl status firewalld

#查看所有永久开放的端口(默认为空)
firewall-cmd --list-ports --permanen

#在防火墙中,添加开放端口命令:
firewall-cmd --add-port=8888/tcp --permanent

#关闭永久端口
firewll-cmd --remove-port=80/tcp --permanent

#重载命令并重启防火墙以生效配置
firewall-cmd --reload
systemctl restart firewalld

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

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

相关文章

python爬虫反反爬之图片验证

文章目录 发现宝藏一、ddddOcr&#xff08;针对图形验证码&#xff09;1. 工具介绍2. 安装及环境支持3. 识别示例14. 识别示例2 二、Tesseract&#xff08;标准OCR识别&#xff09;1. 工具介绍2. 配置系统环境3. 识别示例14. 识别示例23. 识别示例3 发现宝藏 前些天发现了一个…

C++ 队列

目录 队列的应用场景 1、429. N 叉树的层序遍历 2、 103. 二叉树的锯齿形层序遍历 3、662. 二叉树最大宽度 4、515. 在每个树行中找最大值 队列的应用场景 广度优先搜索&#xff08;BFS&#xff09;&#xff1a;队列是广度优先搜索算法的核心数据结构。在BFS中&#xff…

如何将应用一键部署至多个环境?丨Walrus教程

在 Walrus 平台上&#xff0c;运维团队在资源定义&#xff08;Resource Definition&#xff09;中声明提供的资源类型&#xff0c;通过设置匹配规则&#xff0c;将不同的资源部署模板应用到不同类型的环境、项目等。与此同时&#xff0c;研发人员无需关注底层具体实现方式&…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…

你必须要知道外贸独立站的那些事

导语 独立站&#xff0c;顾名思义就是具有独立域名的网站。对于跨境电商来说&#xff0c;独立站就是让他们脱离第三方束缚的一个平台。 简单来说就是自己建立一个属于自己的电商平台&#xff0c;然后上传商品出售&#xff0c;但是需要自己去做营销、做推广。 一、自建独立站的好…

运维工具之ventoy安装及使用简介

一、Ventoy简介 简单来说&#xff0c;Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘&#xff0c;你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了&#xff0c;无需其他操作。你可以一次性拷贝很多个不同类型的镜像文…

Redis核心数据结构之跳跃表

跳跃表 概述 跳跃表(skiplist)是一种有序数据结构&#xff0c;它通过在每个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找&#xff0c;还可以通过顺序性操作来批量处理节点。在大部分情况下&am…

基于PHP构建的HTML5点餐系统的设计13.91

随着互联网时代的发展&#xff0c;人们的生活方式正在发生改变。传统的餐饮行业也正在发生变革。人们不再满足过去的点餐方式&#xff0c;需要更好的体验。本课题旨在结合点餐系统的技术优势&#xff0c;设计一个能够方便顾客与商家&#xff0c;并且节约人力成本以及可以很好地…

访问一次网站的全过程

目录 流程图&#xff1a; 一、应用层开始 1. 在浏览器输入https://www.baidu.com 2. DNS获取IP地址 3. 根据HTTP协议生成HTTP请求报文 应用层结束 二、传输层开始 4. TCP三次握手 传输层结束 三、网络层开始 5. IP寻址 6. ARP协议获取MAC地址 网络层结束 四、数据…

Modified Bessel Function of the First Kind

Abstract 最近接触到 von Mises–Fisher distribution, 其概率密度如下: f p ( x ; μ , κ ) κ p 2 − 1 ( 2 π ) p 2 I p 2 − 1 ( κ ) e κ μ ⊺ x \begin{aligned} f_{p}(\bm{x}; \bm{\mu}, \kappa) \frac{\kappa^{\frac{p}{2}-1}} {(2\pi)^{\frac{p}{2}} I_{\frac…

linux系统下,配置开机自启脚本常见的5种方法

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属的专栏:linux基础与进阶,shell脚本编写实战 景天的主页:景天科技苑 文章目录 linux下设置开机自动运行脚本的5种方法一、编辑/etc/rc.d/rc.local文件1、在自己需要启动的文件目录中编写一个…

CPU独占内核运行方式实现,并指定线程到特定CPU上执行

CPU独占内核运行方式实现&#xff0c;并指定线程到特定CPU上执行1. 隔离指定的CPU,避免其余线程run在被隔离的CPU上2. 绑定所有的interrupts&#xff08;中断&#xff09;到非隔离的CPU上,避免被隔离的CPU收到interrupt.3. C绑定线程运行在指定CPU也可以通过taskset来使线程/进…

一文详解WebView,不好理解就想想iframe,类比后秒懂了。

Hi&#xff0c;我是贝格前端工场&#xff0c;又到了给大家做技术扫盲的时候&#xff0c;本文讲一讲webview&#xff0c;有些老铁觉得很难懂&#xff0c;其实借助iframe来中转一下&#xff0c;就好理解了。 WebView是一种用于在应用程序中显示Web内容的组件。它可以嵌入到应用程…

免费、好用、强大的轻量级笔记软件评测

在我们不断寻找能提高个人和团队效率的工具的过程中&#xff0c;优质的笔记软件扮演着至关重要的角色。本文将介绍几款经过精选的免费且功能强大的笔记应用&#xff0c;这些应用不仅适合个人记录和整理思维&#xff0c;也适合团队合作和信息共享。 Joplin —— 隐私保护的开源…

京东按关键字搜索商品 API 返回值说明

京东按关键字搜索商品的API返回值说明如下&#xff1a; 总记录数&#xff08;total_count&#xff09;&#xff1a;搜索结果的总数量。当前页码&#xff08;page_no&#xff09;&#xff1a;当前请求的页码。每页记录数&#xff08;page_size&#xff09;&#xff1a;每页显示…

蓝桥杯倒计时 36天-DFS练习

文章目录 飞机降落仙境诅咒小怂爱水洼串变换 飞机降落 思路&#xff1a;贪心暴搜。 #include<bits/stdc.h>using namespace std; const int N 10; int t,n; //这题 N 比较小&#xff0c;可以用暴力搜搜复杂度是 TN*N! struct plane{int t,d,l; }p[N]; bool vis[N];//用…

Elasticsearch:机器学习与人工智能 - 理解差异

作者&#xff1a;来自 Elastic Aditya Tripathi, Jessica Taylor 长期以来&#xff0c;人工智能几乎完全是科幻小说作家的玩物&#xff0c;人类将技术推得太远&#xff0c;以至于它变得活跃起来 —— 正如好莱坞让我们相信的那样 —— 开始造成严重破坏。 令人愉快的东西&#…

保护图纸不能打印,加密图纸如何加密只能看,不能打印复制

图纸是表达设计思想、传递产品信息、交流产品构思的最重要的工具&#xff0c;是企业中最重要的技术资料。 图纸作为企业重要的技术资料&#xff0c;包含了产品的核心设计、制造工艺、材料选择等关键信息。 那么&#xff0c;如何才能保护图纸呢&#xff1f; 首先&#xff0c;我…

Covalent(CQT)降低数据可用性成本,加快 Layer2 在 Web3 领域的扩张

Covalent Network&#xff08;CQT&#xff09;通过其统一 API&#xff0c;正在为 EVM Layer2 生态系统提供支持&#xff0c;减少了开发者需要导航多个数据供应商的需求&#xff0c;通过解决多链环境中的碎片化挑战&#xff0c;极大地提高了他们的效率。 通过其统一 API 支持 2…