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

Docker项目部署深度解析:从基础命令到复杂项目部署

Docker项目部署深度解析:从基础命令到复杂项目部署

注:根据黑马程序员javaweb+AI视频课程总结
视频地址
详细讲义地址

一、传统部署困境与Docker破局之道

在传统Linux部署场景中,新手常被三大难题困扰:

  1. 命令记忆负担:安装MySQL需掌握wgettaryum等数十个命令;
  2. 环境碎片化:不同服务器的内核版本、依赖库差异导致脚本频繁报错;
  3. 操作风险高:手动配置如权限设置、端口映射等步骤易引发故障。

当项目扩展至多服务器时,问题呈指数级恶化:某电商项目曾因20台服务器的Python版本不一致,导致部署耗时从2小时延长至2天。Docker通过镜像封装+容器隔离机制,将应用与环境解耦,使部署效率提升90%以上。

二、Docker核心架构与基础操作

在这里插入图片描述

2.1 镜像与容器:从静态模板到动态实例

  • 镜像(Image)
    分层文件系统,包含应用二进制文件、运行时依赖、配置文件。以MySQL镜像为例,其结构如下:

    mysql:8
    ├─ base OS (CentOS)
    ├─ MySQL服务程序
    ├─ 初始化脚本
    └─ 默认配置文件
    

    来源:官方仓库(Docker Hub)或自建私有仓库(如阿里云ACR)。

  • 容器(Container)
    镜像的运行实例,基于Linux Namespace和Cgroups实现资源隔离。单个容器仅占用数MB内存,秒级启动。

2.2 快速部署MySQL:传统方式vs Docker对比

阶段传统部署(CentOS)Docker部署
下载安装包wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmdocker pull mysql:8
安装服务yum install mysql-community-serverdocker run -d --name mysql ...
配置启动systemctl start mysqld + 手动初始化自动完成(镜像内置逻辑)
跨平台支持需为每个系统单独编译安装包一条命令适配所有支持Docker的系统

实战命令解析

docker run -d \              # 后台运行容器--name mysql \             # 容器命名为mysql-p 3307:3306 \            # 宿主机3307端口映射容器3306端口-e TZ=Asia/Shanghai \     # 设置容器时区-e MYSQL_ROOT_PASSWORD=123 # 设置root密码mysql:8                    # 使用mysql:8版本镜像

在这里插入图片描述

三、数据持久化方案:数据卷与挂载

3.1 数据卷(Volume):解耦数据与容器生命周期

核心场景

  • 容器删除后数据保留(如MySQL的/var/lib/mysql目录);
  • 宿主机与容器共享配置文件(如Nginx的nginx.conf)。

两种实现方式

  1. 命名数据卷

    docker run -d -v html:/usr/share/nginx/html nginx:1.20.2
    
    • 数据卷默认存储于/var/lib/docker/volumes/html/_data,支持跨容器共享。
  2. 宿主机目录挂载

    docker run -d -v /root/nginx/conf:/etc/nginx/conf.d nginx:1.20.2
    
    • 直接映射宿主机路径,适合本地开发场景。

3.2 匿名数据卷与实战案例

当镜像未显式定义数据卷时,Docker会自动创建匿名卷。以MySQL为例:

docker inspect mysql  # 查看容器详情

输出中.Mounts字段显示:

{"Source": "/var/lib/docker/volumes/xxx/_data",  // 自动生成的匿名卷路径"Destination": "/var/lib/mysql"
}

操作建议:生产环境中建议显式命名数据卷,便于管理和备份。

四、自定义镜像:从Dockerfile到应用打包

在这里插入图片描述

4.1 镜像构建原理:分层与缓存机制

Dockerfile的每条指令生成一层镜像,层之间可复用。例如:

FROM centos:7          # 基础层(已存在则复用)
COPY jdk.tar.gz /usr/local  # 新增层(若文件未变更则缓存)
RUN tar -xzf /usr/local/jdk.tar.gz  # 基于上一层构建

优势:修改应用代码时仅需重建最后一层,构建速度提升50%+。

4.2 Java项目镜像构建实战

Dockerfile完整示例

