【从零开始超详细】Linux系统使用docker + docker-compose部署nacos以及SpringBoot+vue项目详细

article/2025/8/23 5:27:32

Linux系统使用docker+docker-compose部署nacos以及SpringBoot+vue项目详细文档

本文章Linux发行版为openEuler 22.03 (LTS-SP2), 多数命令与centos一致, 使用centos的小伙伴也可以参考
不知道自己的服务器是什么发行版的小伙伴可以执行如下命令查看:

cat /etc/os-release

执行结果
在这里插入图片描述

docker是什么?

给第一次接触docker的小伙伴简单解释一下docker, 使用过docker的小伙伴可以跳过:

  1. Docker是一个开源的容器化平台,它允许开发者和运维人员将应用程序及其依赖打包成标准化的、可移植的容器。这些容器可以在任何支持Docker的环境中运行,提供了一种轻量级、高效的应用程序部署解决方案。
  2. 核心概念解析
  • 容器(Container)
    容器是Docker的基本运行单元,它是一个轻量级、独立、可执行的软件包,包含:
    • 应用程序代码
    • 运行时环境
    • 系统工具
    • 系统库
    • 配置文件
    • 容器与虚拟机不同,它共享主机操作系统的内核,不需要单独的客户操作系统,因此更加轻量高效。
  • 镜像(Image)
    镜像是容器的静态模板,包含:
    • 文件系统快照
    • 应用程序及其依赖
    • 启动命令和其他元数据
  1. Docker的主要优势
  • 环境一致性
    • "开发环境"与"生产环境"完全一致
    • 解决"在我机器上能运行"的问题
    • 示例:开发人员可以在本地运行与生产环境相同的MySQL版本
  • 快速部署和扩展
    • 容器启动速度极快(秒级)
    • 便于水平扩展和负载均衡
    • 示例:电商网站在促销期间快速扩展Web服务实例
  • 资源利用率高
    • 比虚拟机更轻量
    • 在相同硬件上可运行更多服务
    • 示例:一台物理服务器可运行数十个容器
  • 隔离性和安全性
    • 每个容器有独立的文件系统和网络空间
    • 资源限制和配额控制
    • 示例:不同的微服务可以在同一主机上隔离运行
  1. 应用场景
  • 微服务架构
    • 每个微服务运行在独立容器中
    • 便于独立开发、部署和扩展
  • 持续集成/持续部署(CI/CD)
    • 构建、测试、部署的标准化环境
    • 简化流水线配置
  • 混合云环境
    • 相同的容器可以在本地和云平台运行
    • 避免供应商锁定
  • 开发环境标准化
    • 新成员快速搭建一致的开发环境
    • 避免环境配置差异导致的问题

一、使用 openEuler 官方源安装docker

  1. 安装依赖
sudo yum install -y tar bzip2 make automake gcc gcc-c++ pkgconfig libtool libseccomp-devel libcap-devel libcgroup device-mapper

在这里插入图片描述

  1. 安装 Docker
sudo yum install -y docker

在这里插入图片描述
3. 启动 Docker 并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

执行结果
在这里插入图片描述
4. 查看docker是否成功运行

sudo systemctl status docker

结果如下图
在这里插入图片描述
5. 配置镜像加速器

由于docker镜像在国外, 国内下载docker镜像经常会出现下载失败的情况, 所以最好配置docker镜像. 如下是我一直用的docker镜像配置, 直接复制即可!

# 进入docker目录
cd /etc/docker
# 创建daemon.json文件, 此文件用来写docker镜像配置
touch daemon.json
# 编辑文件, 粘贴如下配置文件, 并保存
vi daemon.json

将如下配置粘贴到daemon.json文件中

