当前位置: 首页 > news >正文

docker 容器的基本使用

docker 容器

一、docker是什么?

软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前,一直是有这种需求的,比如上节课我把我安装的虚拟机给你们打包了,前面的这种打包方式是将整个虚拟机打包了,对吧,样打包出来的体积太大了,而且如果你只是单纯的想要一个安装好的程序,比如sqlserver数据库,不想自己安装,就想要个安装好的,按照之前的打包方式,太费事费力的,你打包个安装了sqlserver数据库的虚拟机,光虚拟机本身的操作系统可能就占用了20个G,sqlserver本身可能也就1个G,这是不是就太不合适了,当然我们自己不会或者不想安装sqlserver的时候,可以选择找个哥们帮你安装一下,但是如果100个人都找你安装,你是不是累死了,所以在这种情况,容器技术就诞生了,容器技术中的佼佼者,就是docker,它的底层实现原理我们现在不用纠结。用它来打包出来的软件,体积会非常小。比如如果在一个虚拟机上安装了nginx,那么这个虚拟机怎么也要1G以上,但是用docker打包的已经安装好的nginx,可能也就100M左右,体积小很多。接下来我们感受一下docker的使用。后面我们可以将很多部署起来很繁琐的靶场环境都通过docker来打包。所以现在网上也有很多使用docker跑起来的靶场,复用性非常好,别人打包好的,你直接拿来就用。而且docker有个东西叫做仓库,打包的东西直接放在仓库里面,全世界都可以共享。docker是2013年诞生的。

docker打包出来的每个软件,称之为docker镜像。可以说整个IT领域,不管是哪个工种,都需要好好学习docker。

docker是CS架构的程序,客户端控制服务端来做各种事情。
在这里插入图片描述

概念

镜像:images,是个压缩包文件,里面存放着安装好的程序。
容器:Container,Docker利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停
止、删除。每个容器都是相互隔离的、保证安全的平台。

二、docker的安装

docker对windows系统支持不是很好,主要是运行在linux上的,所以我们需要一个linux系统的主机来玩。

centos7安装docker

# centos7上面用yum安装
yum install docker -y
#启动docker
systemctl start docker
#设置开机自启
systemctl enable docker#体验docker版nginx最新版
docker run -d -p 80:80 nginx
#体验docker版nginx 1.16
docker run -d -p 81:80 nginx:1.16#体验wordpress
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -d --link mysql:mysql -p 86:80 wordpress:5.6

kali安装docker

#添加docker的gpg密钥,签名用的
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -#添加docker的apt源
echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list#更新apt缓存
apt update#安装docker
sudo apt-get install docker.io#安装docker docker-compose
sudo apt-get install docker docker-compose -y#安装完成之后,docker就自动启动了
systemctl status docker#查看docker版本
docker -v#查看docker-compose版本
docker-compose  -v

centos用yum安装,kali上面用apt安装,kali属于debian系列的操作系统。

安装好docker之后,后面不管是centos还是kali,后续docker的操作指令都是一样的。

网络安全有一项工作叫做漏洞复现,有些软件、框架、webserver等等他们某些版本会有各种漏洞,官方看到之后肯定会修复升级,但是某个使用了这些软件的公司可能并没有升级,那么就需要我们检测一下是否真的存在这个漏洞,不能直接再生产环境上去测试,需要在测试环境或者开发环境或者自己搭建的环境中进行漏洞测试,这就是漏洞复现的工作。所以我们好多时候都需要自己来搭建相同版本的软件
环境来进行漏洞复现,搭建的环境的时候我们就可以使用docker,很方便。

很多软件的官网都会有漏洞声明,比如nginx:https://nginx.org/en/security_advisories.html

可以看到某些漏洞影响的版本的,进行漏洞复现就需要安装特定版本的软件.

体验一下docker下载安装运行nginx镜像