# 基础环境
FROM centos:7
RUN yum install -y glibc-langpack-zh  # 解决中文支持问题# 安装JDK
COPY jdk-17_linux-x64_bin.tar.gz /usr/local/
RUN ln -s /usr/local/jdk-17 /usr/local/jdk && rm -rf *.tar.gz
ENV JAVA_HOME=/usr/local/jdk
ENV PATH=$JAVA_HOME/bin:$PATH# 应用部署
WORKDIR /app
COPY target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "app.jar"]

构建与运行

docker build -t myapp:v1.0 .
docker run -d --name app -p 8080:8080 myapp:v1.0

五、容器网络管理:从IP到服务发现

5.1 默认网络与自定义网络

  • bridge网络:默认网络,容器通过NAT共享宿主机IP,彼此通过随机IP通信。
  • 自定义网络
    docker network create --driver bridge itheima-network  # 创建桥接网络
    docker run -d --name mysql --network itheima-network mysql:8  # 加入网络
    
    优势:容器可通过名称(如mysql)直接通信,无需硬编码IP。

5.2 跨容器通信实战

itheima-network网络中,Java容器可直接通过jdbc:mysql://mysql:3306/db连接MySQL,无需关心IP变更。
验证命令

docker exec -it app ping mysql  # 应返回容器名对应的IP

六、Docker Compose:复杂项目的编排利器

6.1 从单机到多服务的编排升级

当项目包含MySQL、Redis、Java、Nginx四个服务时,手动部署需执行12条命令,而Docker Compose仅需定义docker-compose.yml

version: '3.8'
services:mysql:image: mysql:8volumes:- mysql-data:/var/lib/mysql  # 命名数据卷- mysql-conf:/etc/mysql/conf.denvironment:MYSQL_ROOT_PASSWORD: "123"app:build: ./backend  # 基于目录构建镜像ports:- "8080:8080"depends_on:- mysql  # 确保mysql先启动nginx:image: nginx:1.20.2ports:- "80:80"volumes:- ./frontend:/usr/share/nginx/html
volumes:mysql-data:  # 定义数据卷mysql-conf:
networks:default:  # 使用默认桥接网络

6.2 核心命令与最佳实践

命令说明
docker compose up -d启动所有服务(后台模式)
docker compose logs app查看app服务日志
docker compose down停止并删除所有容器、网络、数据卷
docker compose exec mysql mysql -uroot -p进入mysql容器执行命令

生产建议

  • 定义depends_on确保服务启动顺序;
  • 为关键服务设置restart: always自动重启策略;
  • 使用.env文件管理敏感变量(如数据库密码)。

七、全流程项目部署:前后端分离系统实战

7.1 后端服务部署步骤

  1. 代码适配
    修改application.yml指向容器名:
    spring.datasource.url: jdbc:mysql://mysql:3306/tlias
    
  2. 镜像构建
    cd backend && docker build -t tlias-backend:1.0 .
    
  3. 容器启动
    docker run -d --name backend --network itheima-network -p 8080:8080 tlias-backend:1.0
    

