最新资讯

  • 将jar包打成docker镜像并部署在Linux上

将jar包打成docker镜像并部署在Linux上

2025-05-10 03:00:51 3 阅读

文章目录

  • 1. 准备工作
    • 1.1 在Linux上安装docker
      • 1.1.1 卸载原有的docker(可选)
      • 1.1.2 安装docker
      • 1.1.3 启动docker
    • 1.2 将Java项目打包成jar包
    • 1.3 将jar包上传到Linux上
    • 1.4 编写Dockerfile文件
    • 1.5 Dockerfile文件知识补充
      • 1.5.1 在容器启动时执行多个命令
      • 1.5.2 Dockerfile详解
  • 2. 构建镜像
  • 3. 创建容器并运行
  • 4. 测试
  • 5. 可能遇到的问题
    • 5.1 构建容器时可能遇到的问题
    • 5.2 运行容器时可能遇到的问题
      • 5.2.1 问题一
      • 5.2.2 问题二

更多 Docker 的使用技巧可以查看 Docker 专栏:Docker

本文演示的将 jar 包打成 docker 镜像适合第一次进行类似操作的同学,如果已经有过类似的操作,更建议采用 IDEA + Docker 一键部署 SpringBoot 项目 的方法,具体可以参考我的另一篇博文:IDEA+Docker一键部署项目SpringBoot项目

1. 准备工作

本次演示使用的 Linux 版本为 CentOS 7.6,使用的 jdk 版本为 1.8

1.1 在Linux上安装docker

安装docker有其它更简单的方法,例如利用宝塔一键式安装

考虑到有些小伙伴可能没有使用过宝塔,所以本次演示使用指令的方式安装docker

1.1.1 卸载原有的docker(可选)

当一条命令太长而需要分成多行输入时,可以在行尾使用反斜杠,告诉 Shell 下一行指令实际上是当前命令的延续,而不是一个新的命令

如果你的Linux系统安装过旧版本的Docker,可以使用下面命令卸载

yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-selinux 
                  docker-engine-selinux 
                  docker-engine 
                  docker-ce

1.1.2 安装docker

第一步:安装yum工具

yum install -y yum-utils 
           device-mapper-persistent-data 
           lvm2 --skip-broken

第二步:更新镜像源

# 设置docker镜像源
yum-config-manager 
    --add-repo 
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

指令的详细解释:

  • sed: 流编辑器的命令
  • -i: 选项告诉 sed 直接修改源文件。通常 sed 默认只输出修改后的内容到标准输出,而不修改源文件。使用 -i 选项后,它会直接修改源文件内容
  • 's/download.docker.com/mirrors.aliyun.com/docker-ce/g': 这是 sed 的替换命令
    • s: 表示执行替换操作
    • download.docker.com: 被替换的字符串,即 Docker 官方仓库的 URL
    • mirrors.aliyun.com/docker-ce: 替换后的字符串,即阿里云提供的 Docker CE(Community Edition)镜像仓库的 URL。注意,由于 /sed 命令中是特殊字符,所以使用 / 来表示字面意义上的 /
    • g: 全局替换标志,表示替换每一行中所有匹配的字符串,而不是只替换第一个匹配的字符串
  • /etc/yum.repos.d/docker-ce.repo: 这是 sed 命令要操作的文件路径。这个文件是 Docker CE 的 Yum 仓库配置文件,其中包含了 Docker 软件包的仓库地址

第三步:正式安装

yum install -y docker-ce

docker-ce为docker的社区版本(ce表示community edition)

1.1.3 启动docker

# 启动docker服务
systemctl start docker

# 设置docker服务开机自启
systemctl enable docker

输入以下指令查看docker-ce的版本

docker -v

1.2 将Java项目打包成jar包

本次演示使用的是一个较为简单的 SpringBoot 项目,项目的整体结构如下

HelloWorldController.java

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {
    @GetMapping("/")
    public String echo() {
        return "

Hello, World!

"
; } }

application.yml

server:
  port: 16256

用 Maven 将 SpringBoot 项目打包成 jar 包

如果是通过阿里云脚手架创建的 SpringBoot 项目,记得在 pom.xml 文件中把打包插件中的 true 标签删掉

1.3 将jar包上传到Linux上

将jar包上传到Linux的 /tmp/docker 目录下(你也可以选择上传到其它目录)

如果上传失败,可能是 /tmp/docker 目录没有写入的权限,运行以下指令修改docker目录的权限

cd /tmp

chmod 777 -R docker

1.4 编写Dockerfile文件