#体验docker版nginx最新版,本地没有nginx镜像的话,会自动去仓库中拉去镜像并运行
docker run -d -p 80:80 nginx
#体验docker版的特定版本的nginx 1.16
docker run -d -p 81:80 nginx:1.16
#docker run -d -p 82:80 nginx:1.18#直接浏览器访问:http://192.168.2.121/ 就能看到nginx首页了。在响应数据中就能看到nginx的版本
#是不是感受到了安装不同版本nginx的便利之处了,如果不是用docker,你想去安装一些特定的老版本还是比较麻烦的,好多时候只能编译安装#体验wordpress,需要启动两个docker镜像,一个数据库的,一个代码程序,这个比较大,所以速度可能会慢一些
# 5.7版本的MySQL,镜像名称是mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 # 5.6版本的wordpress,最新版本应该已经到了6.x了,但是值得说明的一点就是封装wordpress的人为了将镜像做的比较小,没有安装中文包,所以只能是看英文的了,他会自动连接数据库。如果你发现你安装的镜像不是你要的版本,那么可能是版本指定错误了,或者是官方镜像仓库中的wordpress镜像版本有点问题了。
docker run -d --link mysql:mysql -p 86:80 wordpress:5.6 # 可以更改docker镜像库的源
cd /etc/docker
vim docker.json
# 添加如下内容,并保存退出
{"registry-mirrors": ["https://registry.docker-cn.com"]
}
# 可以重启docker服务
systemctl restart docker
systemctl start docker
systemctl enable docker
systemctl stop docker#Docker中国区官方镜像
https://registry.docker-cn.com
#阿里云容器,不过这个好像不更新了,大家可以去阿里官方关注一下
https://cr.console.aliyun.com/

虚拟机搞环境,需要安装、手动开机、手动运行软件。

docker run首先检测你本地是否已经有了软件镜像,如果没有,他会自动去下载镜像,然后运行,运行起来的镜像,我们称之为容器,可以理解为每个软件都安装在了一个自己的小空间里面。

docker 镜像 容器

镜像–>安装了某些特定程序的文件 -->压缩文件
容器–>镜像运行起来之后,就叫做容器。

三、镜像常用命令

docker search#搜索镜像(只搜索官方仓库的,官方仓库地址:hub.docker.com)# docker search tomcat# docker search apache# 我们拉取的镜像tomcat\apache等名字很短对吧,这都是官方仓库中的官方镜像,官方仓库中支持用户上传自己封装的镜像,用户镜像和官方镜像的差别在名字上面,比如我们可以去docker官方去注册一个账号,用户自己的镜像前面都会有作者的用户名或者用户所在组织的名字,比如jaden/nginx、jaden/tomcat等。docker images#查看本地镜像列表,image就是图像、镜像的意思# 本地有的镜像,就不要再去下载了,而且可以将本地镜像导出来分享给别人docker pull#下载镜像,拉取镜像# docker pull tomcat:latest# docker imagesdocker push#上传镜像,推送镜像,推到官方仓库,推送不是那么简单的,不然早就满了,需要在本地登录一下官方账号才能推,后面再演示docker rmi#删除镜像,rm image的意思,直接rm不加i表示要删除容器,可以通过名称加版本来删除,或者直接通过镜像id值来删除#docker rmi tomcat:latest 或者 docker rmi imageid值#可以同时删除多个镜像:docker rmi tomcat:latest tomcat:jre17-temurin-jammy#如果这个镜像处于运行状态的是删除不了的,比如有容器在使用这个镜像,就不能删除镜像,比如docker rmi nginx:1.16会报错#查看镜像的运行状态docker container ls,其实这是查看容器的状态,但是可以看到哪些镜像被使用了docker save#导出镜像(压缩包) docker save 镜像名称:版本 -o docker_nginx1.20.tar.gz#docker save nginx:1.16 -o docker.nginx1.16.tar.gz#ls 就看到了 docker.nginx1.16.tar.gz
docker load#导入镜像 docker load -i docker_nginx1.20.tar.gz,会自动解压并导入到docker服务中#从容器复制文件到宿主机
docker cp my_container:/path/in/container /path/on/host#从宿主机复制文件到容器
docker cp arl.txt my_container:/path/in/container

