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

4. docker镜像、Dockerfile

docker镜像、Dockerfile

  • 一、docker镜像
    • 1、镜像介绍
    • 2、镜像核心技术
  • 二、Dockerfile定制镜像
    • 1、Dockerfile使用流程
      • 1.1 编写Dockerfile
      • 1.2、构建镜像
      • 1.3 创建容器测试镜像定制操作
    • 2、Dockerfile常用指令
  • 三、部署springcloud微服务架构的商品秒杀项目
    • 1、部署项目需要的基础服务
      • 1.1 部署redis缓存
      • 1.2 部署MySQL数据库
      • 1.3 部署rabbitmq消息队列
    • 2、部署微服务框架
      • 2.1 部署erueka 注册中心
      • 2.2 部署config-server 配置中心
      • 2.3 部署zuul-server 网关
    • 3、部署业务
      • 3.1 部署会员服务
      • 3.2 部署商品展示业务
      • 3.3 部署秒杀业务
      • 3.4 部署web前端
      • 3.4 部署websocket, 实现http长连接

一、docker镜像

1、镜像介绍

  • 分层的文件系统
    优势:节省空间、速度快、重用

  • 只读
    创建容器时,会在镜像上面添加一个可写层

在这里插入图片描述

2、镜像核心技术

  • COW copy on write 写时复制
  • Union fs 联合文件系统
    overlay2
    device mapper
[root@martin-host ~]# docker info  
Client: Docker Engine - CommunityVersion:    26.1.4Context:    defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.14.1Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.27.1Path:     /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 1Running: 0Paused: 0Stopped: 1Images: 4Server Version: 26.1.4Storage Driver: overlay2

二、Dockerfile定制镜像

1、Dockerfile使用流程

1.1 编写Dockerfile

[root@martin-host testDockerfile]# ls
CentOS-Base.repo  Dockerfile
[root@martin-host testDockerfile]# cat Dockerfile 
FROM centos:7COPY  CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repoRUN yum install -y net-tools

1.2、构建镜像

[root@martin-host testDockerfile]# docker build -t centos:v1 ./ 

1.3 创建容器测试镜像定制操作