7.2 前端服务与Nginx集成

  1. 静态资源准备
    将前端打包后的dist目录复制到宿主机/usr/local/frontend/html
  2. Nginx配置
    server {listen 80;server_name localhost;root /usr/share/nginx/html;index index.html;location /api {proxy_pass http://backend:8080;  # 反向代理到后端容器}
    }
    
  3. 容器启动
    docker run -d --name nginx-front --network itheima-network \-p 80:80 \-v /usr/local/frontend/html:/usr/share/nginx/html \-v /usr/local/frontend/nginx.conf:/etc/nginx/nginx.conf \nginx:1.20.2
    

八、高级运维:安装配置与性能优化

8.1 CentOS完整安装流程

  1. 卸载旧版
    yum remove -y docker docker-client docker-client-latest docker-engine
    
  2. 配置阿里云源
    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+' /etc/yum.repos.d/docker-ce.repo
    
  3. 安装与启动
    yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
    systemctl start docker && systemctl enable docker
    

8.2 镜像加速与性能调优

  • 镜像加速配置
    修改/etc/docker/daemon.json
    {"registry-mirrors": ["https://mirrors.aliyun.com/docker","https://docker.m.daocloud.io"],"exec-opts": ["native.cgroupdriver=systemd"]  # 优化资源控制
    }
    
  • 数据卷性能
    生产环境建议将数据卷挂载至SSD磁盘,提升I/O性能。

九、总结:Docker的技术演进与生态拓展

  • 核心优势

    • 标准化:镜像即文档,环境配置可追溯;
    • 高效性:分钟级完成多服务部署;
    • 可观测性:通过docker logsdocker stats实时监控容器状态。
  • 未来趋势

    • 与Kubernetes深度集成,实现容器集群管理;
    • WebAssembly(Wasm)技术崛起,提供更轻量级的运行时选择;
    • 云原生生态完善,支持多云环境下的应用迁移。

掌握Docker从基础命令到复杂项目编排的全流程,可大幅提升部署效率,将更多精力投入业务创新。无论是小型Web应用还是大型微服务架构,Docker已成为现代软件开发不可或缺的基础设施。

相关文章:

Docker项目部署深度解析:从基础命令到复杂项目部署

Docker项目部署深度解析:从基础命令到复杂项目部署 注:根据黑马程序员javawebAI视频课程总结: 视频地址 详细讲义地址 一、传统部署困境与Docker破局之道 在传统Linux部署场景中,新手常被三大难题困扰: 命令记忆负…...

reserve学习笔记(花指令)

这是闲来无事逛博客时看到的一篇相关文章,觉得挺有意思。 定义 首先花指令其实就是没有用的指令(垃圾指令),它穿插在真正的代码中,会导致反编译时出现问题,从而会影响我们的静态分析 分类以及讲解 花指…...

docker运行Redis

创建目录 mkdir -p /home/jie/docker/redis/{conf,data,logs}添加权限 chmod -R 777 /home/jie/docker/redis创建配置文件 cat > /home/jie/docker/redis/conf/redis.conf << EOF # 基本配置 bind 0.0.0.0 protected-mode yes port 6379# 安全配置 密码是root require…...

Django 项目中,将所有数据表注册到 Django 后台管理系统

在 Django 项目中,将所有数据表注册到 Django 后台管理系统中需要为每个模型(Model)创建一个对应的 ModelAdmin 类,并在 admin.py 文件中注册这些模型。以下是一个详细的步骤指南: 确保你的模型已定义 首先,确保你已经在 models.py 文件中定义了所有的数据模型。例如:py…...

pyspark测试样例

from pyspark.sql import SparkSession from pyspark.sql.functions import col, lit, concat 创建 SparkSession spark SparkSession.builder.appName(“SparkSQLExample”).getOrCreate() 创建 DataFrame&#xff08;可以是从 CSV、JSON 等文件读取&#xff09; data […...

Python学习笔记--使用Django操作mysql

注意&#xff1a;本笔记基于python 3.12&#xff0c;不同版本命令会有些许差别&#xff01;&#xff01;&#xff01; Django 模型 Django 对各种数据库提供了很好的支持&#xff0c;包括&#xff1a;PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调…...

HarmonyOS Next应用分层架构下组件封装开发实践

基于鸿蒙应用分层架构的ArkUI组件封装实践 在鸿蒙应用开发中&#xff0c;合理利用 ArkUI 组件进行封装&#xff0c;可以实现代码复用&#xff0c;提升开发效率。本文将结合鸿蒙应用分层架构的特点&#xff0c;详细探讨几个典型的 ArkUI 组件封装场景及其实现方案。 华为鸿蒙应…...

全能视频处理工具介绍说明

软件介绍 本文介绍的软件是FFmpeg小白助手&#xff0c;它是一款视频处理工具。 使用便捷性 这款FFmpeg小白助手无需安装&#xff0c;解压出来就能够直接投入使用。 主要功能概述 该工具主要具备格式转换、文件裁剪、文件压缩、文件合并这四大功能。 格式转换能力 软件支持…...

CSS实现过多的文本进行省略号显示

单行文本省略 .ellipsis {white-space: nowrap; /* 禁止换行 */overflow: hidden; /* 溢出内容隐藏 */text-overflow: ellipsis; /* 溢出部分显示为省略号 */width: 200px; /* 必须设置宽度 */ } 多行文本省略&#xff08;跨浏览器方案&#xff09…...

十三、Hive 行列转换

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月19日 专栏&#xff1a;Hive教程 在Hive中&#xff0c;数据的形态转换是数据清洗、分析和报表制作中的核心环节。行列转换尤为关键&#xff0c;它能将数据从一种组织形式变为另一种&#xff0c;以适应不同的业务洞察需求。本…...

Django之验证码功能

验证码功能 目录 1.绘制验证码 2.在登录页面里面实现验证码的功能 3.代码展示集合 这篇文章, 内容不是很多, 不过验证码, 是在网页里面比较常见的功能, 所有我们还是要掌握它&#xff01;&#xff01;&#xff01; 一、绘制验证码 绘制验证码, 我们需要用到图像, 然后在…...

代码随想录算法训练营 Day51 图论Ⅱ岛屿问题Ⅰ

图论 题目 99. 岛屿数量 使用 DFS 实现方法 判断岛屿方法 1. 遍历图&#xff0c;若遍历到了陆地 grid[i][j] 1 并且陆地没有被访问&#xff0c;在这个陆地的基础上进行 DFS 方法&#xff0c;或者是 BFS 方法 2. 对陆地进行 DFS 的时候时刻注意以访问的元素添加访问标记 //…...

Python Django 的 ORM 编程思想及使用步骤

目录 一、ORM 编程思想概述​ 二、Python 中使用 ORM 的主要优势​ 2.1 简化数据库操作​ 2.2 提高开发效率​ 2.3 减少错误​ 2.4 增强代码的可维护性​ 2.5 降低耦合性​ 三、Django 中使用 ORM 的详细步骤​ 3.1 创建应用模块​ 3.2 配置数据库信息​ 3.3 确定数…...

设计一个程序,将所有的小写字母转换为大写字母

汇编语言程序设计实验 实验内容 设计一个程序&#xff0c;将所有的小写字母转换为大写字母&#xff0c;此程序不能改变除字母a~z外的任何其它字符。 实验分析 实现的功能是将所有的小写字母转换为大写字母&#xff0c;此程序不能改变除字母a~z外的任何其它字符。可以分为以…...

Rust 学习笔记:关于错误处理的练习题

Rust 学习笔记&#xff1a;关于错误处理的练习题 Rust 学习笔记&#xff1a;关于错误处理的练习题想看到回溯&#xff0c;需要把哪个环境变量设置为 1&#xff1f;以下哪一项不是使用 panic 的好理由&#xff1f;以下哪一项最能描述为什么 File::open 返回的是 Result 而不是 O…...

使用docker——10分钟内 完成一个高可用的 MongoDB 副本集部署

实验目的 掌握 Docker 容器化部署 MongoDB 副本集 的方法 理解 主从同步、故障转移、数据一致性 等核心机制 熟悉 MongoDB 集群管理命令 和 运维监控技巧 &#x1f527; 实验环境 操作系统: Rocky Linux 9 / CentOS 7 软件依赖: Docker 20.10 docker-compose 1.29 硬件要…...

信息化的编程未来发展

信息化与数字化与编程领域与AI的爆炸发展是最近十几年瞠目结舌的事情&#xff0c;列举一下相关词汇&#xff1a; C#、AI、C、Python、.NET、API 、IDE、asp、JavaScript网页端、Visua Studio、VR、Github、OpenGL-webGL-计算机图形学、面向对象 、类库、GIS、GPU计算与显卡、可…...

计算机视觉与深度学习 | EMD-KPCA-LSTM、EMD-LSTM、LSTM回归预测对比,多输入单输出(Matlab完整程序和数据)

以下是针对EMD-KPCA-LSTM、EMD-LSTM和LSTM回归预测对比的完整可运行MATLAB实现。包含数据生成、特征处理、模型构建和性能评估全流程,并提供关键代码注释和注意事项。 完整代码实现(含数据生成) %% 清理环境 clear; clc; close all; warning off;%% 生成模拟数据(正弦波+噪…...

Ollama 如何在显存资源有限的情况下合理分配给不同的服务?

在显存资源有限的情况下&#xff0c;合理分配显存给不同服务需要结合硬件特性、软件配置和模型优化技术。以下是几种有效的方法&#xff1a; 1. 使用 Ollama 自身的资源限制参数 Ollama 提供了一些命令行参数来限制单个模型的资源使用&#xff1a; --ram&#xff1a;限制模型…...

2025-05-19 学习记录--Python-简易用户登录系统 + 计算天数

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、简易用户登录系统 ⭐️ # 用户登录系统 # 用户名、密码、黑名单 users [{name: 小红, password: 123, status:True},{name…...

APP小程序抓包和下游代理

本文仅作学习/技术记录和交流&#xff0c;请勿进行非法活动&#xff0c;否则后果自负&#xff01; 本文将主要围绕对小程序、APP的抓包方法&#xff0c;同时介绍下游代理。 在本文中我们将用到 Burpsuite、Yakit 和 Proxifier来完成。 小程序&APP抓包 对于小程序或APP抓…...

UE 材质几个输出向量节点

PixelNormalWS...

【八股战神篇】Java多线程高频面试题(JUC)

目录 专栏简介 一 如何创建线程&#xff1f; 延伸 1. 创建 Java 线程的本质 二 说说线程的生命周期&#xff1f; 延伸 1.描述一下线程的生命周期图 2.线程的优先级对线程执行有何影响&#xff1f; 3.如何确保三个线程按照特定顺序执行&#xff1f; 三 并发和并行的区…...

【esp32 mqtt】 连接亚马逊-加密传输信息

文章目录 1 加密文件1.1 服务端证书1.2 客户端CA证书1.3 客户端私钥1.4 三者协同工作的流程 2 亚马逊创建物品3 esp32 程序编写3.1 证书文件读取3.2 MQTT配置3.2.1 配置结构体3.2.2 初始化客户端3.2.3 注册事件3.2.4 开启mqtt3.2.5 示例 3.3 事件回调函数3.2.1 示例 3.4 接收到…...

用于判断主子关系的方法的实现(orm是efcore)

HasParentChildRelationship 方法&#xff1a;主要用于判断给定实体集合中是否存在主子关系&#xff0c;通过检查实体的导航属性来实现。CheckForDependencies 方法&#xff1a;是一个辅助方法&#xff0c;负责具体的依赖关系检查&#xff0c;包括对已访问实体的跟踪&#xff0…...

《Effective Python》第三章 循环和迭代器——在遍历参数时保持防御性

引言 本文基于《Effective Python: 125 Specific Ways to Write Better Python, 3rd Edition》一书的 Chapter 3: Loops and Iterators 中的 Item 21: Be Defensive when Iterating over Arguments。该条目深入探讨了在 Python 中处理迭代器&#xff08;iterator&#xff09;和…...

【python基础知识】Day30 模块和库的导入

学习python 学习python基础语法 处理任务需要用到的库 一、导入官方库的三种手段 1 标准导入&#xff1a;导入整个库 # 方式1&#xff1a;导入整个模块 import math# 导入库后&#xff0c;输出测试 print("方式1&#xff1a;使用 import math") print(f"圆周率…...

leetcode hot100刷题日记——4.盛最多水的容器

解答&#xff1a; 我的思路&#xff1a; class Solution{public:int maxArea(vector<int>& height){//遍历&#xff0c;我暴力找一下,时间超限// int vol0;// for(int i0;i<height.size()-1;i){// for(int ji1;j<height.size();j){// volmax(vol,…...

大二周周练翻译

翻译题 文章目录 翻译题[toc]中国茶道数字经济茶马古道中国父母现状电子商务长城大学生就业一带一路中国结 相遇的意义&#xff0c;是被你改变的那部分的我&#xff0c;代替你永远陪在我身边 点个赞呗&#xff01; 中国茶道 China is a country with a time-honored civilizat…...

深度学习————模型保存与部署

第一部分&#xff1a;模型保存基础 什么是模型保存&#xff1f; 当你训练好一个深度学习模型后&#xff0c;它会拥有“学习到的参数”&#xff0c;这些参数&#xff08;权重、偏置等&#xff09;构成了模型的“知识”。如果不保存这些参数&#xff0c;那么训练好的模型在关闭…...

5G金融互联:迈向未来金融服务的极速与智能新时代

5G金融互联:迈向未来金融服务的极速与智能新时代 大家好,我是Echo_Wish,今天咱们聊聊一个大家都十分关心的话题:5G网络在金融服务中的应用。咱们平时可能觉得5G只是打个电话、刷个视频更流畅了,但在金融服务领域,5G的低延时、大带宽和高可靠性正在悄然改变整个游戏规则。…...

交易所开发:构建功能完备的金融基础设施全流程指南

交易所开发&#xff1a;构建功能完备的金融基础设施全流程指南 ——从技术架构到合规安全的系统性解决方案 一、开发流程&#xff1a;从需求分析到运维优化 开发一款功能完备的交易所需要遵循全生命周期管理理念&#xff0c;涵盖市场定位、技术实现、安全防护和持续迭代四大阶…...

Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频

Icecream Video Editor 是一款简单易用的视频编辑软件&#xff0c;专为希望快速、高效编辑视频的用户设计。它提供了丰富的功能&#xff0c;包括视频剪辑、效果应用、音频处理和视频导出&#xff0c;满足用户在不同场景下的需求。无论是视频新手还是有一定基础的创作者&#xf…...

论文阅读--Logical quantum processor based on reconfigurable atom arrays

论文主要内容 研究背景与目标&#xff1a; 论文提出了一种基于可重构中性原子阵列的逻辑量子处理器&#xff0c;旨在通过量子纠错&#xff08;QEC&#xff09;和逻辑量子比特编码&#xff0c;解决物理量子比特的噪声限制问题。该处理器结合高保真度逻辑门操作、任意连接性和实时…...

安防综合管理系统EasyCVR视频融合平台安防知识:门禁系统与视频监控系统如何联动?

在现代安防体系中&#xff0c;视频监控与门禁系统是两大核心。前者实时记录画面&#xff0c;为安全事件追溯提供依据&#xff1b;后者精准管控人员出入。二者联动可提升安防智能化水平&#xff0c;实现门禁点图像抓拍与实时监视&#xff0c;在安全事件发生时快速整合信息&#…...

微机系统第二章-题目整理

80x86标志寄存器中ZF位等于1&#xff0c;说明( )。 A A&#xff0e;运算结果等于0 B. 运算结果大于0 C. 运算结果不等于0 D.运算结果溢出 8086CPU由哪两大部分组成&#xff1f;简述它们的主要功能。 总线接口部件BIU跟执行部件EU。 总线接口部件&#xff08;BIU&…...

w~自动驾驶合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12371169 #世界模型和DriveGPT这类大模型到底能给自动驾驶带来什么ne 以下分享大模型与自动驾驶结合的相关工作9篇论 1、ADAPT ADAPT: Action-aware Driving Caption Transformer&#xff08;ICRA2023&#xff09; AD…...

嵌入式学习的第二十三天-数据结构-树+哈希表+内核链表

一、树&#xff08;一对多&#xff09; 1.树的定义 树&#xff1a;n&#xff08;n>0&#xff09;个结点的有限集合。n 0 ,空树。 2.在任意一个非空树中&#xff0c; (1)&#xff0c;有且仅有一个特定的根结点 (2)&#xff0c;当n>1 时&#xff0c;其余结点可分为m个…...

互联网大厂Java求职面试:Spring AI与大模型交互的高级模式与自定义开发

互联网大厂Java求职面试&#xff1a;Spring AI与大模型交互的高级模式与自定义开发 在当今技术领域&#xff0c;随着AI和大模型技术的广泛应用&#xff0c;如何在复杂的系统架构中高效地集成这些技术成为了各大互联网公司关注的重点。本文将通过一场模拟的面试对话&#xff0c…...

Ansible模块——主机名设置和用户/用户组管理

设置主机名 ansible.builtin.hostname: name&#xff1a;要设置的主机名 use&#xff1a;更新主机名的方式&#xff08;默认会自动选择&#xff0c;不指定的话&#xff0c;物理机一般不会有问题&#xff0c;容器可能会有问题&#xff0c;一般是让它默认选择&#xff09; syst…...

lowcoder数据库操作1:链接目标数据库

比如我使用的是PostgreSQL&#xff0c;要链接到数据库。 步骤1&#xff0c;Data Sources 步骤2, New data source 步骤3&#xff0c;选择PostgreSQL 步骤4&#xff0c;输入各种信息 命名&#xff0c;数据库所在的IP&#xff0c;端口&#xff0c;库名&#xff0c;用户密码。 步…...

R9打卡——RNN实现阿尔茨海默病诊断(优化特征选择版)

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 1.检查GPU import numpy as np import pandas as pd import torch from torch import nn import torch.nn.functional as F import seaborn as sns#设置GPU训…...

Label Studio:开源标注神器

目录 一、Label Studio 是什么&#xff1f; 二、核心功能大揭秘 2.1 多类型数据全兼容 2.2 个性化定制随心配 2.3 团队协作超给力 2.4 机器学习巧集成 三、上手实操超简单 3.1 安装部署不头疼 3.1.1 Docker安装 3.1.2 pip安装 3.1.3 Anaconda安装 3.2 快速开启标注…...

flow-两种SharingStarted策略的区别示例

一 代码示例 viewModel.kt:// 上游数据源 - 模拟温度传感器 private val temperatureSource flow {var temp 20while(true) {emit(temp)delay(1000)println("上游发射温度: $temp") // 日志观察发射} }// WhileSubscribed - 有订阅者才收集 val temperature1 tem…...

零基础设计模式——设计模式入门

第一部分&#xff1a;设计模式入门 欢迎来到设计模式的世界&#xff01;别担心&#xff0c;这听起来可能很“高大上”&#xff0c;但我们会用最生活化的例子来帮助你理解。 1. 什么是设计模式&#xff1f; 想象一下&#xff0c;你是个大厨&#xff0c;每天都要做很多菜。有些…...

通过vcpkg交叉编译grpc:构建Arm64平台的Docker化开发环境

一、引言 在现代软件开发中&#xff0c;交叉编译是构建跨平台应用程序的关键技术。本文将详细介绍如何使用Docker容器和vcpkg包管理器为Arm64架构交叉编译gRPC库。这种方法特别适用于需要在x86开发机上为ARM服务器或嵌入式设备构建高性能RPC服务的场景。 二、配置Docker交叉编…...

Nginx基础知识

Nginx是什么&#xff1f; Nginx 是一款高性能的 Web 服务器、反向代理服务器和负载均衡器&#xff0c;以其高并发处理能力和低内存消耗著称。以下是 Nginx 的基础知识和常见配置示例&#xff1a; 1. 核心概念 • 配置文件位置&#xff1a;通常为 /etc/nginx/nginx.conf 或 /us…...

【计算机主板架构】ITX架构

一、引言 在计算机硬件的广阔领域中&#xff0c;主板架构犹如大厦的基石&#xff0c;对整个计算机系统的性能、功能和扩展性起着至关重要的作用。其中&#xff0c;ITX架构以其小巧、灵活和独特的设计理念&#xff0c;在特定的应用场景中脱颖而出。从家庭媒体中心到小型办公电脑…...

ubuntu 20.04 运行和编译LOAM_Velodyne

摘要&#xff1a;创建工作空间-->src下克隆代码&#xff08;https://github.com/laboshinl/loam_velodyne&#xff09;-->修改四处代码&#xff08;找到src/loam_velodyne路径下的CMakeLists.txt文件&#xff0c;注释掉35行代码和将/LOAM/src/loam_velodyne/src/lib文件夹…...

云计算简介:从“水电”到“数字引擎”的技术革命

云计算简介&#xff1a;从“水电”到“数字引擎”的技术革命 在当今数字化浪潮中&#xff0c;云计算早已从一个技术概念演变为支撑现代社会运转的核心基础设施。无论是你手机里的天气预报、电商购物的推荐系统&#xff0c;还是企业内部的ERP系统&#xff0c;背后都离不开云计算…...