四、容器的常用命令

#docker 常见命令
docker run 运行一个新容器
docker ps === docker container ls #参数: 默认之显示up状态的容器,-a查看所有容器,或者--all
docker stop 	停止容器 #例子 docker stop 容器id或者容器名字
docker kill 	杀掉容器 #强制关闭容器,尽量不要用,很容易就启动不了了
docker start 	启动容器 #例子 docker start 容器id或者容器名字
docker restart 	重启重启 #例子 docker restart 容器id或者容器名字
docker rm 		删除容器 #例子 docker rm 容器id或者容器名字,同时删除多个,就空格隔开,处于up状态是不能直接删除的,强制删除是可以删除up状态的容器的,docker rm f 容器名称或者iddocker rm -f `docker ps -a -q` #删除所有容器,-q是只显示容器id,反引号中的指令优先执行docker top 		查看容器内的进程 #例子docker top 容器id或者容器名字
docker stats 	查看容器的资源占用情况
docker exec 	进入容器 #例子: docker exec -it 容器id或者容器名字# 直接交互指令:docker exec -it 76738703b7b2 ls # 执行ls指令
# 进入终端:docker exec -it 76738703b7b2 /bin/bash 或者/bin/sh #/bin/bash打开一个终端窗口,exit指令退出终端,但是docker容器内容一般不会安装额外的软件,所以导致大量的指令是用不了的,比如ifconfig、ps、ip addr等docker inspect -f '{{.Name}} => {{.NetworkSettings.IPAddress }}' $(docker ps -
aq) #可以查看所有容器的ip地址的,容器的ip地址是从`172.17.0.1`开始分的。docker容器类似于一个微型的虚拟机,它占用的都是宿主机(物理机)的资源。在物理机上是可以看到容器所运行的程序的。每个容器都有自己的ip地址。docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) | grep "容器名称或者id"# curl -I 加网址,可以看到http响应数据
┌──(root㉿kali)-[/home/]
└─# curl -I http://172.17.0.4
HTTP/1.1 200 OK
Server: nginx/1.23.4#netstat -lntup可以看到给docker的端口映射
# docker run -d -p 80:80 nginx #-p 80:80,端口映射,表示宿主机的80端口映射到了nginx容器的80端口。

网络结构:
在这里插入图片描述

docker run参数,有很多参数,最后一个肯定是镜像

-d #放后台运行
-p 端口映射 #例子: -p 宿主机端口:容器端口
--name 指定容器的名字 # docker run -it --name jaden 镜像id或者名称
--link 关联另一个容器 # 了解即可
-e MYSQL_ROOT_PASSWORD #设置容器的一些属性,了解一下即可
-it #是给运行起来的这个容器分配一个终端,就可以进入到容器内部操作了
# 后面想部署什么,直接网上搜索即可。

五、制作docker镜像并上传

学习了怎么下载,你就知道官方的镜像是怎么来的。

docker pull debian:latest
docker run -it --name weicoll_nginx -p 90:80 debian:latest
# 进入容器
docker exec -it weicoll_debian /bin/bash
# 安装nginx
apt update # 更新apt缓存
apt install nginx -y # 安装nginx
nginx -v # 查看nginx版本,安装好了
# ip addr
# apt install procps # 安装ps指令
# ps -ef
nginx #启动nginx,systemctl是没有的,没有安装这个指令
exit
# 打包之前做好先停止容器
docker stop jaden_debian
docker commit jaden_nginx syrjaden/debian_nginx:v1 # 根据名字或者id都可以提交,后面加个镜像名称和版本,syrjaden是docker仓库用户名#上传到官方仓库
docker login #登录官方仓库
#docker tag debian_nginx:v2 syrjaden/debian_nginx:v2 # 这是改名字,如果名称不冲突就不用改名字
docker push syrjaden/debian_nginx:v2 # 直接push即可

六、docker-compose

docker-compose是批量管理docker容器的工具

