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

Docker常用命令与实战示例

docker

  • 1. 安装
  • 2. 常用命令
  • 3. 存储
  • 4. 网络
  • 5. redis主从复制示例
  • 6. wordpress示例
  • 7. DockerFile
  • 8. 一键安装超多中间件(compose)

1. 安装

以centOS系统为例

# 移除旧版本docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 配置docker yum源(阿里云镜像)。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 启动& 开机启动docker; enable + start 二合一
systemctl enable docker --now# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2. 常用命令

#docker命令
#查看运行中的容器
docker ps
#查看所有容器(包含非运行状态的)
docker ps -a
#搜索镜像
docker search nginx
#下载镜像
docker pull nginx
#下载指定版本镜像
docker pull nginx:1.26.0
#查看所有本地镜像
docker images
#删除指定id的镜像
docker rmi e784f4560448#运行一个新容器(以nginx为例)
docker run nginx
#停止容器
docker stop nginx
#启动容器(以容器ID=592为例,容器ID用docker ps命令查看)
docker start 592
#重启容器(以容器ID=592为例,容器ID用docker ps命令查看)
docker restart 592
#查看容器资源占用情况(以容器ID=592为例,容器ID用docker ps命令查看)
docker stats 592
#查看容器日志(以容器ID=592为例,容器ID用docker ps命令查看)
docker logs 592
#删除指定容器(以容器ID=592为例,容器ID用docker ps命令查看)
docker rm 592
#强制删除指定容器(以容器ID=592为例,容器ID用docker ps命令查看)
docker rm -f 592
# 后台启动容器(-d)
docker run -d --name mynginx nginx
# 后台启动并暴露端口(-p)
docker run -d --name mynginx -p 80:80 nginx
# 进入容器内部(exec命令)
docker exec -it mynginx /bin/bash# 提交容器变化打成一个新的镜像
docker commit -m "update index.html" mynginx mynginx:v1.0
# 保存镜像为指定文件
docker save -o mynginx.tar mynginx:v1.0
# 删除多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448
# 加载镜像
docker load -i mynginx.tar # 登录 docker hub
docker login
# 重新给镜像打标签
docker tag mynginx:v1.0 leifengyang/mynginx:v1.0
# 推送镜像
docker push leifengyang/mynginx:v1.0# 查看分卷列表
Docker volume ls# 查看卷详情
docker volume inspect [volume name]
# 创建一个网络,使用自定义的网络可以实现docker之间通过名称访问
Docker network create mynet
# 列举网络
Docker network ls

3. 存储

两种方式,注意区分,命令都是“-v”,以目录开头的是目录挂载,此方式以外部目录为主,覆盖容器目录;
以变量开头的方式为卷映射,以容器内部为主,在宿主机的/var/lib/docker/volumes/目录下会新建卷,来映射容器中的指定位置

• 目录挂载: -v /app/nghtml:/usr/share/nginx/html
• 卷映射:-v ngconf:/etc/nginx

# 命令示例
docker run -d -p 80:80 \
-v /app/nghtml:/usr/share/nginx/html \
-v ngconf:/etc/nginx \
--name app03 \
nginx

配置文件可以使用卷映射,以容器为主
数据目录可以使用挂载盘,以宿主机为主

4. 网络

虽然docker官方只带网络“docker0”,但是默认网络不支持使用域名访问,一般我们需要自定义一个网络,然后让相关的容器都加入这个网络,实现容器间域名访问,注意容器间网络交互使用容器内部端口,而非宿主机映射端口。

# 创建一个网络,使用自定义的网络可以实现docker之间通过名称访问
Docker network create mynet
# 列举网络
Docker network ls
# 让容器加入mynet网络
docker run -d -p 80:80 \
-v /app/nghtml:/usr/share/nginx/html \
-v ngconf:/etc/nginx \
--name mynginx \
--network mynet \
nginx

5. redis主从复制示例

#自定义网络
docker network create mynet
#主节点
docker run -d -p 6379:6379 \
-v /app/rd1:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=master \
-e REDIS_PASSWORD=123456 \
--network mynet --name redis01 \
bitnami/redis#从节点
docker run -d -p 6380:6379 \
-v /app/rd2:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=slave \
-e REDIS_MASTER_HOST=redis01 \
-e REDIS_MASTER_PORT_NUMBER=6379 \
-e REDIS_MASTER_PASSWORD=123456 \
-e REDIS_PASSWORD=123456 \
--network mynet --name redis02 \
bitnami/redis