{"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","https://mirror.ccs.tencentyun.com","https://registry.cn-hangzhou.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","https://docker.1panel.live","https://atomhub.openatom.cn/","https://hub.uuuadc.top","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.ckyl.me","https://docker.awsl9527.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","data-root": "/home/docker_data","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
  1. 重启docker(为了使镜像源生效)
sudo systemctl restart docker
  1. 测试docker运行情况
# 拉取镜像
docker pull hello-world:latest
# 运行hello-world镜像
docker run hello-world

如图所示及为成功 !
在这里插入图片描述

到此docker安装结束 !

二、docker拉取并查看镜像

1. 拉取镜像

命令如下

# xxx代表镜像名例如redis, yyy代表版本例如4.0.14
docker pull xxx:yyy

如图所示
在这里插入图片描述

2. 查看镜像

docker images

如图所示
在这里插入图片描述

三、安装 Docker Compose

注意: 如果单纯使用docker部署不需要安装Docker Compose, 本文以Docker Compose部署服务故而安装Docker Compose

  1. 下载最新版 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 设置执行权限
sudo chmod +x /usr/local/bin/docker-compose
  1. 验证安装
docker-compose --version

所有步骤如图所示

在这里插入图片描述
至此, Docker Compose安装完成 !

四、使用Docker Compose部署服务

1. 配置docker-compose.yml文件

(1) 创建docker-compose.yml文件, 创建的位置最好在你项目同目录的位置创建, 如下图所示, 我本地项目在spingboot文件夹中, 我的yml文件就创建在springboot同目录下
在这里插入图片描述
(2) 配置docker-compose.yml文件, 按照如上拉取的镜像来配置yml文件

注: 本文docker-compose.yml文件位置为: /data/life_project

services:redis:image: redis:4.0.14 #镜像名container_name: redis-container # 容器名ports:- "6379:6379" # docker容器映射服务器的端口(docker容器端口:服务器端口)volumes:- /data/life_project/redis:/data # docker容器映射服务器的文件夹(数据持久化)command: redis-server --requirepass "123456" # 设置redis密码# 如下配置基本一致不再赘述, 如有疑问可以留言也可以直接百度nginx:image: nginxcontainer_name: nginx-containerports:- "8667:8667"volumes:- /data/life_project/nginx/html:/usr/share/nginx/html- /data/life_project/nginx/conf/nginx.conf:/etc/nginx/nginx.confnacos:image: nacos/nacos-server:latestcontainer_name: nacos-containerrestart: alwaysports:- "8848:8848"- "9848:9848"environment:MODE: standalone          # 单机模式SPRING_DATASOURCE_PLATFORM: mysqlMYSQL_SERVICE_HOST: 192.168.5.133MYSQL_SERVICE_DB_NAME: nacos_config  # 指定Nacos专用库MYSQL_SERVICE_USER: root            # 专用账号MYSQL_SERVICE_PASSWORD: 123456MYSQL_SERVICE_DB_PARAM: "useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"volumes:- /data/life_project/nacos/data:/home/nacos/data  # 数据持久化- /data/life_project/nacos/logs:/home/nacos/logs  # 日志持久化- /data/life_project/nacos/conf:/home/nacos/conf  # 自定义配置minio:image: minio/minio:RELEASE.2023-10-25T06-33-25Zcontainer_name: minio-containercommand: server /data --console-address ":9001"  # 控制台端口9001environment:MINIO_ROOT_USER: minioadmin      # 管理账号MINIO_ROOT_PASSWORD: minioadmin  # 管理密码ports:- "9000:9000"  # API端口- "9001:9001"  # 控制台端口volumes:- /data/life_project/minio/minio-data:/data  # 数据持久化restart: unless-stopped

如上配置的yml文件只是项目所用到的工具, 具体的项目jar包和前端包配置请继续往往下看 !

2.部署vue前端项目

注:

  1. 使用nginx反向代理前端包
  2. 本文的部署目录为: /data/life_project/
  1. 按照docker-compose.yml文件所配置的nginx
    如图所示, 在部署目录创建:
    (1) nginx/conf/nginx.conf文件(映射docker容器中的nginx.conf)
    (2) nginx/html(映射docker容器中的html文件夹, 前端文件资源都放到此文件夹中)
    在这里插入图片描述
    配置nginx.conf和html文件夹中文件, 此处自行配置, 不在赘述
  2. docker启动nginx
# 执行如下命令,启动nginx
docker-compose up -d nginx
  1. 开放端口

此步骤比较重要如果未能开放端口外部服务器请求会被防火墙拦截 导致访问不到该服务

# 开放8667端口
firewall-cmd --zone=public --add-port=8667/tcp --permanent
# 重启防火墙
firewall-cmd --reload

在这里插入图片描述
4. 验证启动成功

可以使用curl命令来测试, 也可以直接浏览器输入地址加端口看是否能出现页面, 此处使用命令测试

curl http://192.168.9.224:8667/

如下图即为成功(其他局域网服务器验证方法同理)
在这里插入图片描述

3.docker部署nacos

1.按照docker-compose.yml文件中配置nacos

在这里插入图片描述

2.nacos数据库准备

去数据库创建nacos_config数据库, 然后容器启动成功后找到 mysql-schema.sql文件: 文件目录位置如下nacos/conf/ , 去数据库执行sql!

实就是给nacos建表, 如图所示

在这里插入图片描述

3.docker启动nacos

本文配置的nacos默认是启动鉴权以及持久化数据到数据库的, 鉴权如何开启请移步我的另一篇文章, 链接如下

点击查看: nacos鉴权问题

# 启动命令
docker-compose up -d nacos
# 使用docker ps命令查看nacos是否启动成功
docker ps

启动后发现nacos状态一直处于重启中
在这里插入图片描述
查看nacos启动日志

# 116代表container_id(docker ps命令会返回), 不需要全拼用前几个符号就可以了
docker logs 116

看到如下报错(这是我遇到的错误, 如果没遇到可以跳过)
在这里插入图片描述
此时nacos配置文件是默认的, 我们并没有设置nacos配置文件, 该问题就是因为配置文件的问题, 我们需要在application.properties文件nacos进行一下设置

到nacos/conf目录下, 找到application.properties文件, 文件内容可以参考官方或者网上搜一下, 如果太懒, 下面我也给出来可以直接复制再改一下即可

application.properties

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.error.include-message=ALWAYS
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=${SPRING_DATASOURCE_PLATFORM:}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://填自己的数据库ip地址:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user.0=填自己的数据库账号
db.password.0=填自己的数据库密码
## DB connection pool settings
db.pool.config.connectionTimeout=${DB_POOL_CONNECTION_TIMEOUT:30000}
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.plugin.nacos.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}
spring.security.enabled=true
nacos.core.auth.enabled=true
# nacos账号(想改可以改, 我这边默认用naocs)
nacos.core.auth.username=nacos
# nacos密码(想改可以改, 我这边默认用naocs)
nacos.core.auth.password=nacos
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:nacos}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:nacos}
## 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
nacos.console.ui.enabled=true
nacos.core.param.check.enabled=true