比如前面我们启动的wordpress项目,需要启动两个容器才行,有时候就是这样,需要同时启动多个容器来完成你想要做的事情,但是到底启动多少个容器呢?比如wordpress那个,我们记不住,换一个机器不看笔记很难起来,有了docker-compose就可以解决这个问题了。

#centos7安装docker-compose,我们前面已经安装了,不需要再次安装了
yum install epel-release.noarch -y
yum install docker-compose -y#kali安装docker-compose
apt install docker-compose -y# 查看版本
docker-compose -v

这里给大家补充个点 systemctl restart docker 重启docker服务会自动关闭所有的容器。

#启动容器的时候,如果加上了--restart=always,那么重启服务之后,这个容器会自动启动
docker run -it -d --restart=always nginx:1.16 # 实现了开机自启动的效果

配置文件docker-compose.yml,有了这个配置文件,就可以通过docker-compose来控制多个容器了

# 为了避免端口冲突,我们可以先关闭所有docker容器
docker stop `docker ps -a -q`# 为了演示方便,我们可以先创建一个wordpress文件夹,进入到里面创建一个docker-compose.yml名字的文件
mkdir wordpresscd wordpress/
touch docker-compose.yml
vim docker-compose.yml# 将如下内容拷贝到文件中保存退出,注意拷贝的时候,把里面我标记的注释去掉。# 注意,下面这个文件内容是严格要求格式的,多一个空格都不行,通过缩进来表示等级关系,下面的这种配置语法叫做yaml语法
version: '3' # docker-compose.yml的文件格式版本
services:db: #容器名称image: mysql:5.7restart: always # 开机自启动的意思environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: 123456 # 和下面的WORDPRESS_DB_PASSWORD值要对应上wordpress:depends_on:- dbimage: wordpress:5.6ports:- "83:80" # 端口映射restart: alwaysenvironment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: 123456

常用docker-compose命令

创建并启动
docker-compose up -d # 启动之后就可以通过浏览器访问了
#停止并删除
docker-compose down
#重启
docker-compose restart
#停止
docker-compose stop
#启动
docker-compose start
#查看启动环境
docker-compose ps -a

七、docker-compose启动靶场环境

https://vulhub.org/#/environments/
vulhub部署文章以及拉去镜像失败解决的方法https://blog.csdn.net/qq_22701869/article/details/138545663
https://blog.csdn.net/qq_22701869/article/details/138545663

相关文章:

docker 容器的基本使用

docker 容器 一、docker是什么? 软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前,一直是有这种需求的,比如上节课我把我安装的虚拟机给你们打包了,前面的这种打包方式是…...

Nginx IP优化限制策略

Nginx 如何限制每个 IP 地址的连接数,优化资源分配? Nginx 限制每个 IP 地址的连接数 Nginx 提供了多种机制来限制单个 IP 地址所能建立的同时连接数,这对于防止资源耗尽和提高服务稳定性至关重要。以下是几种有效策略: 1. 使用…...

某科技局国产服务器PVE虚拟化技术文档

环境介绍 硬件配置 服务器品牌:黄河 型号:Huanghe 2280 V2 Cpu型号:kunpeng-920 磁盘信息 :480SSD * 2 ,4T*4 网卡:板载四口千兆 如下表 四台服务器同等型号配置,均做单节点虚拟化,数据保护采用底层r…...

新能源汽车锂离子电池各参数的时间序列关系

Hi,大家好,我是半亩花海。为了进一步开展新能源汽车锂离子电池的相关研究,本文主要汇总并介绍了电动汽车的锂离子电池的各项参数,通过 MATLAB 软件对 Oxford Dataset 的相关数据集进行数据处理与分析,进一步研究各项参…...

单片机:实现自动关机电路(附带源码)

单片机实现自动关机电路 在许多嵌入式系统或便携式设备中,自动关机功能非常重要,尤其是在电池供电的设备中,防止设备长时间开启以节省电能。自动关机电路的基本功能是检测设备是否处于待机状态,若一定时间内未收到用户操作信号或…...