6. wordpress示例

#MYSQLdocker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=mall \
-v /app/mysql-data:/var/lib/mysql \
-v /app/myconf:/etc/mysql/conf.d \
--restart always --name mysql01 \
--network mynet \
mysql:8.0# wordpressdocker run -d -p 8080:80 \
-e WORDPRESS_DB_HOST:mysql01 \
-e WORDPRESS_DB_USER:root \
-e WORDPRESS_DB_PASSWORD:123456 \
-e WORDPRESS_DB_NAME:wordpress \
-v wordpress:/var/www/html \
--restart always --name wordpress \
--network mynet \
wordpress

7. DockerFile

利用Dockerfile将自己的jar包打包成镜像,以app.jar为例

vim Dockerfile
# 输入以下内容
FROM openjdk:17
LABEL author=guailiwugui
COPY app.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]# esc wq 保存并退出
# 构建镜像(最后一个.表示指定目录为当前目录)
docker build -f Dockerfile -t myapp:v1.0 .

Dockerfile常见指令

8. 一键安装超多中间件(compose)

环境准备前置命令

#Disable memory paging and swapping performance
sudo swapoff -a# Edit the sysctl config file
sudo vi /etc/sysctl.conf# Add a line to define the desired value
# or change the value if the key exists,
# and then save your changes.
vm.max_map_count=262144# Reload the kernel parameters using sysctl
sudo sysctl -p# Verify that the change was applied by checking the value
cat /proc/sys/vm/max_map_count

注意:
● 将下面文件中 kafka 的 119.45.147.122 改为你自己的服务器IP。
● 所有容器都做了时间同步,这样容器的时间和linux主机的时间就一致了
准备一个 compose.yaml文件,内容如下:

name: devsoft
services:redis:image: bitnami/redis:latestrestart: alwayscontainer_name: redisenvironment:- REDIS_PASSWORD=123456ports:- '6379:6379'volumes:- redis-data:/bitnami/redis/data- redis-conf:/opt/bitnami/redis/mounted-etc- /etc/localtime:/etc/localtime:romysql:image: mysql:8.0.31restart: alwayscontainer_name: mysqlenvironment:- MYSQL_ROOT_PASSWORD=123456ports:- '3306:3306'- '33060:33060'volumes:- mysql-conf:/etc/mysql/conf.d- mysql-data:/var/lib/mysql- /etc/localtime:/etc/localtime:rorabbit:image: rabbitmq:3-managementrestart: alwayscontainer_name: rabbitmqports:- "5672:5672"- "15672:15672"environment:- RABBITMQ_DEFAULT_USER=rabbit- RABBITMQ_DEFAULT_PASS=rabbit- RABBITMQ_DEFAULT_VHOST=devvolumes:- rabbit-data:/var/lib/rabbitmq- rabbit-app:/etc/rabbitmq- /etc/localtime:/etc/localtime:roopensearch-node1:image: opensearchproject/opensearch:2.13.0container_name: opensearch-node1environment:- cluster.name=opensearch-cluster # Name the cluster- node.name=opensearch-node1 # Name the node that will run in this container- discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster- cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligibile to serve as cluster manager- bootstrap.memory_lock=true # Disable JVM heap memory swapping- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM- "DISABLE_INSTALL_DEMO_CONFIG=true" # Prevents execution of bundled demo script which installs demo certificates and security configurations to OpenSearch- "DISABLE_SECURITY_PLUGIN=true" # Disables Security pluginulimits:memlock:soft: -1 # Set memlock to unlimited (no soft or hard limit)hard: -1nofile:soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536hard: 65536volumes:- opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container- /etc/localtime:/etc/localtime:roports:- 9200:9200 # REST API- 9600:9600 # Performance Analyzeropensearch-node2:image: opensearchproject/opensearch:2.13.0container_name: opensearch-node2environment:- cluster.name=opensearch-cluster # Name the cluster- node.name=opensearch-node2 # Name the node that will run in this container- discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster- cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligibile to serve as cluster manager- bootstrap.memory_lock=true # Disable JVM heap memory swapping- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM- "DISABLE_INSTALL_DEMO_CONFIG=true" # Prevents execution of bundled demo script which installs demo certificates and security configurations to OpenSearch- "DISABLE_SECURITY_PLUGIN=true" # Disables Security pluginulimits:memlock:soft: -1 # Set memlock to unlimited (no soft or hard limit)hard: -1nofile:soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536hard: 65536volumes:- /etc/localtime:/etc/localtime:ro- opensearch-data2:/usr/share/opensearch/data # Creates volume called opensearch-data2 and mounts it to the containeropensearch-dashboards:image: opensearchproject/opensearch-dashboards:2.13.0container_name: opensearch-dashboardsports:- 5601:5601 # Map host port 5601 to container port 5601expose:- "5601" # Expose port 5601 for web access to OpenSearch Dashboardsenvironment:- 'OPENSEARCH_HOSTS=["http://opensearch-node1:9200","http://opensearch-node2:9200"]'- "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" # disables security dashboards plugin in OpenSearch Dashboardsvolumes:- /etc/localtime:/etc/localtime:rozookeeper:image: bitnami/zookeeper:3.9container_name: zookeeperrestart: alwaysports:- "2181:2181"volumes:- "zookeeper_data:/bitnami"- /etc/localtime:/etc/localtime:roenvironment:- ALLOW_ANONYMOUS_LOGIN=yeskafka:image: 'bitnami/kafka:3.4'container_name: kafkarestart: alwayshostname: kafkaports:- '9092:9092'- '9094:9094'environment:- KAFKA_CFG_NODE_ID=0- KAFKA_CFG_PROCESS_ROLES=controller,broker- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://0.0.0.0:9094- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://119.45.147.122:9094- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- ALLOW_PLAINTEXT_LISTENER=yes- "KAFKA_HEAP_OPTS=-Xmx512m -Xms512m"volumes:- kafka-conf:/bitnami/kafka/config- kafka-data:/bitnami/kafka/data- /etc/localtime:/etc/localtime:rokafka-ui:container_name: kafka-uiimage: provectuslabs/kafka-ui:latestrestart: alwaysports:- 8080:8080environment:DYNAMIC_CONFIG_ENABLED: trueKAFKA_CLUSTERS_0_NAME: kafka-devKAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092volumes:- kafkaui-app:/etc/kafkaui- /etc/localtime:/etc/localtime:ronacos:image: nacos/nacos-server:v2.3.1container_name: nacosports:- 8848:8848- 9848:9848environment:- PREFER_HOST_MODE=hostname- MODE=standalone- JVM_XMX=512m- JVM_XMS=512m- SPRING_DATASOURCE_PLATFORM=mysql- MYSQL_SERVICE_HOST=nacos-mysql- MYSQL_SERVICE_DB_NAME=nacos_devtest- MYSQL_SERVICE_PORT=3306- MYSQL_SERVICE_USER=nacos- MYSQL_SERVICE_PASSWORD=nacos- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true- NACOS_AUTH_IDENTITY_KEY=2222- NACOS_AUTH_IDENTITY_VALUE=2xxx- NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789- NACOS_AUTH_ENABLE=truevolumes:- /app/nacos/standalone-logs/:/home/nacos/logs- /etc/localtime:/etc/localtime:rodepends_on:nacos-mysql:condition: service_healthynacos-mysql:container_name: nacos-mysqlbuild:context: .dockerfile_inline: |FROM mysql:8.0.31ADD https://raw.githubusercontent.com/alibaba/nacos/2.3.2/distribution/conf/mysql-schema.sql /docker-entrypoint-initdb.d/nacos-mysql.sqlRUN chown -R mysql:mysql /docker-entrypoint-initdb.d/nacos-mysql.sqlEXPOSE 3306CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]image: nacos/mysql:8.0.30environment:- MYSQL_ROOT_PASSWORD=root- MYSQL_DATABASE=nacos_devtest- MYSQL_USER=nacos- MYSQL_PASSWORD=nacos- LANG=C.UTF-8volumes:- nacos-mysqldata:/var/lib/mysql- /etc/localtime:/etc/localtime:roports:- "13306:3306"healthcheck:test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]interval: 5stimeout: 10sretries: 10prometheus:image: prom/prometheus:v2.52.0container_name: prometheusrestart: alwaysports:- 9090:9090volumes:- prometheus-data:/prometheus- prometheus-conf:/etc/prometheus- /etc/localtime:/etc/localtime:rografana:image: grafana/grafana:10.4.2container_name: grafanarestart: alwaysports:- 3000:3000volumes:- grafana-data:/var/lib/grafana- /etc/localtime:/etc/localtime:rovolumes:redis-data:redis-conf:mysql-conf:mysql-data:rabbit-data:rabbit-app:opensearch-data1:opensearch-data2:nacos-mysqldata:zookeeper_data:kafka-conf:kafka-data:kafkaui-app:prometheus-data:prometheus-conf:grafana-data:

启动命令:

# 在 compose.yaml 文件所在的目录下执行
docker compose up -d
# 等待启动所有容器
# tip:如果重启了服务器,可能有些容器会启动失败。再执行一遍 docker compose up -d即可。所有程序都可运行成功,并且不会丢失数据。请放心使用。

各组件端口资料

相关文章:

Docker常用命令与实战示例

docker 1. 安装2. 常用命令3. 存储4. 网络5. redis主从复制示例6. wordpress示例7. DockerFile8. 一键安装超多中间件&#xff08;compose&#xff09; 1. 安装 以centOS系统为例 # 移除旧版本docker sudo yum remove docker \docker-client \docker-client-latest \docker-c…...

数据结构(基础知识)

基础概念&#xff1a; 数据&#xff1a;数据是信息的载体&#xff0c;是描述客观事物属性的数&#xff0c;字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合 数据元素&#xff1a;是数据的基本单位&#xff0c;在程序中常作为一个整体来考虑 数据对象&#…...

计算机网络:网络层 - 路由选择协议

计算机网络&#xff1a;网络层 - 路由选择协议 路由器的结构路由选择协议概述自治系统 AS内部网关协议路由信息协议 RIP距离向量算法RIP报文格式收敛问题 开放最短路径优先 OSPF基本工作原理自治系统分区 外部网关协议BGP-4 路由器的结构 如图所示&#xff0c;路由器被分为路由…...

JupyterLab使用指南(六):JupyterLab的 Widget 控件

1. 什么是 Widget 控件 JupyterLab 中的 Widget 控件是一种交互式的小部件&#xff0c;可以用于创建动态的、响应用户输入的界面。通过使用 ipywidgets 库&#xff0c;用户可以在 Jupyter notebook 中创建滑块、按钮、文本框、选择器等控件&#xff0c;从而实现数据的交互式展…...

OpenCV 特征点检测与匹配

一 OpenCV特征场景 ①图像搜索&#xff0c;如以图搜图&#xff1b; ②拼图游戏&#xff1b; ③图像拼接&#xff0c;将两长有关联得图拼接到一起&#xff1b; 1 拼图方法 寻找特征 特征是唯一的 可追踪的 能比较的 二 角点 在特征中最重要的是角点 灰度剃度的最大值对应的…...

css布局之flex应用