[root@martin-host testDockerfile]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       v1        3e88e2fdb6df   56 seconds ago   461MB
redis        latest    7614ae9453d1   2 years ago      113MB
centos       7         eeb6ee3f44bd   2 years ago      204MB
nginx        1.18      c2c45d506085   3 years ago      133MB[root@martin-host testDockerfile]# docker run -tid --name=test1 centos:v1 
949b757d2b35b4d115a88f69cc8f1d704b6e6fcd34a64d4ecbfc28422e7530aa[root@martin-host testDockerfile]# docker exec -ti test1 bash
[root@949b757d2b35 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1472inet 10.88.7.2  netmask 255.255.255.0  broadcast 10.88.7.255ether 02:42:0a:58:07:02  txqueuelen 0  (Ethernet)RX packets 8  bytes 656 (656.0 B)

2、Dockerfile常用指令

  • FROM
    指定基础镜像;
    镜像不存在,构建镜像时自动下载镜像
    建议尽量选择小容量的镜像 / debian/ ubuntu
FROM 镜像名称 
  • RUN
    指定定制命令
RUN 命令 && 命令 && 命令
  • CMD
    定义容器创建时,自动执行的命令
    注意事项:
    1、前台启动服务的指令
    2、创建容器时,不要自己指定命令,会覆盖CMD
    3、一个Dockerfile中只能有一条CMD指令
CMD httpd -D FOREGROUND
CMD ["httpd", "-D", "FOREGROUND"]	// 推荐
  • ENTRYPOINT
    定义容器创建时,自动执行的命令
    不会被覆盖
ENTRYPOINT ["httpd", "-D", "FOREGROUND"]
  • COPY
    复制文件
    注意:只能复制本地文件
COPY 源文件 目的文件 
  • ADD
    复制文件
    注意:
    1、支持本地文件、URL、压缩包会自动解压
ADD 源文件 目的文件 
ADD file01 /tmp/file01
ADD http://nginx.org/download/nginx-1.27.0.tar.gz /tmp
ADD jdk-8u91-linux-x64.tar.gz /tmp
  • EXPOSE
    说明容器服务端口
    注意:
    1、-P随机发布端口时,Dockerfile中必须有EXPOSE指令
EXPOSE 端口 端口
  • VOLUME
    定义持久化存储的目录
    创建容器时不使用-v明确指定目录,会自动生成匿名卷
VOLUME 目录
  • ENV
    定义环境变量
ENV 变量名称 值 
  • WORKDIR
    定义当前目录
WORKDIR 目录
  • USER
    指定容器运行的用户
USER 用户名

三、部署springcloud微服务架构的商品秒杀项目

1、部署项目需要的基础服务

1.1 部署redis缓存

[root@martin-host web]# docker run -tid --name=redis --hostname=redis --restart=always --net=host redis:3.2.10 
33ff624e19c309793fdfa23dbd5c0a88490637cd5e0090bfee7dc98c63721732[root@martin-host web]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
33ff624e19c3   redis:3.2.10   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds             redis[root@martin-host web]# netstat -tunlp | grep 6379
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      2570/redis-server * 
tcp6       0      0 :::6379                 :::*                    LISTEN      2570/redis-server * 

1.2 部署MySQL数据库

[root@martin-host web]# docker run -tid --name=web_db --hostname=web_db --restart=always --net=host -e MYSQL_ROOT_PASSWORD=admin mysql:5.7
4ba7f19a4e15ef11facd18e329796dc391c0d0ce1a144fe7f67380fad65ab043
[root@martin-host web]# 
[root@martin-host web]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS     NAMES
4ba7f19a4e15   mysql:5.7      "docker-entrypoint.s…"   4 seconds ago        Up 3 seconds                  web_db
33ff624e19c3   redis:3.2.10   "docker-entrypoint.s…"   About a minute ago   Up About a minute             redis[root@martin-host web]# docker cp shop_goods.sql web_db:/
Successfully copied 3.58kB to web_db:/
[root@martin-host web]# docker cp shop_member.sql web_db:/
Successfully copied 3.58kB to web_db:/
[root@martin-host web]# docker cp shop_seckill.sql web_db:/
Successfully copied 7.68kB to web_db:/
[root@martin-host web]# 
[root@martin-host web]# docker exec -ti web_db bash
root@web_db:/# 
root@web_db:/# mysql -uroot -padmin < /shop_goods.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
root@web_db:/# mysql -uroot -padmin < /shop_member.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
root@web_db:/# mysql -uroot -padmin < /shop_seckill.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
root@web_db:/# 
root@web_db:/# mysql -uroot -padmin
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.35 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| shop_goods         |
| shop_member        |
| shop_seckill       |
| sys                |
+--------------------+
7 rows in set (0.00 sec)mysql> 
mysql> grant all on *.* to 'root'@'%' identified by 'admin';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> exit
Bye
root@web_db:/# exit
exit

1.3 部署rabbitmq消息队列

[root@martin-host web]# docker run -tid --name=rabbitmq --hostname=rabbitmq --net=host rabbitmq:3-management 
d9e860cf2773cbf4c6462483fb5dabea600b00295f44f55d088f5797de0c8efa
[root@martin-host web]# 
[root@martin-host web]# docker ps -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS         PORTS     NAMES
d9e860cf2773   rabbitmq:3-management   "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds             rabbitmq
4ba7f19a4e15   mysql:5.7               "docker-entrypoint.s…"   4 minutes ago   Up 4 minutes             web_db
33ff624e19c3   redis:3.2.10            "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes             redis[root@martin-host ~]# docker exec -ti rabbitmq bashroot@rabbitmq:/# rabbitmqctl add_user liushao admin
Adding user "liushao" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.root@rabbitmq:/# rabbitmqctl set_permissions liushao ".*" ".*" ".*"
Setting permissions for user "liushao" in vhost "/" ...
root@rabbitmq:/# 

2、部署微服务框架

2.1 部署erueka 注册中心

负责注册所有服务的通信地址

[root@martin-host web]# cat eurekaDockerfile 
FROM adoptopenjdk/openjdk8:latestCOPY eureka-server-1.0-SNAPSHOT.jar /eureka-server.jarCMD ["java", "-jar", "/eureka-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t eureka-server:1.0 -f eurekaDockerfile ./ root@martin-host web]# docker run -tid --name=eureka-server --hostname=eureka-server --restart=always --net=host eureka-server:1.0 
c682585f005c0be0ffae1dba1232410f92045c0763de5393d1efaedd79a0bdb3[root@martin-host web]# docker logs eureka-server 
2024-07-19 02:40:53.881  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8761

2.2 部署config-server 配置中心

负责集中管理所有业务组件的配置文件、从远程的git服务器拉取配置文件

[root@martin-host web]# cat configDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY config-server-1.0-SNAPSHOT.jar /config-server.jarCMD ["java", "-jar", "/config-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t config-server:1.0 -f configDockerfile ./[root@martin-host web]# docker run -tid --name=config-server --hostname=config-server --net=host --restart=always config-server:1.0 [root@martin-host web]# docker logs config-server 
2024-07-19 02:49:37.965  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 9100

2.3 部署zuul-server 网关

负责集中接收处理请求、反向代理 、负载均衡

[root@martin-host web]# cat zuulDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY zuul-server-1.0-SNAPSHOT.jar /zuul-server.jarCMD ["java", "-jar", "/zuul-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t zuul-server:1.0 -f zuulDockerfile ./[root@martin-host web]# docker run -tid --name=zuul-server --hostname=zuul-server --net=host --restart=always zuul-server:1.0 [root@martin-host web]# docker logs zuul-server 
2024-07-19 02:56:57.602  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 9000

3、部署业务

3.1 部署会员服务

[root@martin-host web]# cat memberDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY member-server-1.0-SNAPSHOT.jar /member-server.jar CMD ["java", "-jar", "/member-server.jar"][root@martin-host web]# docker build -t member-server:1.0 -f memberDockerfile ./[root@martin-host web]# docker run -tid --name=member-server --hostname=localhost --net=host --restart=always member-server:1.0 2024-07-19 03:26:42.696  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8083

3.2 部署商品展示业务

[root@martin-host web]# cat goodDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY good-server-1.0-SNAPSHOT.jar /good-server.jarCMD ["java", "-jar", "/good-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t good-server:1.0 -f goodDockerfile ./[root@martin-host web]# docker run -tid --name=good-server --hostname=localhost --net=host --restart=always good-server:1.0 2024-07-19 03:29:49.555  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8084

3.3 部署秒杀业务

[root@martin-host web]# cat seckillDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY seckill-server-1.0-SNAPSHOT.jar /seckill-server.jarCMD ["java", "-jar", "/seckill-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t seckill-server:1.0 -f seckillDockerfile ./[root@martin-host web]# docker run -tid --name=seckill-server --hostname=localhost --net=host --restart=always seckill-server:1.0 2024-07-19 03:32:56.665  INFO 1 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Created new connection: rabbitConnectionFactory#1c6804cd:0/SimpleConnection@4fdfa676 [delegate=amqp://guest@192.168.183.10:5672/, localPort= 34446]
2024-07-19 03:32:56.851  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8085 (http) with context path ''
2024-07-19 03:32:56.853  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8085

3.4 部署web前端

[root@martin-host web]# cat frontendDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY frontend-server-0.0.1-SNAPSHOT.jar /frontend-server.jarCMD ["java", "-jar", "/frontend-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t frontend-server:1.0 -f frontendDockerfile ./[root@martin-host web]# docker run -tid --name=frontend-server --hostname=localhost --net=host --restart=always frontend-server:1.0 2024-07-19 03:36:03.029  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''

3.4 部署websocket, 实现http长连接

[root@martin-host web]# cat websocketDockerfile
FROM adoptopenjdk/openjdk8:latestCOPY websocket-server-0.0.1-SNAPSHOT.jar /websocket-server.jarCMD ["java", "-jar", "/websocket-server.jar"]
[root@martin-host web]# 
[root@martin-host web]# docker build -t websocket-server:1.0 -f websocketDockerfile ./
[+] Building 0.5s (7/7) FINISHED                                                                                       docker:default=> [internal] load build definition from websocketDockerfile                                                                    0.0s=> => transferring dockerfile: 193B                                                                                             0.0s=> [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s=> [internal] load .dockerignore                                                                                                0.0s=> => transferring context: 2B                                                                                                  0.0s=> [internal] load build context                                                                                                0.2s=> => transferring context: 21.84MB                                                                                             0.2s=> CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s=> [2/2] COPY websocket-server-0.0.1-SNAPSHOT.jar /websocket-server.jar                                                         0.2s=> exporting to image                                                                                                           0.1s=> => exporting layers                                                                                                          0.1s=> => writing image sha256:7d681a377f627c30765b92088008d4ac265f182be9ee93efa118400e5667482c                                     0.0s=> => naming to docker.io/library/websocket-server:1.0                                                                          0.0s
[root@martin-host web]# 
[root@martin-host web]# docker run -tid --name=websocket-server --hostname=localhost --net=host --restart=always websocket-server:1.0  
9fb88729fe38c44841a2691562deb47b428013150fcdc5974d8c06f43630e6792024-07-19 03:39:14.976  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8088 (http) with context path ''

相关文章:

4. docker镜像、Dockerfile

docker镜像、Dockerfile 一、docker镜像1、镜像介绍2、镜像核心技术 二、Dockerfile定制镜像1、Dockerfile使用流程1.1 编写Dockerfile1.2、构建镜像1.3 创建容器测试镜像定制操作 2、Dockerfile常用指令 三、部署springcloud微服务架构的商品秒杀项目1、部署项目需要的基础服务…...

智能水果保鲜度检测:基于YOLO和深度学习的完整实现

引言 水果新鲜程度直接影响其口感和营养价值。为了提高水果品质管理的效率和准确性&#xff0c;本文介绍了一种基于深度学习的水果新鲜程度检测系统。该系统包括用户界面&#xff0c;利用YOLO&#xff08;You Only Look Once&#xff09;v8/v7/v6/v5模型进行水果新鲜程度检测&…...

C#中implicit 关键字的使用:隐式转换操作符

在 C# 中,implicit 关键字用于定义隐式转换操作符。隐式转换操作符允许自动将一种数据类型转换为另一种类型,而无需显式地调用转换方法或进行类型转换。下面将详细介绍 implicit 关键字的定义和使用。 1. 隐式转换操作符 定义 隐式转换操作符可以定义在一个类或结构体中,…...

Laravel表单验证:自定义规则的艺术

Laravel表单验证&#xff1a;自定义规则的艺术 在Web应用开发中&#xff0c;表单验证是确保数据完整性和安全性的关键步骤。Laravel提供了一个强大且灵活的验证系统&#xff0c;允许开发者定义自定义验证规则&#xff0c;以满足特定的业务需求。本文将详细介绍如何在Laravel中…...

Linux中的环境变量

一、环境变量定义 一般是指在操作系统中用来指定操作系统运行环境的一些参数 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但 是照样可以链接成功&#xff0c;生成可执行程序&#xff0c…...

关于集成网络变压器的RJ45网口

集成网络变压器的RJ45网口是一种将网络变压器与RJ45接口集成在一起的网络连接解决方案。这种集成设计具有多项优势&#xff0c;使其在现代网络设备中得到广泛应用。 优势与特点 1. **空间节省**&#xff1a;集成设计减少了组件数量和连接线缆长度&#xff0c;有助于节省设备内…...

JMX 反序列化漏洞

前言 前段时间看到普元 EOS Platform 爆了这个洞&#xff0c;Apache James&#xff0c;Kafka-UI 都爆了这几个洞&#xff0c;所以决定系统来学习一下这个漏洞点。 JMX 基础 JMX 前置知识 JMX&#xff08;Java Management Extensions&#xff0c;即 Java 管理扩展&#xff0…...

【Qt】常用控件 Q widget的enabled属性,geometry属性

Qt是一个实现图形化程序的程序。为了便于我们开发&#xff0c;Qt为我们提供了许多“控件”。我们需要熟悉并掌握这些控件的使用。 一.什么是控件 控件是构成⼀个图形化界⾯的基本要素. 示例一&#xff1a; 像上述⽰例一中的,按钮,列表视图,树形视图,单⾏输⼊框,多⾏输⼊框,滚动…...

Unity3d开发google chrome的dinosaur游戏

游戏效果 游戏中&#xff1a; 游戏中止&#xff1a; 一、制作参考 如何制作游戏&#xff1f;【15分钟】教会你制作Unity小恐龙游戏&#xff01;新手15分钟内马上学会&#xff01;_ unity教学 _ 制作游戏 _ 游戏开发_哔哩哔哩_bilibili 二、图片资源 https://download.csdn.…...

【数据分享】2013-2022年我国省市县三级的逐日SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000——2022年的省市县三级的逐日PM2.5数据和2013-2022年的省市县三级的逐日CO数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享的是我国2013——2022年的省…...

【玩转C语言】第五讲--->数组-->一维和多维深度理解

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 引言&#xff1a; 大家好&#xff0c;我是坊钰&#xff0c;为了让大家深入了解C语言&#xff0c;我开创了【玩转C语言系列】&#xff0c;将为大家介绍C语言相关知识…...

Apache Flink 任务提交模式

Flink 任务提交模式 Flink可以基于多种模式部署&#xff1a;基于Standalone 部署模式&#xff0c;基于Yarn部署模式&#xff0c;基于Kubernetes部署模式以上不同集群部署模式下提交Flink任务会涉及申请资源&#xff0c;各角色交互过程&#xff0c;不同模式申请资源涉及到的角色…...

Ubuntu22.04安装OMNeT++

一、官网地址及安装指南 官网地址&#xff1a;OMNeT Discrete Event Simulator 官网安装指南&#xff08;V6.0.3&#xff09;&#xff1a;https://doc.omnetpp.org/omnetpp/InstallGuide.pdf 官网下载地址&#xff1a;OMNeT Downloads 旧版本下载地址&#xff1a;OMNeT Old…...

Matlab课程设计——手指静脉识别项目

手指静脉识别项目 项目方案设计介绍 本项目实现手指图像的处理和匹配算法&#xff0c;需要处理的数据是本人不同手指的图像&#xff0c;首先经过图像处理&#xff0c;使得指静脉的纹理增强凸显处理&#xff0c;然后将所有的这些图像进行相互间的匹配&#xff0c;检验类内和类…...

centos软件安装

安装方式 一、二进制安装 --解压即用&#xff0c;只针对特殊平台 --jdk tomcat 二、RPM&#xff1a;按照一定规范安装软件&#xff0c;无法安装依赖的文件 --mysql 三、yum&#xff1a;远程安装基于RPM&#xff0c;把依赖的文件安装上去&#xff0c;需要联网 四、源码安装 jdk安…...

力扣 217. 存在重复元素,389. 找不同,705. 设计哈希集合,3. 无重复字符的最长子串,139. 单词拆分

217. 存在重复元素 题目 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 AC代码 class Solution { public:bool containsDuplicate(vector<int>& nums) {// …...

嵌入式软件工作能力

1. 工作能力 技术能力强&#xff0c;并不代表工作能力 2. 流程把控 3. 项目管理 4. “找茬”能力 5. 文档输出能力...

景区导航导览系统:基于AR技术+VR技术的功能效益全面解析

在数字化时代背景下&#xff0c;游客对旅游体验的期望不断提升。游客们更倾向于使用手机作为旅行的贴身助手&#xff0c;不仅因为它能提供实时、精准的导航服务&#xff0c;更在于其融合AR&#xff08;增强现实&#xff09;、VR&#xff08;虚拟现实&#xff09;等前沿技术&…...

Mybatis-Plus代码生成器配置方法

Mybatis-Plus网址&#xff1a;https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8 第一步&#xff1a;引入依赖 <!-- 代码生成器 --> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId>…...

三主机部署HP Anyware Manager服务

一、序言 在部署拓扑和方案方面&#xff0c;HP Anyware Manager 非常灵活&#xff0c;可以部署在单个主机中&#xff0c;也可以部署在多个主机中&#xff0c;具体取决于组织的网络环境和运营要求。 二、单主机部署 2.1 描述 此部署配置是当 Anyware Manager 和 MongoDB 以及…...

Grafana :利用Explore方式实现多条件查询

背景 日志统一推送到Grafana上管理。所以&#xff0c;有了在Grafana上进行日志搜索的需求&#xff0c;而进行日志搜索通常需要多条件组合。 解决方案 通过Grafana的Explore的方式实现多条件查询。 直接看操作步骤&#xff1a; 在主页搜索框中输入“Explore” 进入这个界面…...

腾讯技术创作特训营 -- SUPERWINNIE -- AI重塑社交内容

目录 1 什么是AI社交内容 2 案例拆解 3 用LLM做爆文选题 4 用LLM出爆文脚本提示词 1 什么是AI社交内容 任何一个因素被AI取代都是AI社交内容 2 案例拆解 数字人 资讯素材 录屏产品的素材&#xff08;小红书测试AI产品&#xff09; 脚本 素材 剪辑 3 用LLM做爆文选题 &…...

AV1技术学习: Compound Prediction

一、双向 Compound Prediction AV1支持两个参考帧的预测通过多种复合模式线性组合。复合预测公式为 其中&#xff0c;权重m(x, y) is scaled by 64 以进行整数计算&#xff0c;R1(x, y)和R2(x, y)表示两个参考块中位于(x, y)的像素。P(x, y)将按比例缩小 1/64 以形成最终的预测…...

watch监听vue2与vue3的写法

watch的属性值 handler:回调函数, 即监听到变化时应该执行的函数&#xff0c;可以是单独的函数或带有 immediate 和 deep 属性的对象watch: {someProperty: function(newVal, oldVal) {// 处理逻辑}}deep: 其值是true或false, 当属性值是对象或数组时&#xff0c;深度观察会监…...

docker搭建普罗米修斯监控gpu

ip8的服务器监控ip110和ip111的服务器 被监控的服务器110和111只需要安装node-export和nvidia-container-toolkit 下载镜像包 docker pull prom/node-exporter docker pull prom/prometheus docker pull grafana/grafana新建目录 mkdir /opt/prometheus cd /opt/prometheus/…...

像 MvvmLight 一样使用 CommunityToolkit.Mvvm 工具包

文章目录 简介一、安装工具包二、实现步骤1.按照MvvmLight 的结构创建对应文件夹和文件2.编辑 ViewModelLocator3.引用全局资源二、使用详情1.属性2.命令3. 消息通知4. 完整程序代码展示运行结果简介 CommunityToolkit.Mvvm 包(又名 MVVM 工具包,以前称为 Microsoft.Toolkit…...

python入门课程Pro(2)--循环

循环 第1课 for循环的基本操作1.循环2.遍历3.for 循环遍历字典&#xff08;1&#xff09; 遍历字典的键(2)遍历字典的值(3)遍历字典的键和值 4.练习题&#xff08;1&#xff09;班级成绩单&#xff08;2&#xff09;最出名的城市&#xff08;3&#xff09;修改成绩&#xff08;…...

今日总结:雪花算法,拉取在线用户

雪花算法&#xff1a; public class SnowflakeIdGenerator {private final long epoch 1626804000000L; // 定义起始时间戳&#xff0c;这里设置为2021-07-21 00:00:00 UTCprivate final long workerIdBits 5L; // 机器ID所占的位数private final long sequenceBits 10L; /…...

前瞻断言与后瞻断言:JavaScript 正则表达式的秘密武器

JavaScript 中的前瞻断言&#xff08;lookahead&#xff09;和后瞻断言&#xff08;lookbehind&#xff09;相信用过的小伙伴就知道它的威力了&#xff0c;在一些特定的需求场景下&#xff0c;可以做到四两拨千斤的作用&#xff0c;今天让我们来盘点一下在 JavaScript 正则表达…...

昇思MindSpore学习总结十六 —— 基于MindSpore的GPT2文本摘要

1、mindnlp 版本要求 !pip install tokenizers0.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 该案例在 mindnlp 0.3.1 版本完成适配&#xff0c;如果发现案例跑不通&#xff0c;可以指定mindnlp版本&#xff0c;执行!pip install mindnlp0.3.1 !pip install mindnlp …...

东城企业网站开发/郑州百度公司地址

本文实例讲述了PHP标准类(stdclass)用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;php是内置标准类的(stdclass)$obj new stdclass();echo ;var_dump($obj);$obj->a 1;$obj->b 1;var_dump($obj);运行结果如下&#xff1a;object(stdClass)[1]object(std…...

网站开发项目源码/营销平台建设

参考链接&#xff1a; http://www.desktx.com/news/diannaojiqiao/4369.html 1、新建一个文本文档&#xff0c;将下面的代码复制进去&#xff1a; [Version] Signature"$Chicago$" [DefaultInstall] DelRegDeleteMe [DeleteMe] HKCU,"Software\Microsoft\Wind…...

做网站的小图标/百度竞价点击软件

》》下拉组件 1.组件结构&#xff1a; 2.index.js&#xff1a; 1 //index.js2 Component({3 /**4 * 组件的属性列表5 */6 properties: {7 propArray: {8 type: Array,9 } 10 }, 11 /** 12 * 组件的初始数据 13 */ 14 data: { 15 selec…...

免费的建设网站软件下载/提升关键词排名seo软件

方式1、 直接保存视频预览的数据帧 在预览方法中imgData数据就是视频帧 android默认的视频采集格式是NV21&#xff0c;&#xff08;属于YUV420&#xff09; 在onPreviewFrame中传进来的byte[] data即为NV21格式。 NV21 的存储格式是&#xff0c;以4 X 4 图片为例子 占用内…...

wordpress显示指定分类目录/宁波seo外包推广软件

前段时间组织优化我们的原生模块 API&#xff08;iOS、Android 模块封装成 JavaScript 接口&#xff09;&#xff0c;于是学习了几篇 JavaScript API 设计的文章&#xff0c;尽管是旧文&#xff0c;但受益匪浅&#xff0c;这里记录一下。 好的 API 设计&#xff1a;在自描述的同…...

制作网页心得体会/乐云seo

一、面向过程和面向对象面向过程&#xff1a;根据业务逻辑从上到下写代码。面向对象&#xff1a;将数据与函数绑定到一起&#xff0c;进行封装&#xff0c;这样能够更快速的开发程序&#xff0c;减少了重复代码的重写过程。二、类和对象1、类的概念面向对象编程的2个非常重要的…...