/etc/fstab 文件学习systemd与该文件关系

文章目录 一、文件字段1.1、设备标识1.2、挂载点1.3、文件系统类型1.4、挂载选项1.5、dump1.5、fsck顺序 二、/etc/fstab 与systemd 的关系2.1、/etc/fstab 与systemd 的关系2.2、systemd 之前/etc/fstab生效过程2.3、systemd 时代/etc/fstab生效过程 三、相关知识3.1、如何更具…...

springcloud基础

一 SpringCloud简介 1.1 SpringCloud是什么 SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFli…...

全面解析 Kubernetes 流量负载均衡:iptables 与 IPVS 模式

目录 Kubernetes 中 Service 的流量负载均衡模式 1. iptables 模式 工作原理 数据路径 优点 缺点 适用场景 2. IPVS 模式 工作原理 数据路径 优点 缺点 适用场景 两种模式的对比 如何切换模式 启用 IPVS 模式 验证模式 总结 Kubernetes 中 Service 的流量负载…...

HTML+CSS+JS制作汽车网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个汽车网站,包含首页、新车发布页、预约试驾页、最新资讯页、品牌故事页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部导航栏 包含logo、主导航菜单(首页、新车、二…...

GraalVM完全指南:云原生时代下使用GraalVM将Spring Boot 3应用转换为高效Windows EXE文件

一、前言 在现代软件开发中,启动速度和资源利用率常常是衡量应用性能的关键指标。对于基于Spring Boot的应用来说,虽然它们易于开发和部署,但JVM的启动时间有时会成为一个瓶颈。本文介绍如何使用GraalVM将Spring Boot 3应用编译成原生Windows可执行文件(EXE),从而显著提…...

微软开源GraphRAG的使用教程-使用自定义数据测试GraphRAG

微软在今年4月份的时候提出了GraphRAG的概念,然后在上周开源了GraphRAG,Github链接见https://github.com/microsoft/graphrag,截止当前,已有6900Star。 安装教程 官方推荐使用Python3.10-3.12版本,我使用Python3.10版本安装时,在…...

C++ 中的字面量类型定义

在 C 中,字面量类型(Literal Type)是指可以作为字面量使用的类型。字面量是指代码中直接写出的常量值,比如整数 42、浮点数 3.14、字符串 "hello" 等。而字面量类型则是支持创建这些字面量的类型。 C 中的字面量类型定…...

LeetCode:101. 对称二叉树

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输…...

Docker Compose 配置指南

目录 1. Docker Compose 配置1.1 基本配置结构1.2 docker-compose.yml 的各部分1.3 常用配置选项 2. Docker Compose 使用方法2.1 创建 Docker Compose 配置文件2.2 启动服务2.3 查看容器状态2.4 查看服务日志2.5 停止服务2.6 重新构建服务 3. Docker Compose 常用命令3.1 dock…...

【Linux开发工具】自动化构建-make/Makefile

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux开发工具】gcc和g 🔖流水不争,争的是滔滔不 一、make和Makefile简介1.1 什么是…...

VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)

名人说:一点浩然气,千里快哉风。—— 苏轼《水调歌头》 创作者:Code_流苏(CSDN) 目录 一、Python环境安装二、VScode下载及安装三、VSCode配置Python环境四、运行测试五、背景图设置 很高兴你打开了这篇博客,更多详细的安装教程&…...

Python 异步协程:从 async/await 到 asyncio 再到 async with

在 Python 3.8 以后的版本中,异步编程变得越来越重要。本文将系统介绍 Python 标准库中的异步编程工具,带领大家掌握 async/await 语法和 asyncio 的使用。 从一个简单的场景开始 假设我们在处理一些耗时的 I/O 操作,比如读取多个文件或处理…...

矩阵-向量乘法的行与列的解释(Row and Column Interpretations):中英双语