/*父 100*/.parent-div {/* 这里添加你想要的属性 */display: flex;flex-direction: row; //行justify-content: space-between; //左右对齐align-items: center;flex-wrap: wrap; //换行}/*中 90 10 */.middle-div {/* 这里添加你想要的属性 */display: flex;flex-direction:…...

树莓派4B设置AP热点步骤

树莓派4B设置AP热点步骤&#xff1a;先进入root模式 预先进行apt-get update 第1步&#xff1a;安装network-manager ​sudo apt-get install network-manager第2步&#xff1a;安装git apt-get install git apt-get install util-linux procps hostapd iproute2 iw haveged …...

Java程序之百鸡百钱问题

题目&#xff1a; 百钱买百鸡的问题算是一套非常经典的不定方程的问题&#xff0c;题目很简单&#xff1a;公鸡5文钱一只&#xff0c;母鸡3文钱一只&#xff0c;小鸡3只一文钱&#xff0c;用100文钱买一百只鸡,其中公鸡&#xff0c;母鸡&#xff0c;小鸡都必须要有&#xff0c;…...

Mybatis——动态sql

if标签 用于判断条件是否成立。使用test属性进行条件判断&#xff0c;如果条件为true&#xff0c;则拼接sql。 <where>标签用于识别语句是否需要连接词and&#xff0c;识别sql语句。 package com.t0.maybatisc.mapper;import com.t0.maybatisc.pojo.Emp; import org.a…...

可视化大屏开发系列——页面布局

页面布局是可视化大屏的基础&#xff0c;想要拥有一个基本美观的大屏&#xff0c;就得考虑页面整体模块的宽高自适应&#xff0c;我们自然就会想到具有强大灵活性flex布局&#xff0c;再借助百分比布局来辅助。至此&#xff0c;大屏页面布局问题即可得到解决。 可视化大屏开发系…...

Python statistics 模块

Python 的 statistics 模块提供了一组用于执行各种统计计算的函数&#xff0c;包括平均值、中位数、标准差、方差以及其他统计量。让我来简单介绍一下。 首先&#xff0c;你可以使用以下方式导入 statistics 模块&#xff1a; python import statistics 接下来&#xff0c;…...

wireshark常见使用表达式

目录 1. 捕获过滤器 (Capture Filters)基本捕获过滤器组合捕获过滤器 2. 显示过滤器 (Display Filters)基本显示过滤器复杂显示过滤器协议特定显示过滤器 3. 进阶显示过滤器技巧使用函数和操作符逻辑操作符 4. 常见网络协议过滤表达式示例HTTP 协议HTTPS 协议DNS 协议DHCP 协议…...

用Java获取键盘输入数的个十百位数

这段Java代码是一个简单的程序&#xff0c;用于接收用户输入的一个三位数&#xff0c;并将其分解为个位、十位和百位数字&#xff0c;然后分别打印出来。下面是代码的详细解释&#xff1a; 导入所需类库: import java.util.Scanner;&#xff1a;导入Scanner类&#xff0c;用于从…...

第10章 启动过程组 (制定项目章程)

第10章 启动过程组 9.1制定项目章程&#xff0c;在第三版教材第356~360页&#xff1b; 文字图片音频方式 视频12 第一个知识点&#xff1a;主要输出 1、项目章程&#xff08;重要知识点&#xff09; 项目目的 为了稳定与发展公司的客户群(抽象&#xff0c;非具体) 可测量的项目…...

html侧导航栏客服栏

ico 替换 ICO <html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>返回顶部</title><script src"js/jquery-2.0.3.min.js"…...

Clonable接口和拷贝

Hello~小伙伴们&#xff01;本篇学习Clonable接口与深拷贝&#xff0c;一起往下看吧~(画图水平有限&#xff0c;两张图&#xff0c;&#xff0c;我真的画了巨久&#xff0c;求路过的朋友来个3连~阿阿阿~~~) 目录 1、Clonable接口概念 2、拷贝 2、1浅拷贝 2、2深拷贝 1、Clon…...

关于小蛋の编程和小蛋编程为同一作者的说明

小蛋の编程和小蛋编程的作品为同一人制作&#xff0c;因前者为父母的手机号进行注册&#xff0c;现用本人手机号注册了新账号小蛋编程&#xff0c;后续文章将在新账号小蛋编程上进行刊登&#xff0c;同时在小蛋编程上对原账号文章进行转载。此账号不再发布帖子&#xff0c;请大…...

大数据平台之Spark

Apache Spark 是一个开源的分布式计算系统&#xff0c;主要用于大规模数据处理和分析。它由UC Berkeley AMPLab开发&#xff0c;并由Apache Software Foundation维护。Spark旨在提供比Hadoop MapReduce更快的处理速度和更丰富的功能&#xff0c;特别是在处理迭代算法和交互式数…...

How to use ModelSim

How to use ModelSim These are all written by a robot Remember, you can only simulate tb files....

【专业英语 复习】第8章 Communications and Networks

1. 单选题 One of the most dramatic changes in connectivity and communications in the past few years has been ____. A. widespread use of mobile devices with wireless Internet connectivity B. chat rooms C. satellite uplinks D. running programs on rem…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...