在 jar 包所在的目录下,新建一个名为 Dockerfile 的文件,文件内容如下(将docker-demo-0.0.1-SNAPSHOT.jar换成你的jar包的名称

# 指定基础镜像
FROM java:8-alpine

# 复制文件到镜像中
COPY ./docker-demo-0.0.1-SNAPSHOT.jar /tmp/docker-demo-0.0.1-SNAPSHOT.jar

# 暴露端口
EXPOSE 16256

# 指定容器启动时运行的指令
ENTRYPOINT ["java", "-jar", "/tmp/docker-demo-0.0.1-SNAPSHOT.jar"]

补充:

  • java:8-alpine镜像中已经内置了jdk1.8,也配置好了 JAVA_HOME 环境变量
  • 如果想复制多个文件到镜像中,可以使用多个COPY指令
  • 如果想放行多个端口,可以使用多个EXPOSE指令
  • 一个 Dockerfile 只能有一个 ENTRYPOINT 指令(如果想在ENTRYPOINT中执行多条指令,可以参考本文的1.5 Dockerfile文件知识补充 章节
  • 注释只能另起一行,不能写在代码后面,否则会报错
  • 目标路径最好使用绝对路径,如果目标路径不存在,Docker 会自动创建
  • 如果复制的是目录,Docker 会复制目录中的所有内容,包括子目录和文件,但不包括目录本身。如果目录中包含隐藏文件或以点开头的文件,它们也会被复制

注意:

  • COPY指令的源文件请使用相对路径,不要使用绝对路径
  • 请确保 jar 包在 Dockerfile 文件所在目录或 Dockerfile 文件所在目录的子目录下

1.5 Dockerfile文件知识补充

1.5.1 在容器启动时执行多个命令

一个 Dockerfile 只能有一个 ENTRYPOINT 指令

如果想在容器启动时执行多个命令,可以将这些命令放在一个脚本中,然后在 ENTRYPOINT 中调用这个脚本

# 指定基础镜像
FROM java:8-alpine

# 复制文件到镜像中
COPY ./docker-demo-0.0.1-SNAPSHOT.jar /tmp/docker-demo-0.0.1-SNAPSHOT.jar
COPY ./start.sh /tmp/start.sh

# 暴露端口
EXPOSE 16256

# 赋予脚本文件执行权限
RUN chmod +x /tmp/start.sh

# 指定容器启动时运行的指令
ENTRYPOINT ["/tmp/start.sh"]

start.sh脚本文件的内容如下

#!/bin/ash

# 第一个命令
java -jar /tmp/docker-demo-0.0.1-SNAPSHOT.jar

# 第二个命令(如果需要的话)
echo "Hello, World"

目标路径建议使用绝对路径,如果目标路径不存在,Docker 会自动创建

如果复制的是目录,Docker 会复制目录中的所有内容,包括子目录和文件,但不包括目录本身。如果目录中包含隐藏文件或以点开头的文件,它们也会被复制

1.5.2 Dockerfile详解

参考我的另一篇博文:Dockerfile详解(Dockerfile的基本结构、使用Dockerfile自定义镜像示例、主流编程语言和中间件的基础Docker镜像、编写Dockerfile的最佳实践)

2. 构建镜像

在Dockerfile文件所在的目录下运行指令

docker build -t docker-demo:1.0 ./

指令的解释:

  • docker build: Docker 的子命令,用于从 Dockerfile 和上下文构建一个镜像
  • -t: 用于指定构建的镜像的名称和标签,在上述指令中,docker-demo 是镜像的名称,1.0 是镜像的标签
  • docker-demo:1.0: 这是指定的镜像名称和标签,冒号 : 用于分隔镜像名称和标签
  • ./: 这个参数指定了构建上下文的路径。构建上下文是指 Docker 在构建镜像时能够访问的文件和目录。在上述指令中,./ 表示构建上下文为运行指令时所在的目录

3. 创建容器并运行

docker run 
    --name docker-demo 
    -p 16256:16256 
    -d 
    docker-demo:1.0

指令的详细解释:

  • docker run: Docker 的子命令,用于启动一个新容器
  • --name docker-demo: 这个选项用于指定新容器的名称为 docker-demo,如果没有指定名称,Docker 会为该容器生成一个随机名称
  • -p 16256:16256: 这个选项用于映射容器的端口到宿主机的端口。16256:16256 表示将容器的 16256 端口映射到宿主机的 16256 端口。这样,外部网络就可以通过宿主机的 16256 端口访问容器内的服务
  • -d: 这个选项用于让容器在后台运行,如果不加这个选项,容器会占用当前终端,阻止你执行其他命令
  • docker-demo:1.0: 这是指定要启动的镜像的名称和标签。冒号 : 用于分隔镜像名称和标签

4. 测试

在浏览器中访问以下网址(将IP地址改为你的虚拟机的IP地址

http://192.168.31.129:16256

看到以下页面,证明项目已经成功部署


温馨提示:如果访问失败,可能是虚拟机的防火墙没有开放16256端口

  • 如果你使用的是云服务器,请在安全组中放行16256端口
  • 如果你安装了宝塔,请在宝塔中放行16256端口

5. 可能遇到的问题

5.1 构建容器时可能遇到的问题

问题复现:

ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref db7fbd3d-de65-4abb-a024-61534e7b1c71::m0fc5kkmyd1r862kzq738qidt: "/tmp/docker/docker-demo-0.0.1-SNAPSHOT.jar": not found



问题产生的原因:

  • Docker 构建容器时默认会将Dockerfile所在目录以及Dockerfile所在目录的子目录作为构建上下文
  • 构建容器时,如果使用或访问了构建上下文以外的目录或文件,Docker将无法访问它们

解决方法:将构建容器所用到的全部文件移到 Dockerfile 文件所在的目录下

5.2 运行容器时可能遇到的问题

5.2.1 问题一

问题复现:no main manifest attribute, in /tmp/JarToDocker-0.0.1-SNAPSHOT.jar


问题产生的原因:Java项目打包出现问题,没有指定启动类


解决方法:参考本文的 1.2 将Java项目打包成jar包 章节

5.2.2 问题二

问题复现:exec /tmp/start.sh: no such file or directory


问题产生的原因以及解决方法:参考我的另一篇文章:docker容器中sh脚本明明存在,启动容器时却一直报错:no such file or directory

本文地址:https://www.vps345.com/9574.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP docker 容器 运维 java-rabbitmq java 服务器 linux 游戏 云计算 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 deepseek DeepSeek-R1 API接口 Deepseek Deepseek-R1 大模型 私有化部署 推理模型 Ollama Qwen2.5-coder 离线部署 网络工程师 网络管理 软考 2024 2024年上半年 下午真题 答案 RTSP xop RTP RTSPServer 推流 视频 进程 操作系统 进程控制 Ubuntu CH340 单片机 嵌入式硬件 串口驱动 CH341 uart 485 物联网 ubuntu YOLO 网络结构图 nginx 负载均衡 jvm 虚拟机 windows DNS 神经网络 人工智能 深度学习 计算机视觉 卷积神经网络 django php 开发语言 英语 javascript 前端 chrome edge android harmonyos typescript 鸿蒙 macos conda https 模型联网 API CherryStudio fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse debian PVE word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 开发环境 智能路由器 网络 外网访问 内网穿透 端口映射 llama 算法 opencv 自然语言处理 语言模型 jellyfin nas 数据库系统 pycharm ide ue4 着色器 ue5 虚幻 笔记 C 环境变量 进程地址空间 C# MQTTS 双向认证 emqx redis centos node.js python pip kafka 分布式 学习 高级IO epoll fstab 媒体 MCP USB转串口 tcp/ip 网络协议 ip协议 vue.js spring boot matplotlib fonts-noto-cjk vscode 阿里云 网络安全 ubuntu 18.04 安装教程 数据分析 机器学习 ssh cron crontab日志 zotero WebDAV 同步失败 代理模式 udp 本地环回 bind 科技 ai 个人开发 c语言 数据库 oracle 关系型 安全 AIGC dify ragflow vSphere vCenter 软件定义数据中心 sddc flutter Google pay Apple pay jenkins maven svn 自动化 大语言模型 LLMs Dify gitee kubernetes prometheus grafana 云原生 mysql adb websocket 集成学习 集成测试 驱动开发 mcu oracle fusion oracle中间件 远程连接 rdp 实验 后端 大数据 spark hive 策略模式 c++ pytorch transformer qt QT 5.12.12 QT开发环境 Ubuntu18.04 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 vr 华为云 Hyper-V WinRM TrustedHosts rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK axure 富文本编辑器 pillow vnc live555 rtsp rtp 计算机外设 bug eureka GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 nlp vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 iftop 网络流量监控 ddos web安全 ssh漏洞 ssh9.9p2 CVE-2025-23419 .netcore postman 测试工具 gcc centos 7 outlook 错误代码2603 无网络连接 2603 MacOS录屏软件 Flask FastAPI Waitress Gunicorn uWSGI Uvicorn 进程优先级 调度队列 进程切换 经验分享 apache 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 CPU 内存 主板 电源 网卡 华为 HarmonyOS Next kylin AI大模型 大模型技术 本地部署大模型 dubbo 面试 json ollama 私有化 本地部署 gateway Clion Nova ResharperC++引擎 Centos7 远程开发 开源 github 实时音视频 实时互动 Alexnet 电脑 mac 软件需求 计算机网络 硬件工程 嵌入式实习 openvpn server openvpn配置教程 centos安装openvpn Cline Linux PID c# 多层架构 解耦 虚拟现实 并查集 leetcode SRS 流媒体 直播 课程设计 asm 微信 微信分享 Image wxopensdk audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 gnu IM即时通讯 QQ 企业微信 剪切板对通 HTML FORMAT agi DevEco Studio 游戏引擎 uni-app 命名管道 客户端与服务端通信 rag ragflow 源码启动 统信UOS 麒麟 bonding 链路聚合 virtualenv react.js 前端面试题 持续部署 HCIE 数通 GCC aarch64 编译安装 HPC 银河麒麟 kylin v10 麒麟 v10 stm32项目 stm32 思科 嵌入式 linux驱动开发 arm开发 unix LDAP rpc go filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 AI-native Docker Desktop tomcat intellij idea 编辑器 vim 指令 ESXi chatgpt DeepSeek AI编程 Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 xcode 学习方法 系统 黑苹果 VMware 离线部署dify 王者荣耀 jar gradle unity GameFramework HybridCLR Unity编辑器扩展 自动化工具 性能优化 权限 TCP WebServer WebUI DeepSeek V3 僵尸进程 cursor gpt log4j onlyoffice AI llama3 Chatglm 开源大模型 iot 信息与通信 部署 qps 高并发 opengl Hive环境搭建 hive3环境 Hive远程模式 Dell R750XS 虚拟局域网 numpy burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 ip命令 新增网卡 新增IP 启动网卡 多线程 bash 智能手机 矩阵 ui 华为od 华为认证 交换机 MS Materials WSL2 Ubuntu22.04 虚拟化 开发人员主页 Linux Linux的权限 tar rust http burp suite 抓包 架构 arm 程序员创富 hadoop sql KingBase Docker Hub docker pull 镜像源 daemon.json 运维开发 电子信息 通信工程 毕业 Mermaid 可视化图表 自动化生成 armbian u-boot sublime text 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 Linux 维护模式 Agent LLM CrewAI RustDesk自建服务器 rustdesk服务器 docker rustdesk express p2p efficientVIT YOLOv8替换主干网络 TOLOv8 k8s 迁移指南 浪潮信息 AI服务器 shell 磁盘监控 数据结构 windows 服务器安装 llm 监控k8s集群 集群内prometheus VMware安装Ubuntu Ubuntu安装k8s 软件测试 目标检测 database 聚类 ip spring cloud compose ros2 moveit 机器人运动 ssl lvm 磁盘挂载 磁盘分区 powerpoint remote-ssh html 爬虫 实战案例 主从复制 perf 人工智能生成内容 前端框架 数据挖掘 网络用户购物行为分析可视化平台 大数据毕业设计 1024程序员节 nftables 防火墙 openstack Xen KVM golang 快捷键 旋转屏幕 自动操作 jmeter oceanbase 传统数据库升级 银行 多线程服务器 Linux网络编程 java-ee flask VMware安装mocOS macOS系统安装 milvus dell服务器 缓存 灵办AI 链表 CPU 使用率 系统监控工具 linux 命令 tcpdump kali 共享文件夹 大模型应用 Invalid Host allowedHosts vue 3d 数学建模 etcd 数据安全 RBAC ESP32 Kylin-Server 国产操作系统 服务器安装 NAS Termux Samba seatunnel 产品经理 microsoft linux内核 rc.local 开机自启 systemd docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos Reactor 设计模式 C++ 安卓模拟器 springsecurity6 oauth2 授权服务器 前后端分离 创意 社区 visual studio code 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 vite ffmpeg 音视频 视频编解码 硬件架构 系统架构 毕设 HiCar CarLife+ CarPlay QT RK3588 MacMini Mac 迷你主机 mini Apple sqlserver 个人博客 rust腐蚀 计算生物学 生物信息学 生物信息 基因组 豆瓣 追剧助手 迅雷 spring Redis Desktop mongodb rclone AList webdav fnOS camera Arduino Mac软件 漏洞 okhttp CORS 跨域 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 开机自启动 微服务 程序人生 向日葵 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 rabbitmq 国产数据库 瀚高数据库 数据迁移 下载安装 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors 代理 飞牛nas fnos Docker快速入门 宝塔面板无法访问 ubuntu20.04 开机黑屏 gitlab ruoyi 腾讯云 MCP server C/S 机器人 yum源切换 更换国内yum源 cuda cudnn anaconda springcloud DevOps 软件交付 数据驱动 应用场景 nvidia gpu算力 pygame 树莓派 VNC 网易邮箱大师 监控 自动化运维 thingsboard postgresql OpenManus 低代码 ArcTS 登录 ArcUI GridItem wsl 版本 安装 域名服务 DHCP 符号链接 配置 鸿蒙系统 arkUI 软件工程 软件构建 .net yolov5 mq rocketmq Qualcomm WoS Python QNN AppBuilder 微信小程序 miniapp 真机调试 调试 debug 断点 网络API请求调试方法 进程信号 vasp安装 Cursor ros 话题通信 服务通信 Windsurf echarts 信息可视化 网页设计 ollama下载加速 android studio 服务器繁忙 端口号 开放端口 访问列表 GPU FunASR ASR git npm CLion IDE NFS web3.py list 模拟实现 devops springboot pyqt 设置代理 实用教程 硅基流动 ChatBox intellij-idea 大模型部署 EMQX MQTT 通信协议 小游戏 五子棋 Kali Linux 黑客 渗透测试 信息收集 linux 命令 sed 命令 硬件 设备 PCI-Express 统信 虚拟机安装 mybatis pyautogui kind 自动化任务管理 alias unalias 别名 职场和发展 命令行 基础入门 编程 zip unzip openwrt KylinV10 麒麟操作系统 Vmware 执法记录仪 智能安全帽 smarteye 大模型入门 大模型教程 SenseVoice adobe 知识库 本地化部署 教程 环境搭建 Java Maven edge浏览器 mysql离线安装 ubuntu22.04 mysql8.0 AI写作 prompt 网络爬虫 混合开发 环境安装 JDK SSH Xterminal iBMC UltraISO centos-root /dev/mapper yum clean all df -h / du -sh pdf Xinference RAGFlow 程序员 京东云 可信计算技术 密码学 gaussdb 计算机 AD域 源码剖析 rtsp实现步骤 流媒体开发 雨云 NPS 温湿度数据上传到服务器 Arduino HTTP rsyslog 服务器扩容没有扩容成功 chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 asp.net大文件上传 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 webrtc 系统安全 opcua opcda KEPServer安装 内网渗透 靶机渗透 oneapi 大模型微调 直播推流 DocFlow 图像处理 selenium maxkb ARG 匿名管道 ansible playbook 剧本 notepad Open WebUI flash-attention 报错 软件卸载 系统清理 visualstudio ecmascript nextjs react reactjs 邮件APP 免费软件 流式接口 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 css mariadb Ubuntu20.04 GLIBC 2.35 工业4.0 WLAN rancher harmonyOS面试题 bootstrap 服务器部署 本地拉取打包 zabbix 微信开放平台 微信公众平台 微信公众号配置 数据集 压测 ECS 大模型面经 大模型学习 IPMI WSL win11 无法解析服务器的名称或地址 Linux24.04 deepin 远程桌面 显示管理器 lightdm gdm 回显服务器 UDP的API使用 嵌入式系统开发 远程工作 EasyConnect redhat rime ios WebVM 磁盘清理 升级 CVE-2024-7347 ROS 自动驾驶 scapy grep mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 中间件 Web应用服务器 5G 3GPP 卫星通信 micropython esp32 mqtt 网络药理学 生信 gromacs 分子动力学模拟 MD 动力学模拟 VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 jupyter 无人机 elasticsearch 半虚拟化 硬件虚拟化 Hypervisor xrdp 文件系统 路径解析 WSL2 上安装 Ubuntu r语言 数据可视化 UEFI Legacy MBR GPT U盘安装操作系统 docker run 数据卷挂载 交互模式 gitea vmware 卡死 自动化编程 FTP 服务器 环境迁移 区块链 交叉编译 客户端 .net core ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 selete cpu 实时 使用 jdk GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 Wi-Fi telnet 远程登录 gpt-3 文心一言 UOS 统信操作系统 yum 环境配置 W5500 OLED u8g2 TCP服务器 ipython kernel docker-compose docker compose k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm 桌面环境 bcompare Beyond Compare Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 YOLOv8 NPU Atlas800 A300I pro asi_bench rustdesk protobuf 序列化和反序列化 CNNs 图像分类 webstorm 医疗APP开发 app开发 cmake top Linux top top命令详解 top命令重点 top常用参数 aws googlecloud docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 samba html5 firefox 互信 网卡的名称修改 eth0 ens33 游戏程序 小智 CosyVoice mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 线程 OD机试真题 华为OD机试真题 服务器能耗统计 能力提升 面试宝典 技术 IT信息化 P2P HDLC 服务器配置 Ark-TS语言 open webui xml 工具分享 常用命令 文本命令 目录命令 安防软件 RAID RAID技术 磁盘 存储 安卓 银河麒麟服务器操作系统 系统激活 虚拟显示器 远程控制 HistoryServer Spark YARN jobhistory cmos 中兴光猫 换光猫 网络桥接 自己换光猫 程序 性能分析 kvm 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 nvm 大数据平台 python2 ubuntu24.04 联网 easyconnect nfs 双系统 windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 政务 分布式系统 监控运维 Prometheus Grafana AISphereButler 深度求索 私域 Ubuntu共享文件夹 共享目录 Linux共享文件夹 云桌面 微软 AD域控 证书服务器 TrueLicense curl wget Trae AI 原生集成开发环境 Trae AI 命令 openEuler SSH 密钥生成 SSH 公钥 私钥 生成 系统开发 binder 车载系统 framework 源码环境 trae visual studio 金融 交互 腾讯云大模型知识引擎 Chatbox 目标跟踪 OpenVINO 推理应用 glibc WebRTC ux 产测工具框架 IMX6ULL 管理框架 iperf3 带宽测试 云原生开发 K8S k8s管理系统 JAVA 开发 mamba Vmamba 代码调试 ipdb 网络文件系统 springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 智能音箱 智能家居 IPMITOOL BMC 硬件管理 视觉检测 token sas CentOS Stream CentOS lio-sam SLAM openssl uv VMware创建虚拟机 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 YOLOv12 压力测试 asp.net大文件上传下载 iis 雨云服务器 MQTT协议 消息服务器 代码 远程看看 远程协助 多进程 ros1 Noetic 20.04 apt 安装 kamailio sip VoIP next.js 部署next.js 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 蓝桥杯 小艺 Pura X excel 生活 ocr ci/cd 代码规范 安全架构 网络攻击模型 安全威胁分析 n8n 工作流 workflow 串口服务器 ROS2 firewalld 读写锁 DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 arcgis ebpf uprobe 云耀服务器 matlab 图形化界面 Cookie 网工 ShenTong 国产化 飞书 minicom 串口调试工具 阻塞队列 生产者消费者模型 服务器崩坏原因 恒源云 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? neo4j 数据仓库 数据库开发 数据库架构 Linux的基础指令 DOIT 四博智联 zerotier 音乐服务器 Navidrome 音流 数据管理 数据治理 数据编织 数据虚拟化 bot Docker 信号处理 keepalived iphone idm 远程 执行 sshpass 操作 wpf safari 移动云 chrome devtools chromedriver DeepSeek r1 cd 目录切换 etl 宝塔 相差8小时 UTC 时间 日志分析 系统取证 netty x64 SIGSEGV SSE xmm0 软件 AutoDL eclipse 热榜 沙盒 C语言 SSL 域名 code-server 状态管理的 UDP 服务器 Arduino RTOS xpath定位元素 其他 智能电视 Radius HarmonyOS OpenHarmony pyicu 办公自动化 pdf教程 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 黑客技术 api fpga开发 管道 支付 微信支付 开放平台 图形渲染 docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 搜索引擎 技术共享 ShapeFile GeoJSON Nginx 网络编程 frp sdkman h.264 RTMP 应用层 相机 大版本升 升级Ubuntu系统 k8s部署 MySQL8.0 高可用集群(1主2从) Isaac Sim 虚拟仿真 elk css3 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 threejs 3D 软链接 硬链接 open Euler dde Ardupilot fd 文件描述符 es6 qt6.3 g726 蓝耘科技 元生代平台工作流 ComfyUI Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 cnn DenseNet sublime text3 游戏服务器 Minecraft Kali 渗透 qemu libvirt IMM 源码 毕业设计 string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap TrinityCore 魔兽世界 Office HP Anyware 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 推荐算法 孤岛惊魂4 考研 minio 在线office 考试 pppoe radius deepseek-r1 大模型本地部署 ruby llama.cpp 远程过程调用 Windows环境 宝塔面板 Dell HPE 联想 浪潮 webgl iDRAC R720xd ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口服务器 freebsd trea idea 玩机技巧 软件分享 软件图标 iventoy VmWare OpenEuler 消息队列 思科模拟器 Cisco 单一职责原则 apt 国内源 tcp 测试用例 功能测试 docker命令大全 MobaXterm 文件传输 聊天室 virtualbox tensorflow 群晖 飞牛 视频平台 录像 视频转发 性能测试 视频流 k8s集群资源管理 授时服务 北斗授时 MySql export env 变量 无桌面 VPN wireguard 蓝桥杯C++组 muduo X11 Xming 镜像下载 监控k8s 监控kubernetes 博客 蓝牙 Helm k8s集群 冯诺依曼体系 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 键盘 clickhouse 隐藏文件 隐藏目录 管理器 通配符 飞牛NAS 飞牛OS MacBook Pro AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 langchain deep learning grub 版本升级 扩容 AnythingLLM AnythingLLM安装 jetty undertow 空间 查错 Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 kotlin web 语音识别 deepseek r1 windows日志 vmamba 弹性计算 云服务器 裸金属服务器 弹性裸金属服务器 智慧农业 开源鸿蒙 团队开发 流水线 脚本式流水线 ftp ufw 实时内核 跨平台 su sudo sudo原理 su切换 conda配置 conda镜像源 Netty 即时通信 NIO GoogLeNet SWAT 配置文件 服务管理 网络共享 vscode1.86 1.86版本 ssh远程连接 c 备选 网站 调用 示例 LLM Web APP Streamlit 毕昇JDK Web服务器 多线程下载工具 PYTHON Linux权限 权限命令 特殊权限 显示器 make命令 makefile文件 金仓数据库 2025 征文 数据库平替用金仓 ssrf 失效的访问控制 PX4 MAC SecureCRT SSL证书 LInux Windows nuxt3 稳定性 看门狗 USB网络共享 ssh远程登录 虚幻引擎 XFS xfs文件系统损坏 I_O error IIS服务器 IIS性能 日志监控 进程程序替换 execl函数 execv函数 execvp函数 execvpe函数 putenv函数 wireshark 业界资讯 file server http server web server 田俊楠 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP mosquitto yolov8 算力 RAGFLOW vpn 服务器管理 配置教程 网站管理 高效I/O odoo 服务器动作 Server action sqlite qt项目 qt项目实战 qt教程 Attention NLP NVML nvidia-smi 银河麒麟高级服务器 外接硬盘 Kylin UOS1070e scikit-learn 代码托管服务 远程服务 python3.11 pyside6 界面 umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word ueditor导入pdf ueditor导入ppt 网页服务器 web服务器 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 直流充电桩 充电桩 免密 公钥 私钥 chfs ubuntu 16.04 ecm bpm dity make RAG 检索增强生成 文档解析 大模型垂直应用 ISO镜像作为本地源 小智AI服务端 xiaozhi TTS eNSP 网络规划 VLAN 企业网络 显示过滤器 ICMP Wireshark安装 copilot Mac内存不够用怎么办 v10 AD 域管理 框架搭建 Apache Beam 批流统一 案例展示 数据分区 容错机制 ELF加载 linux环境变量 Carla 智能驾驶 Ubuntu 22.04 算家云 算力租赁 自动化测试 MNN Qwen 火绒安全 Nuxt.js Linux Vim searxng 模拟器 nacos import save load 迁移镜像 深度优先 图论 并集查找 换根法 树上倍增 ajax netlink libnl3 单例模式 网络穿透 抗锯齿 强制清理 强制删除 mac废纸篓 拓扑图 diskgenius 华为证书 HarmonyOS认证 华为证书考试 dns dash 正则表达式 ArkUI ArkTS 移动端开发 玩游戏 致远OA OA服务器 服务器磁盘扩容 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 cfssl 一切皆文件 NAT转发 NAT Server linux上传下载 openjdk 昇腾 大模型训练/推理 推理问题 mindie TRAE Playwright linux安装配置 fork wait waitpid exit 鲲鹏 工具 技能大赛 信号 XCC Lenovo macbook IO 繁忙 解决办法 替代网站 汇总推荐 AI推理 社交电子 shell脚本免交互 expect linux免交互 c/c++ 串口 ceph 重启 排查 系统重启 日志 原因 IIS Hosting Bundle .NET Framework vs2022 AI代码编辑器 wsgiref Web 服务器网关接口 lb 协议 wps 单元测试 大屏端 dock 镜像 加速 换源 Debian java-rocketmq Jellyfin 强化学习 Xshell 7z 浏览器自动化 rnn 显卡驱动 llamafactory 微调 csrutil mac恢复模式进入方法 恢复模式 ai工具 stable diffusion AI作画 DBeaver kerberos 容器技术 序列化反序列化 知识图谱 安装MySQL opensearch helm 服务器主板 AI芯片 云电竞 云电脑 todesk MI300x 计算机科学与技术 游戏机 npu 华为OD 可以组成网络的服务器 多产物 DeepSeek行业应用 Heroku 网站部署 big data seleium cpp-httplib sysctl.conf vm.nr_hugepages 分析解读 vu大文件秒传跨域报错cors 聊天服务器 套接字 Socket nohup 异步执行 dba 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 uniapp 文件分享 云服务 自学笔记 小米 澎湃OS Android 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 软负载 银河麒麟操作系统 hibernate Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 Node-Red 编程工具 流编程 sqlite3 宠物 免费学习 宠物领养 宠物平台 机柜 1U 2U 新盘添加 partedUtil saltstack NLP模型 阿里云ECS laravel 同步 备份 建站 FTP服务器 risc-v 图片增强 增强数据 ukui 麒麟kylinos openeuler swoole 三级等保 服务器审计日志备份 unity3d React Next.js 开源框架 联想开天P90Z装win10 VPS 内网服务器 内网代理 内网通信 高德地图 鸿蒙接入高德地图 HarmonyOS5.0 word 反向代理 充电桩平台 充电桩开源平台 IMX317 MIPI H265 VCU 影刀 宕机切换 服务器宕机 输入法 less WireGuard 异地组网 av1 电视盒子 机顶盒ROM 魔百盒刷机 easyui 运维监控 rpa tailscale derp derper 中转 triton 模型分析 分子对接 autodock mgltools PDB PubChem vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 java-zookeeper Unity Dedicated Server Host Client 无头主机 ollama api ollama外网访问 sonoma 自动更新 软件开发 信任链 xshell termius iterm2 IPv6 IPv6测试 IPv6测速 IPv6检测 IPv6查询 db 语法 Obsidian Dataview 历史版本 下载 健康医疗 Headless Linux 抓包工具 服务网格 istio 锁屏不生效 powerbi 信创 信创终端 中科方德 开源软件 sentinel midjourney ftp服务 文件上传 qt5 客户端开发 合成模型 扩散模型 图像生成 SVN Server tortoise svn bat retry 重试机制 边缘计算 glm4 物联网开发 docker部署Python 用户缓冲区 加解密 Yakit yaklang crosstool-ng 干货分享 黑客工具 密码爆破 kubeless sequoiaDB massa sui aptos sei SSH 服务 SSH Server OpenSSH Server SysBench 基准测试 企业网络规划 华为eNSP cocoapods 带外管理 做raid 装系统 prometheus数据采集 prometheus数据模型 prometheus特点 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 Erlang OTP gen_server 热代码交换 事务语义 数码 联机 僵尸毁灭工程 游戏联机 开服 regedit 开机启动 LVM lvresize 磁盘扩容 pvcreate DIFY initramfs Linux内核 Grub xss 笔灵AI AI工具 embedding ubuntu24 vivado24 僵尸世界大战 游戏服务器搭建 免费域名 域名解析 localhost perl uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 rtc 动静态库 金仓数据库概述 金仓数据库的产品优化提案 论文阅读 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 #影刀RPA# 计算虚拟化 弹性裸金属 Ubuntu Server Ubuntu 22.04.5 华为机试 fiddler 移动魔百盒 多个客户端访问 IO多路复用 TCP相关API 自定义客户端 SAS Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 nosql 代理服务器 Docker Compose 全文检索 图搜索算法 实习 GIS 遥感 WebGIS 游戏开发 resolv.conf hexo 负载测试 MVS 海康威视相机 网络建设与运维 网络搭建 神州数码 神州数码云平台 云平台 网站搭建 serv00 VGG网络 卷积层 池化层 nohup后台启动 mysql安装报错 windows拒绝安装 figma 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 banner hugo 增强现实 沉浸式体验 技术实现 案例分析 AR 智能体开发 HTTP 服务器控制 ESP32 DeepSeek firewall 电视剧收视率分析与可视化平台 PyQt PySide6 Zoertier 内网组网 win服务器架设 windows server Typore iTerm2 终端 es termux 模拟退火算法 navicat ArtTS 浏览器开发 AI浏览器 IO模型 Ubuntu 24.04.1 轻量级服务器 状态模式 VSCode 智能合约 哈希算法 iNode Macos pgpool 烟花代码 烟花 元旦 ArkTs Spring Security 我的世界 我的世界联机 本地知识库部署 DeepSeek R1 模型 MacOS WINCC 我的世界服务器搭建 电路仿真 multisim 硬件工程师 硬件工程师学习 电路图 电路分析 仪器仪表 Python基础 Python教程 Python技巧 proxy模式 Linux环境 存储维护 NetApp存储 EMC存储 Claude xfce 基础环境 lighttpd安装 Ubuntu配置 Windows安装 服务器优化 docker desktop PPI String Cytoscape CytoHubba chromium dpi deepseak 豆包 KIMI 腾讯元宝 postgres Dify重启后重新初始化 can 线程池 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 servlet deekseek 设备树 dns是什么 如何设置电脑dns dns应该如何设置 网络原理 nac 802.1 portal 嵌入式Linux IPC 互联网医院 MDK 嵌入式开发工具 论文笔记 GRUB引导 Linux技巧 hosts 弹性服务器 MAVROS 四旋翼无人机 EMUI 回退 降级 AI agent 端口测试 多端开发 智慧分发 应用生态 鸿蒙OS beautifulsoup mcp服务器 client close IP配置 netplan CDN ubuntu安装 linux入门小白 终端工具 远程工具 zookeeper yaml Ultralytics 可视化 EVE-NG LORA OpenSSH 内核 vscode 1.86 linuxdeployqt 打包部署程序 appimagetool HarmonyOS NEXT 原生鸿蒙 配置原理 SEO 大大通 第三代半导体 碳化硅 分布式账本 web3 共识算法 项目部署到linux服务器 项目部署过程 超融合 jina wsl2 电脑桌面出现linux图标 电脑桌面linux图标删除不了 电脑桌面Liunx图标删不掉 linux图标删不掉 安全漏洞 信息安全 IPv4 子网掩码 公网IP 私有IP Pyppeteer System V共享内存 进程通信 极限编程 URL Reactor反应堆 composer 底层实现 CUPS 打印机 Qt5 k8s二次开发 集群管理 本地部署AI大模型 银河麒麟桌面操作系统 Kylin OS 对比 meld DiffMerge autoware 达梦 DM8 动态规划 ping++ 崖山数据库 YashanDB H3C tidb 打不开xxx软件 无法检查其是否包含恶意软件 arkTs HAProxy whistle 搭建个人相关服务器 服务器部署ai模型 Anolis nginx安装 linux插件下载 ubuntu24.04.1 fast ldap yashandb 端口 查看 ss Claude Desktop Claude MCP Windows Cli MCP deployment daemonset statefulset cronjob AI Agent 字节智能运维 内存管理 内网环境 VR手套 数据手套 动捕手套 动捕数据手套 IDEA 可用性测试 gunicorn Linux find grep 钉钉 lua 免费 源代码管理 AzureDataStudio NFC 近场通讯 智能门锁 桌面快捷方式 c/s js 源代码 李心怡 佛山戴尔服务器维修 佛山三水服务器维修 鸿蒙开发 移动开发 g++ g++13 捆绑 链接 谷歌浏览器 youtube google gmail AimRT 跨域请求 post.io 企业邮箱 搭建邮箱 流量运营 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 线性代数 电商平台 GeneCards OMIM TTD 子系统 欧标 OCPP SystemV autodl AI员工 服务器正确解析请求体 minecraft 音乐库 券商 股票交易接口api 类型 特点 股票量化接口 股票API接口 脚本 Sealos vllm Qwen2.5-VL VS Code element-ui 上传视频并预览视频 vue上传本地视频及进度条功能 vue2选择视频上传到服务器 upload上传视频组件插件 批量上传视频 限制单个上传视频 进程间通信 智能体 autogen openai coze Echarts图表 折线图 柱状图 异步动态数据 可视化效果 7-zip Webserver 异步 区块链项目 IPv4/IPv6双栈 双栈技术 网路规划设计 ensp综合实验 IPv4过渡IPv6 IPv4与IPv6 行情服务器 股票交易 速度慢 切换 问题解决 粘包问题 分布式训练 物理地址 页表 虚拟地址 查看显卡进程 fuser 性能调优 安全代理 海康 服务器时间 多路转接 输入系统 ranger MySQL8.0 TCP协议 Logstash 日志采集 北亚数据恢复 oracle数据恢复 项目部署 程序化交易 量化交易 高频交易 Python 视频爬取教程 Python 视频爬取 Python 视频教程 archlinux kde plasma flink skynet GRE 元服务 应用上架 ardunio BLE 服务器ssl异常解决 webview 大模型推理 支持向量机 文件存储服务器组件 查询数据库服务IP地址 SQL Server react native 端口聚合 windows11 用户管理 Bug解决 Qt platform OpenCV NVM Node Yarn PM2 风扇控制软件 商用密码产品体系 image 根服务器 junit Alist mount 挂载 网盘 接口优化 架构与原理 GPU训练 显卡驱动持久化 GPU持久化 规格说明书 设计规范 需求分析 Trae叒更新了? 解决方案 数字证书 签署证书 机械臂 星河版 Putty 花生壳 搜狗输入法 中文输入法 caddy Qwen3 qwen3 32b comfyui comfyui教程 qwen2vl 静态IP Unity插件 零售 yum换源 docker search hdc solr 飞腾处理器 mybase pthread solidworks安装 ABAP 三次握手 systemctl rsync 软考设计师 中级设计师 SQL 软件设计师 UDP 卸载 列表 mac设置host 西门子PLC 通讯 logstash node Charles RDP 框架 材料工程 paddle mvc MinIO NVIDIA chatbox #STC8 #STM32 RK3568 vCenter服务器 ESXi主机 监控与管理 故障排除 日志记录 Linux的基础开发工具 client-go linux子系统 忘记密码 命令模式 easyTier 组网 计算机学习路线 编程语言选择 UFW 鸿蒙NEXT 华为鸿蒙系统 ArkTS语言 Component 生命周期 条件渲染 Image图片组件 向量数据库 安装部署 milvus安装 watchtower lrzsz authing 图文教程 VMware虚拟机 macOS系统安装教程 macOS最新版 虚拟机安装macOS Sequoia 计算机系统 Qt QModbus brew macOS 裸机装机 linux磁盘分区 裸机安装linux 裸机安装ubuntu 裸机安装kali 裸机 可执行程序 CAD瓦片化 栅格瓦片 矢量瓦片 Web可视化 DWG解析 金字塔模型 pythonai PlaywrightMCP 火山引擎 线程同步 线程互斥 条件变量 webpack AWS Masshunter 质谱采集分析软件 使用教程 科研软件 华为昇腾910b3 机架式服务器 1U工控机 国产工控机 知行EDI 电子数据交换 知行之桥 EDI Kubernetes gru d3d12 创业创新 VM虚拟机 homeassistant android-studio shard 数据采集 Crawlee