本文是学习这本书的笔记 网站是:https://web.stanford.edu/~boyd/vmls/ 矩阵-向量乘法的行与列的解释 矩阵-向量乘法(Matrix-Vector Multiplication)是线性代数中的基本操作,也是机器学习、数据科学和工程中常用的数学工具。本文…...

针对超大规模病理图像分析!华中科技大学提出医学图像分割模型,提高干燥综合征诊断准确性

口干、眼干、皮肤干,每天伴有不明原因的肌肉酸痛和全身乏力,如果以上症状你「中招」了,除了考虑冬季天气干燥外,还应该警惕一种常见却总是被我们忽视的疾病——干燥综合征 (Sjgren’s Syndrome, SS)。 干燥综合征是以外分泌腺高度…...

混合开发环境---使用编程AI辅助开发Qt

文章目录 [toc]1、说明2、演示视频 1、说明 新时代的浪潮早就已经来临,上不了船的人终将被抛弃,合理使用AI辅助开发、提升效率是大趋势 注意:不要被AI奴隶 合理使用AI辅助编程,十倍提升效率。 大部分的编程AI都有vs code插件&…...

Unity复刻胡闹厨房复盘 模块一 新输入系统订阅链与重绑定

本文仅作学习交流,不做任何商业用途 郑重感谢siki老师的汉化教程与代码猴的免费教程以及搬运烤肉的小伙伴 版本:Unity6 模板:3D 核心 渲染管线:URP ------------------------------…...

[前端]HTTP库Axios

一、Axios简介 Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 环境。它是一个流行的 JavaScript 库,用于发起 HTTP 请求,如 GET、POST、DELETE 等。Axios 提供了易于使用的 API,支持请求和响应的拦截、转换数据格…...

Excel中index()函数

函数功能概述 INDEX 函数用于返回表格或区域中的值或对值的引用。它可以根据指定的行和列的位置从一个单元格区域中提取数据。这个函数有两种形式:数组形式和引用形式。语法结构(数组形式) INDEX(array, row_num, column_num)array&#xff0…...

linux-----文件命令

文件和目录的基本概念 文件类型: 普通文件:这是最常见的文件类型,用于存储数据,如文本文件、二进制文件等。文本文件可以用文本编辑器打开并查看内容,二进制文件则包含机器可执行的代码或其他特定格式的数据。目录文件…...

lua dofile 传参数

cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua,结果为: First argument is: 111 Second argument is: 222 l…...

【ETCD】【实操篇(二)】如何从源码编译并在window上搭建etcd集群?

要在 Windows 上编译 etcd 及 etcdctl 工具,并使用 bat 脚本启动 etcd 集群,首先需要准备好开发环境并确保依赖项正确安装。下面是从 etcd 3.5 源码开始编译和启动 etcd 集群的详细步骤: 目录 1. 安装 Go 环境2. 获取 etcd 源码3. 编译 etcd…...

重温设计模式--备忘录模式

文章目录 备忘录模式(Memento Pattern)概述定义: 作用:实现状态的保存与恢复支持撤销 / 恢复操作 备忘录模式UML图备忘录模式的结构原发器(Originator):备忘录(Memento)&…...

如何借助边缘智能网关实现厂区粉尘智能监测告警

在诸如木制品加工、纺织品加工、塑料橡胶制品加工等多种工业生产场景中,粉尘问题的隐患和风险不可小觑。如果缺少对生产环境中粉尘的监测和管理,可能发生易燃易爆、环境污染和工人尘肺等生产事故。 针对工业场景中的粉尘状况监测、管理及预警&#xff0c…...

解析mysqlbinlog

一、前置设置 ps -ef | grep mysql 查看mysql进程对应的安装目录 需设置mysql binlog日志模式为 ROW 二、执行命令 [rootlocalhost bin]# mysqlbinlog --verbose --base64-outputdecode-rows /usr/local/mysql/data/binlog.000069 > 1.sql 查看文件具体内容...

【gym】理解gym并测试gym小游戏CartPole (一)

