初识Docker及管理Docker
Docker部署
- 初识Docker
- Docker是什么
- Docker的核心概念
- 镜像
- 容器
- 仓库
- 容器优点
- 容器在内核中支持2种重要技术:
- Docker容器与虚拟机的区别
- 安装Docker
- 源码安装
- yum安装
- 检查Docker
- Docker 镜像操作
- 配置镜像加速器(阿里系)
- 搜索镜像
- 获取镜像
- 查看镜像信息
- 镜像本地存储
- 添加新的镜像名或标签
- 删除镜像
- 存储镜像:将镜像保存成为本地文件
- 导入镜像:将本地镜像文件导入到镜像库中
- Docker 容器操作
- 容器的创建
- 启动容器
- 查看容器的运行状态
- 查看容器详细信息
- 停止容器
- 删除容器
- 创建并启动容器
- 登录容器
- 复制宿主机文件到容器中
- 复制容器文件到宿主机中
- Docker Run 的启动过程
- docker网络模式
- Docker 的网络模式
- host模式
- 命令格式:
- container模式
- 命令格式:
- none模式
- 命令格式:
- bridge模式
- 命令格式:
- 自定义网络
- 命令格式:
- 查看docker网络列表
- 资源限制
- CPU限制
- 设置单个容器进程能够使用的CPU使用率上限
- 针对新建的容器
- 针对已存在的容器
- 设置多个容器的CPU占用比份额
- 设置容器绑定指定的CPU
- 内存限制
- 设置容器能够使用的内存和swap的上限
- 磁盘IO限制
初识Docker
Docker是什么
Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。
Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。
Docker的核心概念
镜像
创建容器的基础,是一个只读的模板文件,里面包含运行容器中的应用程序所需要的所有资料。
所有资料
应用程序执行文件、配置文件、动态库文件、依赖包、系统文件和目录等
容器
用镜像运行的实例,容器可以被创建、启动、停止、删除,每个容器之间默认是相互隔离的
仓库
是用来集中保存镜像的地方,有公有仓库和私钥仓库之分
容器优点
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:可以即时部署更新和升级。
- 便携式:可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:可以增加并自动分发容器副本。
- 可堆叠:可以垂直和即时堆叠服务。
容器在内核中支持2种重要技术:
Docker容器本质就是宿主机的一个进程,Docker容器是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g,只有当需要修改时才复制一份数据)。
Docker容器与虚拟机的区别
docker容器 | 虚拟机 |
---|---|
所有容器共享宿主机的内核 | 每个虚拟机都有独立的操作系统和内核 |
通过namespace实现资源隔离,通过cgroup实现限制资源的最大使用量 | 完全隔离。每个虚拟机都有独立的硬件资源分配 |
秒级启动速度 | 分钟级启动速度 |
容器相当于宿主机的进程,性能几乎没有损耗 | 需要通过hypervisor虚拟机管理程序对宿主机资源虚拟访问 |
一个宿主机可以启动成百上千个容器 | 最多几十个虚拟机 |
- 虚拟机
- Docker
安装Docker
源码安装
#推荐使用国内的阿里镜像作为下载源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装所需的docker安装包
yum install -y yum-utils device-mapper-persistent-data lvm2#安装docker的社区版本
yum install docker-ce#检查docker的是否安装成功
docker -v#开启docker服务并设置开机自启动
systemctl enable --now docker.service
yum安装
dockerk源码包下载地址
cd /opt# 上传压缩包并解压
tar xf docker-20.10.9.tgz#将包下面的文件拷贝到 /usr/bin目录
mv docker/* /usr/bin# 查看是否安装成功
docker -v#添加docker的系统启动服务
cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target
EOF#开启docker服务并设置开机自启动
systemctl enable --now docker.service
检查Docker
docker info [root@cgs-1 ~]# docker info
Client:Context: defaultDebug Mode: falseServer:Containers: 0 # 容器数量Running: 0Paused: 0Stopped: 0Images: 0 # 镜像数量Server Version: 20.10.9 # server 版本Storage Driver: overlay2 # docker 使用的是 overlay2 文件驱动Backing Filesystem: xfs # 宿主机上的底层文件系统Supports d_type: trueNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: cgroupfs # Cgroups 驱动Cgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 5b46e404f6b9f661a205e28d59c982d3634148f8runc version: v1.0.2-0-g52b36a2dinit version: de40ad0Security Options:seccompProfile: defaultKernel Version: 3.10.0-1160.119.1.el7.x86_64 # 宿主机的相关信息Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 2Total Memory: 3.682GiBName: cgs-1ID: 34JI:HKWX:RBLR:BZWN:YKAL:64XR:GWPB:S5YZ:XVPX:WQH5:QA5T:N2FNDocker Root Dir: /var/lib/docker # docker 数据存储目录Debug Mode: falseRegistry: https://index.docker.io/v1/ # registry 地址Labels:Experimental: falseInsecure Registries:127.0.0.0/8Live Restore Enabled: falseProduct License: Community Engine
Docker 镜像操作
配置镜像加速器(阿里系)
#获取进行注册阿里云账号,阿里云会根据用户信息通过不同的个人docker镜像源#浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://{your_id}.mirror.aliyuncs.com"]
}
EOFsystemctl daemon-reloadsystemctl restart docker#检查docker
docker info····Registry Mirrors: # 加速站点https://{your_id}.mirror.aliyuncs.com/Live Restore Enabled: false
搜索镜像
- 格式:
docker search [关键字]
- 例:搜索nginx的镜像
docker search nginx
获取镜像
- 格式:
docker pull <仓库名称:标签>
如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。
- 例:下载nginx的镜像默认标签
docker pull nginx
查看镜像信息
-
格式:
docker images [选项]#常用选项: #-q 表示仅显示镜像ID
-
例:查看本地镜像列表
docker images
镜像本地存储
Docker 相关的本地资源存放在 /var/lib/docker/ 目录下
其中containers 目录存放容器信息,image 目录存放镜像信息,overlay2 目录下存放具体的镜像底层文件。
#查看下载的镜像文件信息
cat /var/lib/docker/image/overlay2/repositories.json
添加新的镜像名或标签
- 格式:
docker tag <名称:标签> <新名称:新标签>
- 例:使用原来的nginx的"laster"镜像创建“new”
docker tag nginx:latest nginx:new
删除镜像
- 格式:
docker rmi <仓库名称:标签> [选项] 或 docker rmi <镜像ID号> [选项]#常用选项: #-f 表示强制删除#注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。
- 例:删除nginx:laster
docker rmi nginx:latest
存储镜像:将镜像保存成为本地文件
- 格式:
docker save -o <镜像文件路径> <镜像名或镜像ID>
- 例:存储镜像nginx:new命名为nginx-1存在/opt/nfs目录下
docker save -o /opt/nfs/nginx-1 nginx:new
导入镜像:将本地镜像文件导入到镜像库中
- 格式:
docker load < <镜像文件路径> 或 docker load -i <镜像文件路径>
- 例:
docker load -i /opt/nfs/nginx-1
Docker 容器操作
容器的创建
- 格式:
docker create [-i -t] [--name 容器名] <镜像名:标签> [容器启动命令]常用选项: -i:让容器开启标准输入接受用户输入命令 -t:让Docker分配一个伪终端tty -it :合起来实现和容器交互的作用,运行一个交互式会话shell --name : 指定容器名
- 例:创建名为nginx-1.20的镜像
docker create -it --name nginx-1.20 nginx:1.20 /bin/bash
启动容器
- 格式:
docker start <容器名或容器ID>
- 例:启动nginx-1.20
docker start nginx-1.20
查看容器的运行状态
- 格式:
docker ps -a
- 例:查看所有的容器的运行情况
docker ps -a
查看容器详细信息
- 格式:
docker inspect <容器名或容器ID>
- 例:查看容器nginx-1.20的详细情况
docker inspect nginx-1.20
停止容器
- 格式:
docker stop <容器名或容器ID> [-t 等待时间] #停止容器,发送 SIGTERM 信号 #默认等待10s 或 docker kill <容器名或容器ID>#停止容器,默认发送 SIGKILL 信号
- 例:停止容器nginx-1.20
docker stop nginx-1.20
删除容器
- 格式:
docker rm <容器名或容器ID> [选项] #常用选项: #-f 表示强制删除
- 例:删除容器nginx-1.20
docker rm nginx-1.20
创建并启动容器
- 格式:
docker run [-i -t] [--name 容器名] <镜像名:标签> [容器启动命令]
- 例:创建并启动nginx-1.20
docker run -it --name nginx-1.20 nginx:1.20 /bin/bash
登录容器
- 格式:
docker exec -it <容器名或容器ID> sh|bash
- 例:登录容器nginx-1.20
docker exec -it nginx-1.20 bash
复制宿主机文件到容器中
- 格式:
docker cp <宿主机文件路径 ><容器名或容器ID:绝对路径>
- 例:将宿主机内/opt/docker-20.10.9.tgz文件复制到容器nginx-1.20的/opt目录中
docker cp /opt/docker-20.10.9.tgz nginx-1.20:/opt
复制容器文件到宿主机中
- 格式:
docker cp <容器名或容器ID:绝对路径> <宿主机文件路径 >
- 例:将容器nginx-1.20的/opt/zhuzhu.txt文件复制到宿主机的/opt目录中
docker cp nginx-1.20:/opt/zhuzhu.txt /opt
Docker Run 的启动过程
- 检查本地是否有指定镜像,如果有则直接使用本地镜像创建容器,如果没有则从仓库拉取镜像再创建容器
- 在只读的镜像层上再挂载一层可读可写的容器层
- 从docker网桥给容器分配一个虚拟接口和IP地址
- 使用镜像的默认启动命令或docker run 指定的命令来启动容器,直到容器中的PID=1的主进程退出为止
docker网络模式
Docker 的网络模式
- Host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
- Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
- None:该模式关闭了容器的网络功能。
- Bridge:默认为该模式,此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及iptables nat 表配置与宿主机通信。
- 自定义网络
命令格式:
docker run [--network=网络模式] ....
host模式
相当于Vmware中的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。
Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。
一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、iptable规则等都与其他的Network Namespace隔离。 一个Docker容器一般会分配一个独立的Network Namespace。 但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口。
命令格式:
docker run --network=host ....
container模式
这个模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。
新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。
命令格式:
docker run --network=container:容器名或容器ID ....
none模式
使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。 也就是说,在这个网络模式下的Docker容器没有网卡、IP、路由等信息。这种网络模式下容器只有lo回环网络,没有其他网卡。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。
命令格式:
docker run --network=none ....
bridge模式
bridge模式是docker的默认网络模式,不用–net参数,就是bridge模式。
相当于Vmware中的 nat 模式,容器使用独立network Namespace,并连接到docker0虚拟网卡。通过docker0网桥以及iptables nat表配置与宿主机通信,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的 Docker 容器连接到一个虚拟网桥上。
命令格式:
docker run [--network=bridge] ....
自定义网络
可以用来自定义创建一个网段、网桥、网络模式,还可以实现使用自定义网络指定容器IP来创建容器
命令格式:
#创建自定义网络
docker network create --subnet=<自定义网段> --opt "com.docker.network.bridge.name"="<自定义网桥名>" <自定义网络模式名> docker run --network=<自定义网络模式名> --ip=<自定义容器IP> ....
查看docker网络列表
- 格式:
docker network ls或docker network list
资源限制
CPU限制
设置单个容器进程能够使用的CPU使用率上限
针对新建的容器
- 格式:
docker run [参数]
- 参数
--cpu-period=<单个CPU的调度周期时间(1000~1000000) >--cpu-quota=<容器进程能够使用的最大CPU时间(>=1000,<=调度周期时间)>
针对已存在的容器
修改 /sys/fs/cgroup/cpu/docker/容器ID/ 目录下的 cpu.cfs_period_us(单个CPU的调度周期时间) cpu.cfs_quota_us(容器进程能够使用的最大CPU时间) 这两个文件的值
设置多个容器的CPU占用比份额
- 格式:
docker run [参数]
- 参数
--cpu-shares=<容器进程最大占用的CPU份额(值为1024的倍数)>
设置容器绑定指定的CPU
- 格式:
docker run [参数]
- 参数
-
--cpuset-cpus CPUID[,CPUID2,....]
内存限制
设置容器能够使用的内存和swap的上限
- 格式:
docker run [参数]
- 参数
-m=<内存值> --memory-swap=<内存和swap的总值>--memory-swap==<0或不设置,表示容器的swap为内存的2倍>--memory-swap==<-1,表示不限制swap的值,宿主机有多少swap,容器就可使用多少>
磁盘IO限制
- 格式:
docker run [参数]
- 参数
--device-read-bps 磁盘设备文件路径:速率 #限制容器在磁盘上每秒读的数据量 --device-write-bps 磁盘设备文件路径:速率 #限制容器在磁盘上每秒写的数据量 --device-read-iops 磁盘设备文件路径:次数 #限制容器在磁盘上每秒读的次数 --device-write-iops 磁盘设备文件路径:次数 #限制容器在磁盘上每秒写的次数
相关文章:

初识Docker及管理Docker
Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术:Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器(阿里系)搜索镜像获取镜像查看镜像信息…...

【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)
2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…...

在golang中Sprintf和Printf 的区别
最近一直在学习golang这个编程语言,我们这里做一个笔记就是 Sprintf和Printf 的区别 fmt.Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。 fmt.Printf 根据格式化参数生成格式化的字符串并写入标准输出。由上面就可以知道,fmt.Sprintf返回的…...

策略模式原理与C++实现
定义 定义一些列算法,把他们一个个封装起来,并且使他们可以相互替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)。 C实现 在不考虑策略模式的情况…...

打包一个自己的Vivado IP核
写在前面 模块复用是逻辑设计人员必须掌握的一个基本功,通过将成熟模块打包成IP核,可实现重复利用,避免重复造轮子,大幅提高我们的开发效率。 接下来将之前设计的串口接收模块和串口发送模块打包成IP核,再分别调用…...

《昇思25天学习打卡营第05天|qingyun201003》
日期 心得 通过本节课的学习,学习到了通过网络获取数据集,处理数据集模型。数据模型层数据变换,模型参数解析和其对应代码中的API进行解析。 昇思MindSpore 基础入门学习 网络构建 (AI 代码解析) 网络构建 神经网络模型是由神经网络层和T…...

【Leetcode】二十一、前缀树 + 词典中最长的单词
文章目录 1、背景2、前缀树Trie3、leetcode208:实现Trie4、leetcode720:词典中最长的单词 1、背景 如上,以浏览器搜索时的自动匹配为例: 如果把所有搜索关键字放一个数组里,则:插入、搜索一个词条时&#x…...

秋招Java后端开发冲刺——Mybatis使用总结
一、基本知识 1. 介绍 MyBatis 是 Apache 的一个开源项目,它封装了 JDBC,使开发者只需要关注 SQL 语句本身,而不需要再进行繁琐的 JDBC 编码。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java POJO(Plain …...

怎么压缩视频文件?简单的压缩视频方法分享
视频已成为我们日常生活中不可或缺的一部分。但随着视频质量的提高,文件大小也逐渐成为我们分享的阻碍。如何有效压缩视频文件,使其既能保持清晰,又能轻松分享?今天,给大家分享五种实用的视频压缩方法,快来…...
【Oracle】Oracle语法之递归查询
目录 递归查询使用场景备注 语法相关属性解释 案例基本使用升级版-带上递归查询的属性 总结: 递归查询 Oracle的递归查询是指在一个查询语句中使用自引用的方式进行循环迭代查询。它可以用于处理具有层次结构的数据,如组织架构、产品类别等。递归查询通…...

【教程】Vue2中使用svg矢量图
1.npm导包 npm i svg-sprite-loader --save2.创建目录放入svg文件,创建SvgIcon.js 3.SvgIcon.js const req require.context(./svg, false, /\.svg$/) const requireAll requireContext > requireContext.keys().map(requireContext) requireAll(req)4.vue.c…...

简约唯美的404HTML源码
源码介绍 简约唯美的404HTML源码,很适合做网站错误页,将下面的源码放到一个空白的html里面,然后上传到服务器里面即可使用 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8"><title>404 Error Example<…...
PDF 转图片并插入到 EXCEL 再转PDF
pom.xml 引用 <dependency><groupId>com.aspose</groupId><artifactId>aspose-cells</artifactId><version>21.11</version></dependency><dependency><groupId>com.aspose</groupId><artifactId>as…...

jmeter之变量随机参数化以及解决多线程不会随机变化
参考链接: https://www.cnblogs.com/Testing1105/p/12743475.html jmeter 使用random函数多线程运行时数据不会随机变化?_jmeter 线程组循环执行时 变量不变-CSDN博客 1、如下图所示,需要对请求参数 autor 和phone进行随机参数化 2、目前有…...

24/7/12总结
axios Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 get请求: <script>function…...

sentinel网关限流配置及使用
sentinel控制台源码:https://download.csdn.net/download/yixin605691235/89543923 sentinel控制台jar包:https://download.csdn.net/download/yixin605691235/89543931 不同环境直接修改jar包中的application.yml文件中的nacos地址就可以了。 一、网关限…...
# 如何解决 App Store 审核中的 4.3(a) 问题:Guideline 4.3(a) - Design - Spam
如何解决 App Store 审核中的 4.3(a) 问题:Guideline 4.3(a) - Design - Spam 4.3(a) 审核问题是指:你的应用与其他开发者提交的应用在二进制文件、元数据和/或概念上存在相似之处,仅有微小差别。这通常会导致你的应用被视为垃圾应用而被拒绝…...
最长上升子序列(LIS)
最长上升子序列(最长递增子序列,LIS) 给定长度为 n n n的序列 v v v,求此序列中严格递增(上升)的子序列长度最大值(子序列可由原序列中不连续的元素构成) 朴素DP( O ( n 2 ) O(n^2) O(n2)) 闫氏DP分析法 状态表示: 集合 d p dp dp:所有满足…...

自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection
文章目录 1. 摘要概述2. 背景介绍3. 方法3.1 俯视图投影3.2 网络结构3.2.1 投影变换层3.2.2 投影变换层3.2.3 道路投影预测分支 3.3 车道预测头3.4 训练和真实值关联 4. 实验4.1 合成 3D 车道数据集4.2 真实世界 3D 车道数据集4.3 评估结果4.4 评估图像仅车道检测 5. 总结和讨论…...
手工创建 postgres kamailio 数据库
测试环境如下: postgres server 16: ip 地址为 192.168.31.100,用户 postgres 的密码为 ****** kamailio v5.7.5: ip 地址为 192.168.31.101 1.1. 创建 kamailio 用户和 kamailio 数据库 ssh 登陆 kamailio (192.168.31.101)&a…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...