再次用docker启动nacos

docker-compose start nacos

nacos正常启动 !
在这里插入图片描述

4.启动完成后又发现新问题

注: 以下内容是我本次部署遇到的问题, 小伙伴们没遇到话可以跳过

查看docker服务命令

docker ps

发现nacos一直在重启, 其实也就是nacos启动失败

查看nacos日志

# -f代表实时监控, --tail 100 代表看尾部100行数据, ca代表容器id前两个字符其实就是代表容器id
docker logs -f --tail 100  ca

错误日志如下, 按照报错提示, 发现是nacos连不上数据库

在这里插入图片描述
此时基本上有两种可能:

  1. nacos连接mysql的配置写错了, 去application.properties中查看nacos配置, 确认无误
  2. 网络不可达, 访问不到mysql服务器

这个有点坑, 通过ping命令发现两台服务器都是网络互通的, 此时我怀疑是不是nacos的配置有问题, 然而正好相反, 最后排查完确实是网络问题, 虽然两台服务器网络互通, 但是docker容器与mysql服务器网络不通, 具体排查过程不再详述, 直接给出解决办法

修改docker配置文件, 上文在修改docker镜像源的时候有修改过这个文件

# 编辑daemon.json
vi /etc/docker/daemon.json
# 添加如下配置"iptables": true,"ip-forward": true
# 重启docker
systemctl restart docker

如图所示添加配置

在这里插入图片描述
再次启动nacos, 成功 !

登录nacos成功 !

在这里插入图片描述

3.docker部署springboot项目

1.配置docker-compose.ym文件

在yml文件中添加springboot项目配置,

  base-info:image: base-info #镜像名container_name: base-info #容器名ports:- "29924:29924" # 映射端口environment:- TZ=Asia/Shanghai # 把docker容器时间改为上海时间volumes:- /data/life_project/springboot/base-info/logs:/app/logs  # 映射日志目录- /data/life_project/springboot/base-info/config:/app/ # 映射jar包以及配置文件目录

注意:以后构建镜像会按照此配置来构建, 请重点关注yml的配置 !

2.配置Dockerfile文件

把jar包和bootstrap.yml文件拷贝过来, bootstrap.yml文件配置此文不详述

# 创建Dockerfile文件
touch Dockerfile

在这里插入图片描述

# 编辑Dockerfile文件
vi Dockerfile

把如下内容拷贝到Dockerfile文件中, 请按照您所启动的jar名称和端口修改如下文件