一、gym与文件位置的联合理解 import gym import inspect# 加载 CliffWalking 环境 env gym.make(CliffWalking-v0)# 获取环境的类 env_class type(env)# 获取环境类所在的文件路径 file_path inspect.getfile(env_class)print(f"The source code for CliffWalking-v0…...

【jvm】内存泄漏的8种情况

目录 1. 说明2. 静态集合类持有对象引用3. 单例模式4. 内部类持有外部类5. 未关闭的连接6. 变量不合理的作用域7. 改变对象的哈希值8. 缓存Cache泄漏9. 监听器和回调 1. 说明 1.内存泄漏(Memory Leak)指的是程序中动态分配的内存由于某种原因没有被释放…...

android:sharedUserId 应用进程声明介绍

背景 adb install 安装系统软件报错,原因是签名不一致,进程改变。 代码分析 AndroidManifest.xml 定义的 android:sharedUserId 应用归属进程不同,从phone切换到system。 初始配置 <manifest xmlns:android="http://schemas.android.com/apk/res/android"c…...

WPSJS:让 WPS 办公与 JavaScript 完美联动

随着办公自动化需求的日益增长&#xff0c;WPS Office 推出了 WPSJS&#xff0c;这是一款强大的开发者工具&#xff0c;允许开发者通过 JavaScript 脚本与 WPS 办公软件进行互动。无论是在表格中自动填充数据、在文档中修改格式&#xff0c;还是在演示文稿中插入动态内容&#…...

【Linux进程】进程间通信(共享内存、消息队列、信号量)

目录 前言 1. System V IPC 2. 共享内存 系统调用接口 shmget ftok shmat shmdt shmctl 共享内存的读写 共享内存的描述对象 3. 消息队列 msgget msgsnd msgctl 消息队列描述对象 4. 信号量 系统调用接口 semget semctl 信号量描述对象 5. 系统层面IPC资源 6.…...

负载均衡的原理

负载均衡&#xff08;Load Balancing&#xff09;是一种计算机技术&#xff0c;用于在多个服务器、网络连接、计算资源之间合理分配工作负载&#xff0c;以提升应用程序的可用性、性能和可扩展性&#xff0c;以下是详细介绍&#xff1a; 工作原理 流量分配&#xff1a;负载均衡…...

Flash Attention

op融合 原始方法&#xff1a; 痛点&#xff1a;多次读取、写入显存。 解决&#xff1a;中间结果不保存&#xff0c;1个kernel顺序算完多个操作。 反向传播时用到这些中间结果要求导&#xff0c;怎么办&#xff1f; 答&#xff1a;类似activation checkpointing&#xff0c;重新…...

Craft CMS 模板注入导致 Rce漏洞复现(CVE-2024-56145)(附脚本)

0x01 产品描述: ‌Craft CMS‌ 是一个灵活且强大的内容管理系统(CMS),专为创意团队和开发人员设计,提供高度可定制、直观且性能优越的网站和内容管理解决方案。它以用户友好的界面、强大的插件生态系统以及支持现代web开发最佳实践的特性而闻名‌0x02 漏洞描述: 由于模板…...

步进电机位置速度双环控制实现

