Docker与Docker-Compose详解
1、Docker是什么?
在计算机中,虚拟化(英语: Virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
在实际的生产环境中。虚拟化技术主要用来解决高性能的物理硬件产能过利和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件资源的充分利用。
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、桌面虚拟化、服务虚拟化、虚拟机等等。.
Docker和传统虚拟机的区别
| 特性 | Docker | 虚拟机 |
|---|---|---|
| 启动 | 秒级 | 分钟级 |
| 硬盘使用 | 一般为 MB | 一般为 GB |
| 性能 | 接近原生 | 弱于 |
| 系统支持量 | 单机支持上千个容器 | 一般几十个 |
2、Docker的安装
2.1、Windows下的安装
直接在官网下载windows包双击运行即可,对于win10来说需要开启Hype-v,直接百度打开即可。
2.2、Linux下的安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun# 安装报错 Problem: problem with installed package buildah
# 执行语句 yum erase podman buildah
# 再进行安装systemctl status dockersystemctl restart dockerdocker infosystemctl enable docker# 建立docker组
sudo groupadd docker
sudo usermod -aG docker $USER# 重启服务
systemctl restart docker
2.3、核心概念
- 仓库
- 远程仓库:开发者镜像及官方镜像
- 本地仓库:只保存当前自己使用过的镜像及自定义镜像
- 作用:用来存放docker镜像位置
- 镜像
- 作用:一个镜像就代表一个软件
- 容器
- 作用:一个幢像运行一次就会生成一个实例就是生成一个容器
2.4、Aliyun服务加速
docker提供了一个远程仓库,主要是用来存放镜像的,而我们所需要的镜像都需要去远程仓库进行拉取,dockerHub 地址:https://registry.hub.docker.com/_/mysql?tab=tags,这里以mysql镜像为例,然后直接在虚拟机当中执行命令
# 获取最新版本的mysql
docker pull mysql# 获取指定版本的mysql 8.0.18版
docker pull mysql:8.0.18
在这里的dockerhub是为全球服务的,速度难免会有点慢,这里可以配置阿里的镜像来进行获取docker远程仓库的镜像。阿里云服务加速配置阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 ,按照官网进行配置即可:

3、Docker的操作
3.1、Hello World
在安装docker之后,直接使用命令:docker run hello-world 表示直接运行hello-world这个镜像。而他的执行基本步骤如下:

3.2、Docker 的基本命令
3.2.1、docker引擎及帮助操作:
# 查看docker信息
docker info# 查看docker版本
docker version# 帮助命令
docker --help
3.2.2、镜像相关操作:
# 查看镜像
docker images
docker images -a #展示所有镜像
docker images -q #只展示镜像的ID
docker images mysql #只展示mysql镜像# 下载镜像
docker pull 镜像名称:版本号 # 如 docker pull mysql:8.0.27
docker pull 镜像名称:@DIGEST
#如:docker pull mysql:DIGEST:sha256:975b3b1a6df6bf66221d1702b76c4141a4cd09f93f22f70c32edc99a6c256fe8# 搜索镜像
docker search 镜像
# docker search mysql
# 搜索stars数在3000以上的image
docker search mysql --filter=stars=3000# 删除镜像
docker image rm 镜像名:版本或者id标识 # docker image rm mysql:8.0.27
docker image rm -f 镜像名:版本或者id标识 # 强制删除
# 简化删除
docker rmi 镜像名:版本# 组合运用
# 清空本地仓库所有镜像
docker rmi -f $(docker images -q)
3.2.3、容器相关操作:
# 导入本地镜像
docker load -i 镜像文件# 运行一个容器
docker run 镜像名称:版本号
# 运行容器与宿主机进行映射
docker run -p 8080:8080 镜像名称:版本号
# 启动容器映射端口,后台启动
docker run -p 8080:8080 -d 镜像名称:版本号
# 启动容器映射端口,后台启动,指定名称
docker run -p 8080:8080 --name 容器名称 -d 镜像名称:版本号# 查看正在运行的容器
docker ps
# 查看运行容器的历史记录
docker ps -a
# 查看最近运行的两个容器
docker ps -a -n=2
# 查看正在运行的容器id
docker ps -q
# 查看所有容器的id
docker ps -aq# 容器的启动和停止
docker start 容器名称或者容器id
docker restart 容器名称或者容器id
docker stop 容器名称或者容器id
docker kill 容器名称或者容器id # 容器的删除
docker rm 容器的id或者名称
docker rm -f 容器的id或者名称
docker rm -f $(docker ps -aq)# 查看日志
docker logs 容器id或名称
# 实时展示日志
docker logs -f 容器id或名称
# 加入时间戳展示实时展示日志
docker logs -tf 容器id或名称
# 查看最后n行日志
docker logs --tail 5 容器id或名称# 查看容器的内部进程
docker top 容器id或名称# 与容器内部进行交互
docker exec -it 容器id或名称 bash# 从容器复制文件到操作系统
docker cp 容器id:路径 操作系统下的路径
# 从操作系统复制文件到容器当中
docker cp 操作系统下的路径 容器id:路径
在这里的文件复制主要还是运用到本地项目打包后的部署,比如说这里一个项目开发完成之后,打成一个jar包或者war包,丢给tomcat进行启动部署,而后直接将这个包给到tomcat镜像下的webapps目录下,重新启动tomcat或者重启容器,最后进行访问项目。
# 查看容器中的元数据
docker inspect 容器id# 数据卷(Volume):实现宿主机系统和容器之间的文件共享
# 数据卷的使用:
docker run -d -p 8080:8080 --name 容器名称 -v 操作系统下路径:容器下路径 镜像名称:版本# aa代表一个数据卷的名字,名称可以自定义,docker在不存在时自动创建这个数据卷,并且同时自动映射宿主机当中的某个目录
# 同时在启动容器的时候会将aa对应容器目录中全部内容复制到aa映射目录当中
docker run -d -p 8080:8080 --name 容器名称 -v aa:容器下路径 镜像名称:版本find / -name aa# 将容器打成一个新的镜像
docker commit -m "描述信息" -a "作者信息" 容器id或名称 打包的镜像名称:标签版本# 将镜像备份出来
docker save 镜像名称:版本 -o 文件名
# 重新加载镜像
docker load -i 镜像文件
3.3、Docker 镜像分层原理
镜像是一种轻量级的,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时所需的库、环境变量和配置文件。
Docker当中的镜像为什么这莫大?
Docker的设计:一个软件镜像不仅仅是原来软件包,镜像当中还包含软件包所需的操作系统依赖软件自身依赖以及自身软件包组成。
分层原理
很显然,在这里docker容器的设计简单来说,对于不同的环境都给抽离出来进行分层,就比如说很多的软件服务(比如说:Naocs、ES、Hadoop等等)都需要jdk的环境,那再进行拉取镜像的时候,这些镜像都会先检验jdk的环境,再进行后续的安装,那这里装个Naocs、ES、Hadoop要下载三次JDK,这显然浪费了很多的内存,所以在这里Docker采用了分层的原理,这里每一层的环境依赖都给分开了,再一次安装了jdk环境之后,后续安装的服务也要jdk依赖就不会再去拉取了,回直接使用本地有的jdk环境。
3.4、Docker 网络
在docker当中容器和容器之间也是可以进行通信的。就好比Linux中我们使用 ip addr 可以看到当前虚拟机的ip地址,在这里可以查看一下容器中的IP,docker exec -it 容器名 ip addr 会发现有一个对应的映射另一个映射。说明docker容器网络是通过veth-pair技术实现的。
并且在这里还可以通过docker inspect 容器名称或id 命令查看容器的元数据,这里也有该容器随机分配的ip地址。
而当我们启动多个容器之后,可以查看多个容器的ip地址,可以看到容器的ip地址都在同一个网段上,这就有点似曾相识的感觉了,在linux当中我们配置多台机器进行互相通信,那这里的容器通信那也是一样的不,直接进入到一台容器之内,使用ping命令,ping另外一个容器的ip。
再就是在启动容器之后,默认为分配的ip地址都同一个网桥上,而这里容器当中需要对网桥进行分割开又要如何操作呢?我们需要创建一个网桥,而后在启动容器的时候指定对应的网桥即可。
# 查看网桥
docker network ls# 创建网桥
docker network create 网桥名称# 容器指定网桥挂载
docker run -p -d 8080:8080 --network 网桥名称 --name 容器名称 镜像:版本# 在启动容器,生成的ip地址会和容器名称进行映射,这里除了使用ip进行访问,还可以使用容器名称进行访问# 删除
docker network rm 网桥名称# 网桥细节
docker inspect 网桥名称
3.5、Docker 数据卷
3.5.1、作用
是用来实现容器和宿主机之间的数据共享
3.5.2:特点
- 数据卷可以在容器之间进行共享和重用
- 对数据卷的修改会立即影响到对应的容器
- 对数据卷的修改不会影响镜像
- 数据卷默认一直存在,即使容器被删除
3.5.3、数据卷操作
# 自定义数据卷目录
docker run -v 绝对路径:容器内路径
# 自动创建数据卷
docker run -v 卷名:容器内路径# 查看数据卷
docker volume ls
# 查看数据卷的细节
docker volume inspect 卷名
# 创建数据卷
docker volume create 卷名
# 删除数据卷(没有使用的数据卷)
docker volume prune
# 删除指定的数据卷
docker volume rm 卷名
3.6、Docker 核心架构
4、Docker安装服务
4.1、mysql 的安装
首先我们需要确定服务的版本,拉取镜像到本地:dockerHub 拉取镜像描述文件 ,在镜像的描述文件当中,会对服务的启动、查看服务日志、服务配置等等都有进行描述。
# 先获取mysql服务
docker pull mysql:8.0.18
服务的启动:这里需要指定运行的环境
# 基本启动
docker run -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.18# 启动服务 后台运行 指定root用户账号密码(设置root账户的密码为root) 指定容器名称
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.18# 启动服务 后台运行 指定root用户账号密码 指定容器名称 使用数据卷将数据持久化
# mysql 容器默认存储位置:/var/lib/mysql
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d -v mysqldata:/var/lib/mysql mysql:8.0.18# 启动服务 后台运行 指定root用户账号密码 指定容器名称 使用数据卷将数据持久化 已修改之后的配置文件启动
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d -v mysqldata:/var/lib/mysql -v mysqlconfig:/etc/mysql mysql:8.0.18
4.2、Tomcat 的安装
# 先获取镜像
docker pull tomcat:9.0-jdk8# 服务启动
docker run -d -p 8080:8080 --name tomcat tomcat:9.0-jdk8# 项目的部署目录 /usr/local/tomcat/webapps
docker run -d -p 8080:8080 -v apps:/usr/local/tomcat/webapps --name tomcat tomcat:9.0-jdk8# 配置文件目录 /usr/local/tomcat/conf
docker run -d -p 8080:8080 -v apps:/usr/local/tomcat/webapps -v confs:/usr/local/tomcat/conf --name tomcat tomcat:9.0-jdk8
4.3、Redis的安装
# 拉取镜像
docker pull redis:6.2.6# 启动服务
docker run -d -p 6379:6379 --name redis6 redis:6.2.6# redis 持久化
docker run -d --name redis6 redis:6.2.6 redis-server --appendonly yes
4.4、ElasticSearch 的安装
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.0.0
docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:8.0.0
5、Dockerfile
5.1、Dockerfile 概述
5.1.1、Dockerfile是什么?
Dockerfile是用来帮助自己构建一个自定义镜像
5.1.2、为什么会存在Dockerfile?
日常用户可以将自己应用进行打包成镜像,这样就可以让我们自己的应用在容器当中运行
5.1.3、Dockerfile构建镜像原理
5.2、Dockerfile 语法
| 保留字 | 作用 |
|---|---|
| FROM | 当前镜像是基于哪个镜像[第一个指定必须是FROM] |
| MANITAINER | 维护者的姓名和邮箱地址[废弃,意义不大] |
| RUN | 构建镜像是需要运行的指令 |
| EXPOSE | 当前容器对外 暴露的端口号 |
| WORKDIR | 指定在创建容器后,终端默认登录进来的工作目录,一个落脚点 |
| ENV | 用来在构建镜像的过程中设置环境变量 |
| ADD | 将宿主机目录下的文件拷贝进容器且ADD命令会自动处理URL和解压tar包 |
| COPY | 类似于ADD,拷贝文件和目录到镜像中 将从构建上下文目录中<原路径>的文件/目录复制到新的一层镜像内的<目标路径>位置 |
| VALUME | 容器数据卷,用户数据保存和持久化工作 |
| CMD | 指定一个容器启动时要运行的命令,Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换 |
| ENTRYPOINT | 指定一个容器启动时要运行的命令,ENTRYPOINT的目的和CMD一样,都是在指定容器启动过程及其参数 |
FROM:构建一个自定义的镜像
# 新建一个dockerfile文件
vim Dockerfile
# 写入内容
FROM centos:8
# 进行build
docker build -t mycentos8:01 .# RUN : 对镜像进行扩展
docker run -it centos:7
# 不支持vim,对于vim的扩展,在原本的dockerfile文件当中加入
RUN yum install -y vim
# 或者使用这种语法
RUN ["yum","install","-y","vim"]# EXPORT : 镜像暴露端口
EXPOSE 8888#指定工作目录
WORKDIR /data# 复制文件
COPY aa.txt /data/aa# 添加内容
ADD bb.txt /data/bb
ADD 下载地址 /data/tomcat
5.3、idea对Dockerfile支持
打开idea的settings,在以来当中找到docker的依赖,进行安装该依赖,安装之后重启idea就可以对Dockerfile文件进行编辑了。

第二个就是,Dockerfile文件都在linux上,在idea当中怎么进行编辑呢,可以选择Tools下的deployment的browse remote host 进行连接远程虚拟机,这里直接连接上去之后在右侧就会有虚拟机上的文件目录信息,并且可以直接在idea当中进行打开了。

6、Docker compose
6.1、Docker compose 概述
6.1.1、compose的作用
用来负责对Docker容器集群的快速编排
6.1.2、compose的定位
是用来定义和运行多个docker容器的应用 同时可以对多个容器进行编排
6.1.3、compose的核心概念
- 服务:一个应用的容器,服务可以存在多个
- 项目:由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件当中进行定义
6.1.4、compose的安装
github下载地址:Releases · docker/compose · GitHub
首先在github上面下载对应的版本包,下载之后将包上传到linux服务器上。将文件进行重命名并且复制到/usr/local/bin目录下,并且给该目录赋予权限。最后直接使用docker-compose -v命令查看版本进行校验是否安装成功
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
6.1.5、docker和docker-compose直接的版本对应
docker官网地址:https://docs.docker.com/compose/compose-file/
使用命令 docker -v 查看docker的版本,可以在官网当中看到compose对docker版本的支持
6.2、Docker compose —— HelloWorld
在前面有说到compose当中的组成部分,分别是服务和项目,这里首先创建一个目录用来表示这第一个helloworld项目,在项目当中添加docker-compose.yml文件用来编写compose。
# 创建目录
mkdir hello
cd hello# 新建docker-compose.yml文件
vim docker-compose.yml# 写入内容(这里在vim当中编辑yml文件挺难受的,可以在idea当中编辑远程主机的文件)
version: "3.0" # 指定compose的版本
services: # 指定服务tomcat: # 单个服务image: tomcat:9.0.27-jdk8 # 服务镜像ports:- 8081:8080 # 暴露对应的端口# 保持文件内容后进行启动compose
docker-compose up# 服务启动之后,可以直接进行访问8081端口
http://远程主机ip/8081
6.3、Docker compose —— 命令模板
version: "3.0" # compose版本
services:user:build:context: user # dockerfile的镜像dockerfile: Dockerfile # 读取dockerfile文件进行打包获取镜像container_name: userports:- "8888:8888"networks:- hellodepends_on:- tomcattomcat: # 单个服务标识container_name: tomcat # 启动后的容器名称 相当于 --name 指定的名称image: tomcat:9.0.27-jdk8 # 镜像ports:- 8081:8080 # 端口映射volumes:- tomcatwebapps:/usr/local/tomcat/webapps # 指定对应的数据卷networks:- hello # 指定网桥depends_on: # 服务启动依赖- tomcat1 # 服务标识- mysqlhealthcheck: # 健康检查test: ['CMD','curl','-f','http://localhost']interval: 1m30stimeout: 10sretries: 3sysctls: # 修改内核参数- net.core.somaxconn=1024- net.ipv4.tcp_syncookies=0ulimits: # 修改最大进程数nproc: 65335nofile:soft: 20000hard: 40000tomcat1:container_name: tomcat2image: tomcat:9.0.27-jdk8ports:- 8082:8080volumes:- tomcatwebapps1:/usr/local/tomcat/webappsnetworks:- hellomysql:container_name: mysql8image: mysql:8.0.18ports:- 3307:3306
# environment: # 指定启动的环境
# - MYSQL_ROOT_PASSWORD=rootenv_file: # 使用文件进行代替- ./mysql.env # mysql.evn文件内容就是 MYSQL_ROOT_PASSWORD=rootvolumes:- mysqldata:/var/lib/mysql- mysqlconfig:/etc/mysqlnetworks:- hello# 数据卷都要在这统计管理
volumes:tomcatwebapps:tomcatwebapps1:
# external: # 使用自定义数据卷名称 默认命名为 项目名_数据卷名 自定义后为 数据卷名
# truemysqldata:mysqlconfig:# 统一管理网桥
networks:hello:
6.4、Docker compose 指令
6.4.1、模板指令与指令
- 模板指令:用来书写在docker-compose.yml文件当中的指令,是用来为服务进行服务的
- 指令:用来对整个docker-compose.yml对应的这个项目进行操作
6.4.2、常用指令
up 用来启动所有的docker-compose服务
-f :表示指定启动的文件名
-d:表示后台启动
docker-compose up -f yml文件名 -d
down 用来停止服务
docker-compose down
exec 进入容器
docker-compose exec 服务id bash
ps 查看所有运行的服务
docker-compose ps
restart 重启所有服务
加服务id 表示重启单个服务
docker-compose restart 服务id
rm 删除服务
加服务id 删除单个服务
-fv 强制删除(v 包括数据卷)
docker-compose -fv 服务id
start 用来启动服务
docker-compose start 服务id
stop 停止服务
docker-compose stop 服务id
top 查看容器内运行的进程
docker-compose top 服务id
pause 暂停服务
docker-compose pause 服务id
unpuase 开启服务
docker-compose unpause 服务id
logs 查看日志
docker-compose logs 服务id
6.5、Docker 可视化工具 —— portainer
直接在dockerHub上面拉取镜像启动服务
docker pull portainer/portainer:1.24.2docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:1.24.2
直接访问远程虚拟机的9000端口,注册一个账号,链接到本地虚拟机的服务,就可以看到所提供的web可视化页面了。

同样的我们还可以将这个服务的启动加到docker-componse当中进行启动:
# 加入服务portainer:container_name: portainerimage: portainer/portainer:1.24.2ports:- 8000:8000- 9000:9000volumes:- /var/run/docker.sock:/var/run/docker.sock- portainer_data:/data# 数据卷
volumes:portainer_data:
---------------------
作者:m0_54850825
来源:CSDN
原文:https://blog.csdn.net/m0_54850825/article/details/126327361
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
相关文章:
Docker与Docker-Compose详解
1、Docker是什么? 在计算机中,虚拟化(英语: Virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍&…...
微服务之熔断器
1、高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因 或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会…...
【高校科研前沿】北京大学赵鹏军教授团队在Nature Communications发文:揭示城市人群移动的空间方向性
文章简介 论文名称:Unravelling the spatial directionality of urban mobility 第一作者及单位:赵鹏军(教授|第一作者|北京大学)&王浩(博士生|共同一作|北京大学); 通讯作者及单位:赵鹏军…...
徐州存储服务器会应用在哪些场景?
企业的业务随着不断的发展,数据信息与重要文件也在不断激增,存储服务器也受到了各个领域的广泛运用,那徐州存储服务器会应用在哪些场景当中呢? 存储服务器能够存储大量的数据信息、图片和视频等内容,是专门为数据存储设…...
个人博客搭建
liupengs blogs 环境搭建 版本环境:hexo3.8.0 node12.17.0 https://www.cnblogs.com/fengxiongZz/p/7707219.html 搭建 https://www.cnblogs.com/fengxiongZz/p/7707568.html 进阶 https://www.cnblogs.com/chengxs/p/7496265.html https://www.cnbl…...
服务器数据库三级等保的一些修改步骤
服务器整改项: 1.服务器需要设置强制密码复杂度,要求密码包含3种以上字符,最低8位 [root@localhost ~]# vi /etc/pam.d/system-auth password requisite pam_pwquality.so try_first_pass local_users_only retry=5 minlen=9 lcredit=-1 dcredit=-1 ocrredit=-1 enforrce_fo…...
Python私教张大鹏 Vue3整合AntDesignVue之DatePicker 日期选择框
案例:选择日期 <script setup> import {ref} from "vue";const date ref(null) </script> <template><div class"p-8 bg-indigo-50 text-center"><a-date-picker v-model:value"date"/><a-divide…...
springboot+vue前后端分离项目中使用jwt实现登录认证
文章目录 一、后端代码1.响应工具类2.jwt工具类3.登录用户实体类4.登录接口5.测试接口6.过滤器7.启动类 二、前端代码1.登录页index 页面 三、效果展示 一、后端代码 1.响应工具类 package com.etime.util;import com.etime.vo.ResponseModel; import com.fasterxml.jackson.…...
leetcode hot100 之 编辑距离
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 输入:word1 “horse”, word2 “ros” 输出:3 解释:…...
杨校老师项目之基于SpringBoot的理发店的预约管理系统
原系统是SSMJSP页面构成,先被修改为SpringBoot JSP页面 自助下载渠道: https://download.csdn.net/download/kese7952/89417001,或 点我下载 理发师信息: 理发师详细信息 公告信息 员工登录: 管理员登录...
SpringAI学习及搭建AI原生应用
文章目录 一、SpringAI是什么二、准备工作1.GPT-API-free2.AiCore3.eylink 三、对话案例实现1.创建项目2.实现简单的对话 四、聊天客户端ChatClient1.角色预设2.流式响应3.call和stream的区别 五、聊天模型提示词提示词模板 六、图像模型(文生图)七、语音模型1.文字转语音(文生…...
CobaltStrike权限传递MSF
一、测试环境 操作系统: 1.VMware17 2.kali 6.1.0-kali5-amd64 3.Win10x64 软件: 1.cs4.0 2.metasploit v6.3.4-dev 二、测试思路 1.cs是一款渗透测试工具,但没有漏洞利用的模块,我们可以在拿到目标主机的权限后,将…...
白嫖 kimi 接口 api
说明:kimi当然是免费使用的人工智能AI,但是要调用api是收费的. 项目: https://github.com/LLM-Red-Team/kimi-free-api 原文地址: https://blog.taoshuge.eu.org/p/272/ railway部署 步骤: 打开Github,新建仓库新建名为Dockerfile文件(没有后缀&…...
借助ChatGPT完成课题申报书中框架思路写作指南
大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。可以和我(yida985)交流学术写作或ChatGPT等AI领域相关问题,多多交流,相互成就,共同进步 在课题申报…...
SuntoryProgrammingContest2024(AtCoder Beginner Contest 357)
https://www.cnblogs.com/yxcblogs/p/18239433 题解写到博客园了,懒得复制了,直接放个链接吧~...
重温共射放大电路
1、放大概念 小功率信号变成一个大功率信号,需要一个核心器件做这件事,核心器件的能量由电源提供,通过核心器件用小功率的信号去控制大电源,来实现能量的转换和控制,前提是不能失真,可以用一系列正弦波进行…...
[DDR5 Jedec] 读操作 Read Command 精讲
依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 Read 读取命令也可以视为列读取命令。当与正确的bank地址和列地址结合使用时,通过激活命令(行访问)移动到检测放大器中的数据, 现在被推送到数…...
opencv 通过滑动条调整阈值处理、边缘检测、轮廓检测、模糊、色调调整和对比度增强参数 并实时预览效果
使用PySimpleGUI库创建了一个图形用户界面(GUI),用于实时处理来自OpenCV摄像头的图像。它允许用户应用不同的图像处理效果,如阈值处理、边缘检测、轮廓检测、模糊、色调调整和对比度增强。用户可以通过滑动条调整相关参数。 完整代码在文章最后,可以运行已经测试; 代码的…...
防火墙安全管理
大多数企业通过互联网传输关键数据,因此部署适当的网络安全措施是必要的,拥有足够的网络安全措施可以为网络基础设施提供大量的保护,防止黑客、恶意用户、病毒攻击和数据盗窃。 网络安全结合了多层保护来限制恶意用户,并仅允许授…...
MyQueue(队列)
目录 一、队列的定义 二、队列方法的实现 1、定义队列 2、后端插入 3、前端操作 4、判断队列是否为空 5、队列大小 三、队列方法的使用 一、队列的定义 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作&am…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...