FROM openjdk:8u262 #设置基础镜像为jdk# 设置工作目录
WORKDIR /app# 创建日志目录并设置权限(推荐使用具体用户而非777)
RUN mkdir -p /app/logs && \chown -R 1000:1000 /app/logs && \chmod -R 755 /app/logs# 复制JAR文件(使用明确的目标文件名)
COPY ./base-info-1.0-SNAPSHOT.jar  /app/base-info-1.0-SNAPSHOT.jar
COPY ./bootstrap.yml /app/bootstrap.yml
# 声明环境变量(统一管理配置)
ENV JAVA_OPTS="\-Dfile.encoding=utf-8 \-Dspring.cloud.compatibility-verifier.enabled=false \-Xms1024M \-Xmx2048M \-Xmn512M \-XX:MaxMetaspaceSize=512M \-XX:MetaspaceSize=512M"# 声明暴露端口
EXPOSE 29924# 使用数组格式的ENTRYPOINT
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/base-info-1.0-SNAPSHOT.jar"]

3.构建springboot项目镜像

完成步骤二后, 开始构建镜像

# base-info为docker-compose.yml中已经规定好的image, 要对应起来
docker build -t base-info . # 注意后面有个 . 

构建结果如图所示

在这里插入图片描述

4.构建完成后启动项目

# 使用docker-compose命令启动项目
docker-compose up-d base-info

到此使用docker部署springboot项目就完成了 !


http://www.hkcw.cn/article/HvvepmMJFV.shtml

相关文章

利用Python制作环保志愿者招募海报

1. 文档概述 本研究文档详细论述了运用Python编程语言中的Pillow库(PIL)进行设计并制作一张专业环保志愿者招募海报的完整流程。该海报以“守护绿色家园”为主题,旨在激励社会公众积极参与森林保护的志愿活动。通过编程实现,海报中…

软考-系统架构设计师-第十五章 信息系统架构设计理论与实践

信息系统架构设计理论与实践 15.2 信息系统架构风格和分类15.3 信息系统常用的架构模型15.4 企业信息系统总体框架15.5 信息系统架构设计方法 15.2 信息系统架构风格和分类 信息系统架构风格 数据流体系结构风格:批处理、管道-过滤器调用/返回体系结构风格&#x…

德思特新闻 | 德思特与es:saar正式建立合作伙伴关系

德思特新闻 2025年5月9日,德思特科技有限公司(以下简称“德思特”)与德国嵌入式系统专家es:saar GmbH正式达成合作伙伴关系。此次合作旨在将 es:saar 的先进嵌入式开发与测试工具引入中国及亚太市场,助力本地客户提升产品开发效率…

【Simulink模型标准化开发】需求管理与基线测试--- Requirements ManagementSimulinkTest

前言:Simulink模型是嵌入于Matlab之中的一个模块化开发工具,它在嵌入式领域和应用层逻辑的搭建上享有声誉。并且,Simulink与C语言一样有着一套标准化的开发流程,因此它也具备安全性、可靠性、可移植性等优势。而在本篇文章中&…

前端 jQuery 简单实现一个网页格斗游戏示例

效果图 源代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简易格斗游戏</t…

stm32 + ads1292心率检测报警设置上下限

这个项目是在做心率检测的时候一个小伙伴提出来的&#xff0c;今年五一的时候提出来的想法&#xff0c;五一假期的时候没时间&#xff0c;也没心情做这个&#xff0c;就把这个事情搁置了&#xff0c;在月中做工作计划的时候&#xff0c;就把这个小项目排进来了&#xff0c;五一…

git+svn+sourcetree客户端下载和安装教程

1.引言 本文带来git、svn、sourcetree的软件的下载链接和安装介绍。git、svn是文件版本控制工具&#xff0c;电脑安装后需要使用cmd命令来提交或拉取文件。非常麻烦&#xff0c;推荐使用sourcetree等工具来提交代码 sourcetree界面 压缩包内容&#xff0c;git、svn、svn汉化工…

华为湖南总部大楼刷新马栏山风景线:已经进入内部装修阶段

华为湖南总部大楼刷新马栏山风景线。5月29日,航拍镜头下的位于马栏山视频文创产业园的华为湖南总部大楼项目大楼十分引人注目,三栋楼体采用金色线条和玻璃元素,成为拔节生长的马栏山里一道亮丽的风景。从现场施工来看,该项目园林绿化已经完成,已经进入内部装修阶段。该项目…

小学生捡到手机后交给民警被送锦旗:失主准备了一面“哪吒锦旗”

小学生捡到手机后交给民警被送锦旗。近日,四川成都。7岁的小学生廖元祎在路边捡到一部手机,送到了派出所。巧合的是,就在廖元祎走进派出所不久,失主也来到派出所报失。看到手机物归原主,廖元祎开心地跳起来。为了给廖元祎一个表扬,失主准备了一面“哪吒锦旗”,和民警一起…

王力宏称为癌症研究者哥哥感到骄傲