步进电机位置速度双环控制实现 野火stm32电机教学 提高部分-第11讲 步进电机位置速度双环控制实现(1)_哔哩哔哩_bilibili PID模型 位置环作为外环,速度环作为内环。设定目标位置和实际转轴位置的位置偏差,经过位置PID获得位置期望,然后讲位置期望(位置变化反映了转轴的速…...

Sigrity Optimize PI CapGen仿真教程文件路径

为了方便读者能够快速上手和学会Sigrity Optimize PI和 Deacap Generate 的功能&#xff0c;将Sigrity Optimize PI CapGen仿真教程专栏所有文章对应的实例文件上传至以下路径 https://download.csdn.net/download/weixin_54787054/90171471?spm1001.2014.3001.5503...

open Feign日志输出

openFeign默认是没有日志输出的&#xff0c;只有在open Feign所在的包的级别达到debug才会有输出&#xff0c;而且级别有四级。 四种日志级别&#xff1a; OpenFeign只会在FeignClient所在包的日志级别为DEBUG时&#xff0c;才会输出日志。而且其日志级别有4级&#xff1a; NON…...

进程间关系与守护进程

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 进程间关系与守护进程 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 进程组 什…...

C++设计模式:组合模式(公司架构案例)

组合模式是一种非常有用的设计模式&#xff0c;用于解决**“部分-整体”**问题。它允许我们用树形结构来表示对象的层次结构&#xff0c;并且让客户端可以统一地操作单个对象和组合对象。 组合模式的核心思想 什么是组合模式&#xff1f; 组合模式的目的是将对象组织成树形结…...

ubuntu 安装docker

Step1&#xff1a;更新系统软件包 sudo apt update Step2&#xff1a;安装依赖包【用于通过HTTPS来获取仓库】 sudo apt install apt-transport-https ca-certificates curl software-properties-common Step3&#xff1a;添加Docker官方GPG密钥 sudo -i curl -fsSL https://…...

PSDK的编译与ROS包封装

本文档讲述在NIVIDIA开发板上使用大疆提供的Payload SDK获取无人机实时GPS信息的方法&#xff0c;以及基于Payload SDK发布ROS GPS话题信息的方法。 文章目录 0 实现目标1 Payload SDK1.1 PSDK 源码的编译1.2 PSDK 的使用 2 遥测数据的读取2.1 示例代码结构2.2 读取机载GPS信息…...

【工作流】工作顺序

背景 当时的情况是&#xff1a;没有产品经理&#xff0c;后端直接和需求方对接&#xff1b;前端只能短时间投入大部分时间要忙别的&#xff1b;只有3个角色&#xff1a;需求方&#xff0c;后端&#xff0c;前端&#xff1b; 当时直接执行的 直接使用会议了解需求&#xff0c…...

Unity2021.3.16f1可以正常打开,但是Unity2017.3.0f3却常常打开闪退或者Unity2017编辑器运行起来就闪退掉

遇到问题&#xff1a; 从今年开始&#xff0c;不知道咋回事&#xff0c;电脑上的Unity2017像是变了个人似得&#xff0c;突然特别爱闪退掉&#xff0c;有时候还次次闪退&#xff0c;真是让人无语&#xff0c;一直以来我都怀疑是不是电脑上安装了什么别的软件了&#xff0c;导致…...

Java基础面试题20:Java语言sendRedirect()和forward()方法有什么区别?

Java基础面试题&#xff1a;Java语言sendRedirect()和forward()方法有什么区别&#xff1f; 在 Java Web 开发中&#xff0c;sendRedirect() 和 forward() 是两个非常常用的方法&#xff0c;但它们有一些核心区别。我们来用最简单的方式给你解释清楚。 一、sendRedirect() 和 …...

2、光同步数字传送网的特点

同步复用 光同步数字传送网&#xff08;SDH&#xff09;采用同步复用方式。它将多个低速信号复用成高速信号&#xff0c;与准同步数字体系&#xff08;PDH&#xff09;的异步复用不同。在 SDH 中&#xff0c;各支路信号与复用后的高速信号是同步的&#xff0c;这种同步复用的方…...

3.4 stm32系列:定时器(PWM、定时中断)

一、定时器概述 1.1 软件定时原理 使用纯软件&#xff08;CPU死等&#xff09;的方式实现定时&#xff08;延时&#xff09;功能&#xff1b; 不精准的延迟&#xff1a; /* 微秒级延迟函数* 不精准* stm32存在压出栈过程需要消耗时间* 存在流水线&#xff0c;执行时间不确定…...

【环境搭建】Python、PyTorch与cuda的版本对应表

一个愿意伫立在巨人肩膀上的农民...... 在深度学习的世界里&#xff0c;选择合适的工具版本是项目成功的关键。CUDA、PyTorch和Python作为深度学习的三大支柱&#xff0c;它们的版本匹配问题不容忽视。错误的版本组合可能导致兼容性问题、性能下降甚至项目失败。因此&#xff0…...