docker学习快速入门
目录
- Linux下安装docker
- 配置阿里云镜像加速
- docker命令
- 部署安装Tomcat、ES
- 容器数据卷
- DockerFile
- docker网络
- 制作tomcat镜像
- Redis集群部署
- SpringBoot微服务打包docker镜像
- 拓展
什么是Docker
Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例。服务器的性能可以被压榨到极致。Docker是基于Go语言开发的,开源项目。
镜像(image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,镜像=>run=>容器,通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。启动,停止,删除。
仓库(repository):
仓库就是存放镜像的地方。
官网:https://www.docker.com/
文档地址:https://docs.docker.com/
Doker镜像仓库地址:https://hub.docker.com/
Linux下安装docker
1、需要的安装包
yum install -y yum-utils
2、设置镜像的仓库
yum config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、更新yum软件包索引。
yum makecache
4、安装
yum install docker-ce docker-ce-cli containerd.io
5、启动docker
systemctl start docker`
6、使用docker version查看是否安装成功
docker run hello-world
配置阿里云镜像加速
登录阿里云,找到容器服务。找到镜像加速地址,配置使用。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.xxx.xxx.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker命令
docker --help 帮助
docker version 版本
docker info 详细信息
docker stats实时查看容器运行情况
docker history IMAGEID查看镜像构建记录
镜像命令:
docker images [-a所有镜像,-q只要镜像ID]查看本机镜像
docker tag 镜像id 新镜像名:tag标签 克隆命名新的镜像
docker search xxx 搜素镜像
docker search mysql --filter=STARS=3000
[root@CentOS7 docker]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source… 14616 [OK]
mariadb MariaDB Server is a high performing… 5573 [OK]
docker pull xx 下载镜像,默认最新版(分层下载,节省开销,加快速度)
指定版本下载:docker pull mysql:5.7
docker rmi [-f] 镜像名/镜像ID 删除镜像
删除所有镜像 文件: docker rmi -f $(docker images -aq)
生成镜像
docker commit 容器id xx镜像名,根据容器的changes生成一个镜像,-a,作者名;-m,信息。
docker build [options] 生成路径path,根据dockerfile生成镜像。
docker build [选项] 镜像名[:标签]或者上下文路径或者URL 所执行目录(.表示在当前目录执行)
例:docker build -f mydockerfile -t mytomcat .
上传提交镜像
docker push [OPTIONS] NAME[:TAG],上传一个镜像到远程仓库。
Options:
-a, --all-tags,将所有版本的镜像提交。
–disable-content-trust 忽略镜像提示。
-q, --quiet ,简洁生成。
上传到dockerhub
1)在hub.docker.com创建账号
2)登录账户:docker login -u xxx -p
3)上传镜像
docker push 镜像:tag
上传到阿里云
1)登录到阿里云,找到容器镜像服务
2)创建命名空间
3)创建容器镜像仓库
4)查看仓库基本信息,获取ip地址,按照操作指南执行
5)比如登录:
sudo docker login --usename xxx registry.cn-beijing.aliyuncs.com
容器命令:
有了镜像才能创建容器。
运行容器
docker run [options] 镜像 ,创建容器运行镜像
--name, 命名容器,Repository:Tag
--rm,退出时删除容器
-d ,以后台方式运行,若容器不向客户端提供服务则停止运行
-it ,交互方式运行,启动进入容器查看内容
exit或ctrl+d退出停止运行;ctrl + p + q退出不停止
-p ,指定容器端口,主机端口:容器端口
例1:交互式运行centos
docker run -it centos /bin/bash #会进入容器的交互终端
docker run -itd centos /bin/bash #以后台交互方式运行容器,不会进入容器
后面的/bin/bash的作用是表示运行bash ,docker中必须要保持一个进程的运行,这个/bin/bash就表示启动容器后启动bash。
例2:以脚本方式运行centos镜像,每隔1秒启动容器。
docker run -d centos /bin/bash -c "while true;do echo xxx;sleep 1 ; done"
例3:以后台方式创建容器运行nginx镜像,并向外开放3344端口
docker run -d --name nginx01 -p 3344:80 nginx
查看容器
docker ps [options],查看正在运行的容器
-a查看运行记录,-n=?显示最近运行的容器,-q显示ID
docker container ls
删除容器
docker rm 容器id,删除容器;-f,强制删除
例:删除所有容器
docker rm -f $(docker ps -aq)
启动和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill id,强制停止运行
(生成)镜像
docker container commit 容器id xx镜像名,-a,作者名,-m,信息。
docker build [options] 生成路径path,根据dockerfile生成镜像。
docker build [选项] 镜像名[:标签]或者上下文路径或者URL 所执行目录(.表示在当前目录执行)
-f指定dockerfile文件,-t命名镜像
例1:提交容器3fdf3rfe4生成镜像tomcat01
docker commit -a="xxx" -m="xxx" 3fdf3rfe4 tomcat01:1.0
例2:根据dockerfile生成镜像保存到当前目录
docker build -f /home/dockerfile -t myimage:1.0 .
其他命令:
docker logs [options] 容器id,查看日志
Options:
–details,显示详细信息
-f, --follow ,实时输出日志
–since ,显示在某个时间后的日志
-n, --tail ,展示最后n行日志
-t, --timestamps ,显示时间
–until ,显示一个时间前的日志
docker top 容器id,查看正在运行的容器中的进程
docker inspect 容器id,查看容器的元数据(返回的JSON格式)
docker exec -it 容器id /bin/bash,以新终端进入正在运行的容器
docker attach 容器id,进入容器正在运行的终端
docker cp 容器id:文件绝对路径 主机目的路径,从容器中拷贝文件到主机
docker pause 容器id 悬挂中断
docker unpause 容器id
部署安装Tomcat、ES
tomcat
1、下载镜像
docker pull tomcat:9.0
2、启动镜像
docker run -d --name tomcat01 -p 3355:8080 tomcat:9.0
3、进入tomcat容器中,配置/usr/local/tomcat/webapps目录
docker exec -it tomcat01 /bin/bash
cp -r webapps.dist webapps
4、访问测试
docker ps
curl localhost:3355
ES
docker run -d --name es01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.7.0
容器数据卷
让容器内的文件数据与linux主机或容器之间同步互通,形成共享,修改容器配置文件时可直接在主机服务器上修改,不需要进入容器,实现容器数据持久化。
方式一、-v卷挂载命令
例:docker run -it -v 主机路径:容器内路径 centos /bin/bash
在主机上通过docker inspect 容器,查看mount挂载情况。
例:安装mysql同步数据
docker pull mysql:5.7
docker run -d -p 3304:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_01 mysql:5.7
参数说明:-d后台运行,-p端口映射,-v卷映射,-e环境配置。
容器启动成功后在本地连接3304端口连接数据库。
匿名挂载:-v 容器内路径
docker run -d -p --name nginx01 -v /etc/nginx nginx
具名挂载:-v 卷名:容器内路径
docker run -d -p --name nginx01 -v nginx_01:/etc/nginx nginx
默认卷挂载到本地的/var/lib/docker/volumes/
指定路径挂载:-v 本地路径:容器路径
docker run -d -p --name nginx01 -v /home/nginx01/:/etc/nginx nginx
卷管理
docker volume [options],管理数据卷,参数说明:
create ,创建一个卷;
inspect,查看卷详细信息;
ls,列出所有卷;
prune,删除未使用的本地卷;
rm,删除卷
方式二、dockerfile
1、创建一个dockerfile文件
vim dockerfile
2、编写dockerfile
FROM centos
VOLUME ["volume01"]
CMD echo "----end----"
CMD /bin/bash
#解释
FROM 镜像名:标签 #FROM指定基础镜像,其必须为Dcokerfile中第一条指令
RUN 命令 #在该镜像中执行命令,如果执行多个命令用 &&连接起来
3、docker build 生成镜像文件
docker build -f /home/dockerfile -t 镜像名(repo):版本标签(tag) .
方式三、容器之间–volumes-from
创建一个容器docker02与其他容器共享数据。
docker run -it --name docker02 --volumes-from docker01 nginx
删除容器docker01数据依旧存在,因为它的数据在本地/var/lib/docker/volume下。
DockerFile
dockerfile用来构建镜像文件,命令脚本。
dockerfile指令:
FROM #基础镜像
MAINTAINER #维护者,姓名+邮箱
RUN #镜像构建时需要运行的命令
ADD #添加文件,若是压缩包则自动解压
WORKDIR #镜像工作目录
VOLUME #挂载目录
EXPOSE #保留端口配置
CMD #指容器启动需要运行的命令,只有最后一个生效,追加命令会覆盖
ENTRYPOINT #指定容器运行时需要的命令,可以docker run时追加命令
ONBUILD #当构建一个被继承的dockerfile时触发onbuild指令
COPY #将主机文件拷贝到制作的镜像中
ENV #构建时设置环境变量
例:编写一个mycentos镜像文件,生成镜像
vim mydockerfile-centos
FROM centos
MAINTAINER z<zzh@163.com>
ENV MYWORKPATH /usr/local
WORKDIR $MYWORKPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYWORKPATH
CMD echo "---end---"
CMD /bin/bash
docker build -f mydockerfile-centos -t mycentos:1.0 .
CMD与ENTRYPOINT比较
相同点:
1、只能写一条,如果写了多条,那么只有最后一条生效
2、容器启动时才运行,运行时机相同
不同点:
ENTRYPOINT不会被运行的command覆盖,而CMD则会被覆盖,如果我们在Dockerfile种同时写了ENTRYPOINT和CMD,并且CMD是一个完整的指令,那么它们两个会互相覆盖,谁在最后谁生效。
docker网络
docker网络是一种虚拟网络,网络为成对的bridge桥接模式。主机可与创建的容器进行通信,但是容器之间通信需要额外的操作。docker默认给容器分配一个虚拟内部ip地址,网络为docker0。
例:docker exec -it tomcat01 ping tomcat01
无法ping通,因为容器在docker0网络,无法通过容器名ping通。
ping不同的另一种原因:
OCI runtime exec failed: exec failed: unable to start container process: exec: "ping": executable file not found in $PATH: unknown
以上报错是因为docker创建的容器相当于一个miniLinux,很多命令和软件没有安装,包括network这一网络工具都没有。下载软件包只能通过apt-get或wget和curl命令。
docker network网络管理
docker network [options],options如下:
connect,连接容器到网络
create,创建网络
inspect ,查看网络
ls ,列出所有网络
rm ,删除网络
–link实现单向通信
运行tomcat02容器,使其能够与tomcat01通信。原理是在容器的/etc/hosts文件中配置了主机名与ip地址映射。
docker run -d --name tomcat02 --link tomcar01 tomcat
自定义网络
自定义网络支持通过容器名通信,创建一个自定义网络:
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 Mynet
–net指定网络
使用自定义网络创建容器,在该网络中为容器分配ip:
docker run -d --name tomcat02 --net Mynet tomcat
在该网络中的容器可以相互通信,可ping tomcat02。
容器-网络连接
如何让一个容器连接到另一个网络或者与另一个网络中的容器通信,可使用docker network connect,原理是将容器添加到该网络中。
docker network connect [OPTIONS] NETWORK CONTAINER
Options:
–alias 为网络添加作用范围scope
–driver-opt 选择网络模式driver
–ip 指定一个容器ip地址
–link list 添加到另一个容器的连接
–link-local-ip 为容器添加一个本地ip地址
docker network connect Mynet tomcat02,将tomcat02挂到Mynet网络。
可使用docker network inspect 查看网络中有哪些容器。
实战
如何使用docker制作tomcat镜像并上传至阿里云,部署redis和springboot项目。
制作tomcat镜像
通过dockerfile制作一个tomcat镜像并发布到阿里云镜像仓库。
1、在用户工作的主目录中创建一个build/tomcat文件夹
2、准备tomcat和jdk安装包上传到该文件夹下
3、在文件夹下创建一个README.txt文件并编写Dockerfile文件
touch README.txt
vim Dockerfile
FROM centos#本地基础镜像docker images查看是否有该镜像否则将失败
MAINTAINER zzh<xxxx@qq.com>
COPY README.txt /usr/local/
ADD /root/build/tomcat/apache-tomcat-8.5.94.tar.gz /usr/local/
ADD /root/build/tomcat/jdk-8u151-linux-x64.tar.gz /usr/local/RUN yum -y install vim
RUN yum -y install net-toolsENV MYPATH /usr/local
WORKDIR $MYPATHENV JAVA_HOME /usr/local/jdk1.8.0_151
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.94
ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.94
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binEXPOSE 8080CMD /usr/local/apache-tomcat-8.5.94/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.94/logs/catalina.out
4、构建diytomcat镜像
docker build -t diytomcat .
5、创建容器运行
docker run -d -p 3355:8080 --name mytomcat01 -v /root/build/tomcat/test:/usr/local/apache-tomcat-8.5.94/webapps/test -v /root/build/tomcat/logs:/usr/local/apache-tomcat-8.5.94/logs diytomcat
6、测试运行
在linux主机测试:curl localhost:3355或直接访问。
7、上传至阿里云镜像仓库
docker login --username=xxx registry.cn-shanghai.aliyuncs.com
#重命名镜像
docker tag 镜像 registry.cn-shanghai.aliyuncs.com/命名空间/仓库名:tag
docker push registry.cn-shanghai.aliyuncs.com/命名空间/仓库名:tag
Redis集群部署
1、创建网络
docker network create redis --subnet 172.17.0.0/16
2、通过脚本创建redis配置
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file node.conf
cluster-node-timeout 5000
cluster-announce-ip 172.17.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
donedocker run -p 637${port}:6379 -p 16371:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.17.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
3、查看redis容器,进入容器
docker ps
docker exec -it redis-1 /bin/sh
3、创建redis集群
redis-cli --cluster create 172.17.0.11:6379 172.17.0.12:6379 172.17.0.13:6379 172.17.0.14:6379 172.17.0.15:6379 172.17.0.16:6379 --cluster-relicas 1
4、查看集群
redis-cli -c
cluster info
cluster nodes
SpringBoot微服务打包docker镜像
1、将springboot项目打包为xxx.jar
2、编写Dockerfile文件
FROM java:8
MAINTAINER z<xx@qq.com>COPY *.jar /app.jar
EXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]
3、构建镜像
docker build -t myApp .
4、发布镜像,下载镜像运行
docker push myApp
docker pull myApp
docker run -d -p 8080:8080 --name X-WEB-APP myApp
5、测试
curl localhost:8080
拓展
compose、swarm、Jenkins
相关文章:
docker学习快速入门
目录 Linux下安装docker配置阿里云镜像加速docker命令部署安装Tomcat、ES容器数据卷DockerFiledocker网络制作tomcat镜像Redis集群部署SpringBoot微服务打包docker镜像拓展 什么是Docker Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例。服务…...
大语言模型LLM推理加速:LangChain与ChatGLM3-6B的推理加速技术(LLM系列11)
文章目录 大语言模型LLM推理加速:LangChain与ChatGLM3-6B的推理加速技术(LLM系列11)引言LangChain框架下的推理优化LangChain的核心理念与功能特点分布式计算与知识图谱集成优化推理路径实例分析:使用链式查询与缓存机制提升模型推…...
GSVA -- 学习记录
文章目录 1.原理简介2. 注意事项3. 功能实现代码实现部分 4.可视化5.与GSEA比较 1.原理简介 Gene Set Variation Analysis (GSVA) 基因集变异分析。可以简单认为是样本数据中的基因根据表达量排序后形成了一个rank list,这个rank list 与 预设的gene setsÿ…...
基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…...
Docker基础篇(六) dockerfile体系结构语法
FROM:基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER :镜像维护者的姓名和邮箱地址 RUN:容器构建时需要运行的命令 EXPOSE :当前容器对外暴露出的端口号 WORKDIR:指定在创建容器后,终端默认登…...
【Python编程+数据清洗+Pandas库+数据分析】
数据分析的第一步往往是数据清洗,这个过程关键在于理解、整理和清洗原始数据,为进一步分析做好准备。Python 语言通过Pandas库提供了一系列高效的数据清洗工具。接下来,该文章将通过一个简单的案例演示如何利用 Pandas 进行数据清洗ÿ…...
网络安全之防御保护8 - 11 天笔记
一、内容安全 1、攻击可能只是一个点,防御需要全方面进行 2、IAE引擎 3、DFI和DPI技术 --- 深度检测技术 深度行为检测技术分为:深度包检测技术(DPI)、深度流检测技术(DFI) DPI --- 深度包检测技术 --- 主要针对完整的数据包…...
LiveGBS流媒体平台GB/T28181功能-查看国标设备下通道会话列表直播|回放|对讲|播放|录像|级联UDP|TCP|H264|H265会话
LiveGBS流媒体平台GB/T28181功能-查看直播|回放|对讲|播放|录像|级联UDP|TCP|H264|H265会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、下载…...
Python和Jupyter简介
在本notebook中,你将: 1、学习如何使用一个Jupyter notebook 2、快速学习Python语法和科学库 3、学习一些IPython特性,我们将在之后教程中使用。 这是什么? 这是只为你运行在一个个人"容器"中的一个Jupyter noteboo…...
Linux——静态库
Linux——静态库 静态库分析一下 ar指令生成静态库静态库的使用第三方库优化一下 gcc -I(大写的i) -L -l(小写的l),头文件搜索路径,库文件搜索路径,连接库 今天我们来学习静态库的基本知识。 静态库 在了解静态库之前,我们首先来…...
fastjson序列化MessageExt对象问题(1.2.78之前版本)
前言 无论是kafka,还是RocketMq,消费者方法参数中的MessageExt对象不能被 fastjson默认的方式序列化。 一、查看代码 Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,ConsumeConcurrentlyContext context) {t…...
osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)
目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …...
ElasticSearch之找到乔丹的空中大灌篮电影
写在前面 本文看一个搜索的实际例子,找到篮球之神乔丹的电影Space Jam,即空中大灌篮。 正式开始之前先来看下要查询的目标文档,以及查询的text: 要查询的目标文档 {..."title": "Space Jam",..."ove…...
CSS @符规则(@font-face、@keyframes、@media、@scope等)
随着前端开发的不断发展,CSS 的功能日益强大,其中 规则扮演着举足轻重的角色。它们不仅扩展了 CSS 的功能边界,还为开发者提供了更加灵活和高效的样式定义方式,让我们来一同探索这些强大而实用的 规则吧! font-face …...
uniapp微信小程序解决上方刘海屏遮挡
问题 在有刘海屏的手机上,我们的文字和按钮等可能会被遮挡 应该避免这种情况 解决 const SYSTEM_INFO uni.getSystemInfoSync();export const getStatusBarHeight ()> SYSTEM_INFO.statusBarHeight || 15;export const getTitleBarHeight ()>{if(uni.get…...
项目:shell实现多级菜单脚本编写
目录 1. 提示 2. 演示效果 2.1. 一级菜单 2.2. 二级菜单 2.3. 执行操作 3. 参考代码 1. 提示 本脚本主要实现多级菜单效果,并没有安装LAMP、LNMP环境,如果要用在实际生成环境中部署LNMP、LAMP环境,只需要简单修改一下就可以了。 2. 演…...
Collections常用方法(Java)
Collections常用方法 使用 sort(List<T> list) 对 List 进行排序: List<Integer> numbers new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6)); Collections.sort(numbers); System.out.println("排序后的列表:" …...
Mysql整理-概述
Mysql概述 MySQL是一种流行的开源关系数据库管理系统(RDBMS),它使用结构化查询语言(SQL)来访问、管理和处理数据。它是基于客户端-服务器模型的数据库,意味着数据存储在服务器上,而用户可以通过客户端软件从不同的位置访问这些数据。 MySQL的主要特点包括: 开源软件:M…...
ubuntu+QT+ OpenGL环境搭建和绘图
一,安装OpenGL库 安装OpenGL依赖项:运行sudo apt install libgl1-mesa-glx命令安装OpenGL所需的一些依赖项。 安装OpenGL头文件:运行sudo apt install libgl1-mesa-dev命令来安装OpenGL的头文件。 安装GLUT库:GLUT(Ope…...
Vue实现打印功能(vue-print-nb)
1、安装依赖 npm install vue-print-nb --save2、在main.js中引入 import Print from vue-print-nb Vue.use(Print)3、在组件的打印区域标签上加 id“printArea” <div id"printArea"> 打印区域 </div>4、在组件的打印按钮标签上使用指令 v-print“pr…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