王力宏称为癌症研究者哥哥感到骄傲。5月29日下午,知名歌手王力宏在社交媒体晒出哥哥王力德的演讲视频,以及和哥哥的合影。王力宏表示:“为我哥哥王力德博士感到骄傲!他在香港举行的ASGH亚洲医疗健康高峰会上发表演讲,思路清晰、充满远见。哥哥介绍了自己在希望之城实验室的…

风云二号 F 星:地球静止轨道上的气象先锋

风云二号卫星是我国第一代地球静止轨道气象卫星&#xff0c;从 1986 年国家正式批复风云二号气象卫星工程以来&#xff0c;经过多年的研制与发展。风云二号 F 星作为 03 批的首发星&#xff0c;其成功发射进一步提高了我国静止气象卫星的观测能力和技术水平&#xff0c;对于确保…

论文笔记:DreamDiffusion

【初中生也能看得懂的讲解】 想象一下&#xff0c;我们能不能直接用“脑子想”来画画&#xff1f;比如你想到一只猫&#xff0c;电脑就能画出一只猫。这听起来是不是很酷&#xff1f;科学家们一直在努力实现这个“意念画画”的梦想。 以前&#xff0c;科学家们可能会用一种叫…

输电线路的“智慧之眼”:全天候可视化监测如何赋能电网安全运维

在电力需求持续攀升、电网规模日益庞大的今天&#xff0c;输电线路的安全稳定运行面临着前所未有的挑战。线路跨越地形复杂多变&#xff0c;尤其是在偏远山区、铁路沿线及恶劣天气条件下&#xff0c;传统的人工巡检方式显得力不从心——效率低、风险高、覆盖有限。如何实现更智…

通过域名访问k8s-pod方案

针对一些特殊业务需要通过pod名称或域名直接访问pod内部服务。本文主要提供一种暴露pod域名到公司内网的方案。 01 技术方案 1、使用coredns基于etcd的域名解析插件 2、单独部署一套server&#xff0c;该server负责接收agent发来的域名记录请求&#xff0c;并将数据写到etcd。 …

【C++高级主题】命令空间(三):未命名的命名空间

目录 一、未命名的命名空间的基本概念 1.1 定义与特点 1.2 基本语法 1.3 访问方式 1.4 未命名的命名空间的作用 二、未命名的命名空间与静态声明的比较 2.1 静态声明的作用 2.2 未命名的命名空间的优势 2.3 示例代码比较 2.4. 未命名的命名空间的作用域和链接属性 三…

生成式人工智能:重构软件开发的范式革命与未来生态

引言 生成式人工智能&#xff08;GenAI&#xff09;正以颠覆性力量重塑软件开发的底层逻辑。从代码生成到业务逻辑设计&#xff0c;从数据分析到用户交互&#xff0c;GenAI通过其强大的推理能力与场景适应性&#xff0c;将传统开发流程的“复杂工程”转化为“敏捷实验”&#…

石宇奇称需要重视伤病:近期因治疗胃病导致腹部皮肤被烫出水泡

石宇奇称需要重视伤病。5月27日,在2025年新加坡羽毛球公开赛男单首轮比赛中,中国名将石宇奇以2比0战胜印尼选手郑加恒,顺利晋级十六强。赛后他透露,近期因治疗胃病导致腹部皮肤被烫出水泡。据了解,石宇奇长期受胃部不适和消化问题困扰,尤其2025年全英赛后症状加重,苏迪曼…

Attention Is All You Need论文阅读笔记

Attention is All You Need是如今机器学习研究者必读的论文&#xff0c;该文章提出的Transformer架构是如今很多机器学习项目的基础&#xff0c;说该文章极大推动了机器学习领域的研究也不为过。 但这么重要&#xff0c;也是必读的文章对初学者来说其实并不友好&#xff0c;很多…

持续12年的股权争夺战即将落幕 75%股权归属终见分晓

持续12年的股权争夺战即将落幕 75%股权归属终见分晓。一场持续12年的股权争夺战即将落幕。胡绪峰表示相信二审能公正判决,75%的股权归属问题即将揭晓。这场股权争夺战涉及陕西省公安厅厅长批示、最高人民法院判决,并影响了2000多户购房人的居住问题。2025年5月27日,王坚与陕…

Linux入门

环境配置&#xff1a; linux安装 https://old-releases.ubuntu.com/releases/14.04.4/ubuntu-14.04-server-amd64.isohttps://www.releases.ubuntu.com/14.04/下载后vmware打开iso文件 配置linux开机设置ssh与samba xshell:使用ip链接linux &#xff1a;linux获取ip&#xff…