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

C++GO语言微服务之Dockerfile docker-compose

目录

 

01 01-知识点概述

02 02-dockerfile复习

03 03-环境变量ENV的使用

04 04-WORKDIR的使用

05 05-USER和ARG的使用

06 06-ONBUILD的使用

07 07-dockerfile的缓存相关的参数

08 08-dockerfile的编写

09 09-测试-没成功-好像是网不行

01 10-docker-compose介绍

02 11-docker-compose的安装


 

01 01-知识点概述

Dockerfile
注意事项:
文件名首字母大写
存储Dockerfile的目录, 尽量是空目录
制作的镜像功能尽量单一
制作步骤要尽可能精简
1.1 Dockerfile 的构成
#
dockerfile中的注释使用: #
基础镜像信息
要制作的新的镜像, 基于那个镜像来制作的
通过 docker images 查看
FROM 镜像名
维护者信息
这个dockerfile是谁写的
MAINTAINTER 信息
镜像操作指令
基于原始进行进行的操作
容器启动指令
基于第三步得到了新镜像
新的镜像启动之后, 在容器中默认执行的指令
1.2 Dockerfile 基础指令
#
FROM
RUN mkdir /home/go/hello
RUN mkdir /home/go/world
RUN mkdir /home/go/hello && mkdir /home/go/world

02 02-dockerfile复习

1.1 Dockerfile 的构成
#
dockerfile中的注释使用: #
基础镜像信息
要制作的新的镜像, 基于那个镜像来制作的
通过 docker images 查看
FROM 镜像名
维护者信息
这个dockerfile是谁写的
MAINTAINTER 信息
镜像操作指令
基于原始进行进行的操作
容器启动指令
基于第三步得到了新镜像
新的镜像启动之后, 在容器中默认执行的指令
1.2 Dockerfile 基础指令
#
FROM
RUN mkdir /home/go/hello
RUN mkdir /home/go/world
RUN mkdir /home/go/hello && mkdir /home/go/world
RUN
COPY
ADD
EXPOSE
CMD
ENTRYPOINT
VOLUME

03 03-环境变量ENV的使用

1.2 Dockerfile 基础指令
#
FROM
RUN mkdir /home/go/hello
RUN mkdir /home/go/world
RUN mkdir /home/go/hello && mkdir /home/go/world
1
2
3
4
RUN
COPY
ADD
EXPOSE
1
2
3
4
CMD
ENTRYPOINT
VOLUME
1
2
3MAINTAINER
RUN
EXPOSE
1.3 Dockerfile 运行时指令
#
CMD
ENTRYPOINT
CMD ENTRYPOINT 综合使用
FROM 镜像名
FROM 镜像名:tag
# FROM必须要出现Dockerfile的第一行(除注释), 可以连续写多个FROM创建多个镜像.
# 如果指定的镜像名本地仓库没有, 会从远程仓库pull到本地, 远程仓库也没有 -> 报错.
dockerfile维护者信息
MAINTAINER 维护人员信息
# 构建镜像时候执行的shell命令, 如果命令有确认操作, 必须要加 -y
# 如果命令太长需要换行, 行末尾需要加 \
RUN shell命令
RUN mkdir /home/go/test -p
RUN ["mkdir", "/home/go/test", "-p"]
# 设置对外开放的端口
# 容器和外部环境是隔离的, 如何向从外部环境访问到容器内部, 需要容器开发端口
# 在使用的时候, 让宿主机端口和容器开放端口形成一个映射关系, 就可以访问了
# docker run -itd -p 8888:80
EXPOSE 80
# 新镜像已经被制作完毕, 启动新镜像-> 得到一个容器
# 容器启动后默认执行的命令
# 一个dockerfile文件只能指定一个CMD指令
# 如果指定多个, 只有最后一个有效
# 该CMD会被 docker run指定的shell命令覆盖
CMD shell命令
CMD ["shell命令", "命令参数1", "命令参数2"]

04 04-WORKDIR的使用

docker run -itd ubuntu
# 任何docker run设置的命令参数或者CMD指令的命令,都将作为ENTRYPOINT 指令的命令参数,追加到
ENTRYPOINT指令之后
ENTRYPOINT mkdir /home/go/a/b/c/d/e/f
CMD -p
mkdir /home/go/a/b/c/d/e/f -p ls

05 05-USER和ARG的使用

Dockerfile 文件编辑指令
#
ADD
COPY
VOLUME
1.5 Dockerfile 环境指令
#
ENV
环境变量:
系统级别
用户级别
环境变量名大写
docker run -itd ubuntu
# 任何docker run设置的命令参数或者CMD指令的命令,都将作为ENTRYPOINT 指令的命令参数,追加到
ENTRYPOINT指令之后
ENTRYPOINT mkdir /home/go/a/b/c/d/e/f
CMD -p
mkdir /home/go/a/b/c/d/e/f -p ls
1
2
3
4
5
# 将宿主机文件拷贝到容器目录中
# 如果宿主机文件是可识别的压缩包, 会进行解压缩 -> tar
ADD 宿主机文件 容器目录/文件
# 实例
ADD ["宿主机文件", "容器目录"]
- 宿主机文件一般放到Dockerfile对应的目录中
- 容器目录, 有可能存在, 有可能不存在
- 存在: 直接拷贝到容器目录
- 不存在: 先在容器中创建一个, 再拷贝
ADD ["a.txt", "/home/go/a.txt"]
- 第二个参数如果指定的是一个文件名
- 这个文件存在: 直接覆盖
- 不存在: 直接拷贝
# COPY 指令和ADD 指令功能和使用方式类似。只是COPY 指令不会做自动解压工作。
# 单纯复制文件场景,Docker 推荐使用COPY
COPY ["a.tar.gz", "/home/"]
1
2
3
# 数据卷容器创建, 挂载点为/backup
docker create -it --name contains -v /backup ubuntu bash
# 其他容器挂载到数据卷容器上
docker run -itd --volumes-from contains ubuntu bash
# VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点
# 通过VOLUME 指定挂载点目录是自动生成的。
VOLUME ["/data"]

06 06-ONBUILD的使用

Dockerfile 环境指令
#
ENV
环境变量:
系统级别
用户级别
环境变量名大写
docker run -itd ubuntu
# 任何docker run设置的命令参数或者CMD指令的命令,都将作为ENTRYPOINT 指令的命令参数,追加到
ENTRYPOINT指令之后
ENTRYPOINT mkdir /home/go/a/b/c/d/e/f
CMD -p
mkdir /home/go/a/b/c/d/e/f -p ls
1
2
3
4
5
# 将宿主机文件拷贝到容器目录中
# 如果宿主机文件是可识别的压缩包, 会进行解压缩 -> tar
ADD 宿主机文件 容器目录/文件
# 实例
ADD ["宿主机文件", "容器目录"]
- 宿主机文件一般放到Dockerfile对应的目录中
- 容器目录, 有可能存在, 有可能不存在
- 存在: 直接拷贝到容器目录
- 不存在: 先在容器中创建一个, 再拷贝
ADD ["a.txt", "/home/go/a.txt"]
- 第二个参数如果指定的是一个文件名
- 这个文件存在: 直接覆盖
- 不存在: 直接拷贝
# COPY 指令和ADD 指令功能和使用方式类似。只是COPY 指令不会做自动解压工作。
# 单纯复制文件场景,Docker 推荐使用COPY
COPY ["a.tar.gz", "/home/"]
1
2
3
# 数据卷容器创建, 挂载点为/backup
docker create -it --name contains -v /backup ubuntu bash
# 其他容器挂载到数据卷容器上
docker run -itd --volumes-from contains ubuntu bash
# VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点
# 通过VOLUME 指定挂载点目录是自动生成的。
VOLUME ["/data"]
9Linux: env
WORKDIR
USER
ARG
1.6 Dockerfile 触发器指令
#
# 设置环境变量,可以在RUN 之前使用,然后RUN 命令时调用,容器启动时这些环境变量都会被指定
ENV <key> <value> (一次设置一个环境变量)
ENV <key>=<value> ... (一次设置一个或多个环境变量)
ENV HELLO 12345
ENV HELLO=12345
ENV HELLO=12345 WORLD=12345 NIHAO=12345
ENV MYPATH=/a/b/c/d/e/f/g/h/....../z
mkdir /home/go $MYPATH
# 切换目录,为后续的RUN、CMD、ENTRYPOINT 指令配置工作目录。相当于cd
# 可以多次切换(相当于cd 命令),
# 也可以使用多个WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
WORKDIR /path/to/workdir
RUN a.sh
WORKDIR /path
WORKDIR /bin/abc
WORKDIR to # 相对路径 /bin/abc/to
WORKDIR workdir # /bin/abc/to/workdir
RUN pwd
/bin/abc/to/workdir
# 可执行程序 a.out
# 现在在家目录下
./a.out
# 工作目录进行了切换
WORKDIR /home/go/test/work
./a.out

07 07-dockerfile的缓存相关的参数

USER
ARG
1.6 Dockerfile 触发器指令
#
# 设置环境变量,可以在RUN 之前使用,然后RUN 命令时调用,容器启动时这些环境变量都会被指定
ENV <key> <value> (一次设置一个环境变量)
ENV <key>=<value> ... (一次设置一个或多个环境变量)
ENV HELLO 12345
ENV HELLO=12345
ENV HELLO=12345 WORLD=12345 NIHAO=12345
ENV MYPATH=/a/b/c/d/e/f/g/h/....../z
mkdir /home/go $MYPATH
# 切换目录,为后续的RUN、CMD、ENTRYPOINT 指令配置工作目录。相当于cd
# 可以多次切换(相当于cd 命令),
# 也可以使用多个WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
WORKDIR /path/to/workdir
RUN a.sh
WORKDIR /path
WORKDIR /bin/abc
WORKDIR to # 相对路径 /bin/abc/to
WORKDIR workdir # /bin/abc/to/workdir
RUN pwd
/bin/abc/to/workdir
# 可执行程序 a.out
# 现在在家目录下
./a.out
# 工作目录进行了切换
WORKDIR /home/go/test/work
./a.out
# 指定运行容器时的用户名和UID,后续的RUN 指令也会使用这里指定的用户。
# 如果不输入任何信息,表示默认使用root 用户
USER daemon
# /etc/passwd 文件的第一列就是用户名
# ARG 指定了一个变量在docker build 的时候使用,可以使用--build-arg <varname>=<value>来指定参数
的值。
ARG <name>[=<default value>]
#dockerfile写好之后
docker build -t 镜像名:镜像tag dockerfile的存储目录

08 08-dockerfile的编写

6 Dockerfile 触发器指令
#
# 设置环境变量,可以在RUN 之前使用,然后RUN 命令时调用,容器启动时这些环境变量都会被指定
ENV <key> <value> (一次设置一个环境变量)
ENV <key>=<value> ... (一次设置一个或多个环境变量)
ENV HELLO 12345
ENV HELLO=12345
ENV HELLO=12345 WORLD=12345 NIHAO=12345
ENV MYPATH=/a/b/c/d/e/f/g/h/....../z
mkdir /home/go $MYPATH
8
# 切换目录,为后续的RUN、CMD、ENTRYPOINT 指令配置工作目录。相当于cd
# 可以多次切换(相当于cd 命令),
# 也可以使用多个WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
WORKDIR /path/to/workdir
RUN a.sh
WORKDIR /path
WORKDIR /bin/abc
WORKDIR to # 相对路径 /bin/abc/to
WORKDIR workdir # /bin/abc/to/workdir
RUN pwd
/bin/abc/to/workdir
# 可执行程序 a.out
# 现在在家目录下
./a.out
# 工作目录进行了切换
WORKDIR /home/go/test/work
./a.out
1
# 指定运行容器时的用户名和UID,后续的RUN 指令也会使用这里指定的用户。
# 如果不输入任何信息,表示默认使用root 用户
USER daemon
# /etc/passwd 文件的第一列就是用户名
# ARG 指定了一个变量在docker build 的时候使用,可以使用--build-arg <varname>=<value>来指定参数
的值。
ARG <name>[=<default value>]
#dockerfile写好之后
docker build -t 镜像名:镜像tag dockerfile的存储目录
5
6ONBUILD
1.7 Dockerfile 构建缓存
#
1.8 通过 Dockerfile 构建 beego 镜像
#
2. docker-compose
Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker
Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用
docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用
多个容器进行开发的场景。
知道yaml文件格式
docker-compose工具工作的时候需要使用一个配置文件
默认的名字: docker-compose.yaml/yml
docker-compose中常用关键字
docker-compose操作命令
启动, 关闭, 查看
2.1 docker-compose 的安装
#
# 当一个镜像A被作为其他镜像B的基础镜像时,这个触发器才会被执行,
# 新镜像B在构建的时候,会插入触发器中的指令。
ONBUILD [command]
# 原始镜像 -> 纯净版
-> 修改 ONBUILD ["echo", "hello,linux"]
# 基于原始镜像制作新镜像 -> 镜像A
-> 启动镜像A -> 不会输出hello, linux
# 基于镜像A制作了镜像B
-> 启动镜像B -> 会输出 hello, linux

09 09-测试-没成功-好像是网不行

通过 Dockerfile 构建 beego 镜像
#
2. docker-compose
Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker
Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用
docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用
多个容器进行开发的场景。
知道yaml文件格式
docker-compose工具工作的时候需要使用一个配置文件
默认的名字: docker-compose.yaml/yml
docker-compose中常用关键字
docker-compose操作命令
启动, 关闭, 查看
2.1 docker-compose 的安装

01 10-docker-compose介绍

#安装依赖工具
sudo apt-get install python-pip -y
#安装编排工具
sudo pip install docker-compose
#查看编排工具版本
sudo docker-compose version
#查看命令帮助
docker-compose --help

02 11-docker-compose的安装

yaml 文件格式
#
YAML有以下基本规则: 1、大小写敏感 2、使用缩进表示层级关系 3、禁止使用tab缩进, 只能使用空格键
4、缩进长度没有限制(只能使用空格缩进),只要元素对齐就表示这些元素属于一个层级。 5、使用#表示注
释 6、字符串可以不用引号标注
"字符串"
'字符串'
字符串
123 -> 整数
123a

 

相关文章:

C++GO语言微服务之Dockerfile docker-compose

目录 01 01-知识点概述 02 02-dockerfile复习 03 03-环境变量ENV的使用 04 04-WORKDIR的使用 05 05-USER和ARG的使用 06 06-ONBUILD的使用 07 07-dockerfile的缓存相关的参数 08 08-dockerfile的编写 09 09-测试-没成功-好像是网不行 01 10-docker-compose介绍 02 11…...

【漫话机器学习系列】255.独立同分布(Independent and Identically Distributed,简称 IID)

深入理解独立同分布&#xff08;IID&#xff09;&#xff1a;机器学习与统计学的基石 在机器学习、深度学习、统计建模等领域&#xff0c;我们经常会遇到一个重要假设&#xff1a;独立同分布&#xff08;Independent and Identically Distributed&#xff0c;简称 IID&#xf…...

树莓派4 yolo 11l.pt性能优化后的版本

树莓派4 使用 Picamera2 拍摄图像&#xff0c;然后通过 YOLO11l.pt 进行目标检测&#xff0c;并在实时视频流中显示结果。但当前的代码在运行时可能会比较卡顿&#xff0c;主要原因包括&#xff1a; picam2.capture_array() 是一个较慢的操作&#xff1b;YOLO 推理可能耗时较长…...

AD22 快速定义PCB板框与DXF导入定义

自行定义板框 1. 初步评估&#xff1a;选中所有的器件&#xff0c;选中‘在矩形区域排列’ 将元件放好后&#xff0c;可以再将元件紧凑一下 2. 设置原点&#xff0c;并在下方选中机械一层 从原点出发&#xff0c;点击快捷键PL 画框线 3. 对线条长度取整&#xff0c;且最好是5…...

LInux系统文件与目录管理(二)

提示&#xff1a;第二部分对第一部分收尾 文章目录 常见的命令如下一、文件查看命令1. more命令2.less命令3.head命令4.tail命令5.nl命令&#xff08;了解&#xff09;6.创建目录命令7.创建文件命令>: 覆盖重定向>>: 追加重定向 8.touch命令9.echo命令10.文件或目录复…...

Redisson在业务处理中失败后的应对策略:保障分布式系统的可靠性

分布式系统中的数据一致性与高可用性一直是开发者面临的难题。作为Redis官方推荐的Java客户端&#xff0c;Redisson凭借其强大的分布式能力成为解决这些问题的利器。但在实际业务场景中&#xff0c;网络抖动、资源竞争、节点故障等问题可能导致操作失败&#xff0c;本文将深入探…...

windows下docker 运行 ros2humble arm64

目前要想运行arm版ros humble 目前最好的解决方案是使用qemu模拟。 1.拉取 ubuntu22.04 docker pull ubuntu:22.04 --platformarm642.安装小鱼ros2 humble wget http://fishros.com/install -O fishros && . fishros3.安装eqmu docker run --rm --privileged multia…...

表的增删改查 -- 2

目录 3、查询&#xff08;R&#xff09; 3.7、条件查询&#xff1a;where 3.8、分页查询&#xff1a;limit 3.9、查询总结 4、修改&#xff08;U&#xff09; 5、删除&#xff08;D&#xff09; 3、查询&#xff08;R&#xff09; 3.7、条件查询&#xff1a;where selec…...

Linux系统管理与编程20:Apache

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 做好网络和yum配置&#xff0c;用前面dns规划的www的IP进行。 #!/bin/bash #----------------------------------------------------------- # File Name: myWeb.sh # Version: 1.0 # …...

dfs 第一次加训 详解 下

目录 P1706 全排列问题 思路 B3618 寻找团伙 思路 B3621 枚举元组 思路 B3622 枚举子集&#xff08;递归实现指数型枚举&#xff09; 思路 B3623 枚举排列&#xff08;递归实现排列型枚举&#xff09; B3625 迷宫寻路 思路 P6183 [USACO10MAR] The Rock Game S 总结…...

vue2/3 中使用 @vue-office/docx 在网页中预览(docx、excel、pdf)文件

1. 安装依赖&#xff1a; #docx文档预览组件npm install vue-office/docx vue-demi0.14.6#excel文档预览组件npm install vue-office/excel vue-demi0.14.6#pdf文档预览组件npm install vue-office/pdf vue-demi0.14.6 vue2.6版本或以下还需要额外安装 vue/composition-api …...

Excel表的导入与导出

Excel表的导入与导出 根据excel表来建立所需的数据库表格 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.10.3</version></dependency><dependency><groupId>cn.hutool&…...

Redis 中常见的数据类型有哪些?

Redis 常见的数据类型包括 5 种基础类型&#xff08;String、Hash、List、Set、Zset&#xff09;和 3 种特殊类型&#xff08;HyperLogLog、Bitmap、Geospatial&#xff09;。以下是详细说明&#xff1a; 一、5 种基础数据类型 1. 字符串&#xff08;String&#xff09; 特点…...

消息队列如何保证消息可靠性(kafka以及RabbitMQ)

目录 RabbitMQ保证消息可靠性 生产者丢失消息 MQ丢失消息 消费端丢失了数据 Kakfa的消息可靠性 生产者的消息可靠性 Kakfa的消息可靠性 消费者的消息可靠性 RabbitMQ保证消息可靠性 生产者丢失消息 1.事务消息保证 生产者在发送消息之前&#xff0c;开启事务消息随后生…...

基于STM32、HAL库的BMP390L气压传感器 驱动程序设计

一、简介: BMP390L 是 Bosch Sensortec 生产的一款高精度气压传感器,专为需要精确测量气压和海拔高度的应用场景设计。BMP390L 具有更低的功耗、更高的精度和更快的响应速度。 二、硬件接口: BMP390L 引脚STM32L4XX 引脚说明VDD3.3V电源GNDGND地SCLPB6 (I2C1 SCL)I2C 时钟线…...

QMK键盘固件中LED锁定指示灯的配置与使用详解(实操部分+拓展)

QMK键盘固件中LED锁定指示灯的配置与使用详解 大家好!今天就跟大家一起探索QMK固件中LED锁定指示灯的配置与使用。无论你是键盘DIY新手还是老司机,相信这篇教程都能帮你解锁新技能! 一、基础配置:定义LED引脚 在QMK固件中配置LED锁定指示灯非常简单,只需在config.h文件…...

【日撸 Java 三百行】Day 12(顺序表(二))

目录 Day 12&#xff1a;顺序表&#xff08;二&#xff09; 一、顺序表的方法 1. 顺序查找 拓展&#xff1a;顺序查找中的哨兵思想 2. 插入 3. 删除 二、代码及测试 拓展&#xff1a; 小结 Day 12&#xff1a;顺序表&#xff08;二&#xff09; Task&#xff1a; 今天…...

Python爬虫实战:研究ajax异步渲染加密

一、引言 在当今数字化时代,数据已成为推动各行业发展的核心驱动力。网络爬虫作为一种高效的数据采集工具,能够从互联网上自动获取大量有价值的信息。然而,随着 Web 技术的不断发展,越来越多的网站采用了 AJAX(Asynchronous JavaScript and XML)异步渲染技术来提升用户体…...

Golang企业级商城高并发微服务实战

Golang企业级商城高并发微服务实战包含内容介绍&#xff1a; 从零开始讲了百万级单体高并发架构、千万级微服务架构&#xff0c;其中包含Rpc实现微服务、微服务的跨语言调用jsonrpc和protobuf、protobuf的安装、protobuf高级语法、protobuf结合Grpc实现微服务实战、微服务服务…...

从经典力扣题发掘DFS与记忆化搜索的本质 -从矩阵最长递增路径入手 一步步探究dfs思维优化与编程深度思考

1引子&#xff1a; DFS和递归法的一道经典例题矩阵最长递增子序列这个题写完之后脑袋产生了许多突发奇想&#xff1a; 1 第一个堆栈代码段这些底层C语言内部管理的工具它是怎么进行内存分配的&#xff1f;能不能深究&#xff1f; 2 第二个这个DFS和计划数组存储的思路到底抽象…...

我开源了一个免费在线工具!UIED Tools

UIED Tools - 免费在线工具集合 最近更新&#xff1a;修改了文档说明&#xff0c;优化了项目结构介绍 这是设计师转开发的第一个开源项目&#xff0c;bug和代码规范可能有些欠缺。 这是一个功能丰富的免费在线工具集合网站&#xff0c;集成了多种实用工具&#xff0c;包括 AI …...

geoserver发布arcgis瓦片地图服务(最新版本)

第一步&#xff1a;下载geoserver服务&#xff0c;进入bin目录启动 需要提前安装好JDK环境&#xff0c;1.8及以上版本 安装完成&#xff0c;页面访问端口&#xff0c;进入控制台界面,默认用户名密码admin/geoserver 第二步&#xff1a;下载地图 破解版全能电子地图下载器&…...

RN 鸿蒙混合开发实践(踩坑)

#三方框架# #React Native # 1 。环境配置&#xff1b; 安装 DevEco 开发工具&#xff1b; Node 版本16&#xff1b; hdc环境配置 hdc 是 OpenHarmony 为开发人员提供的用于调试的命令行工具&#xff0c;鸿蒙 React Native 工程使用 hdc 进行真机调试。hdc 工具通过 OpenHa…...

2025年阿里云ACP大数据分析师认证模拟试题(附答案解析)

这篇文章的内容是阿里云ACP大数据分析师认证考试的模拟试题。 所有模拟试题由AI自动生成&#xff0c;主要为了练习和巩固知识&#xff0c;并非所谓的 “题库”&#xff0c;考试中如果出现同样试题那真是纯属巧合。 1、ABC公司现有大量的图片和视频信息&#xff0c;以下哪种产…...

go语言实现IP归属地查询

效果: 实现代码main.go package mainimport ("encoding/json""fmt""io/ioutil""net/http""os" )type AreaData struct {Continent string json:"continent"Country string json:"country"ZipCode …...

Qt中解决UI线程阻塞导致弹窗无法显示的两种方法

在Qt应用程序开发中,我们经常会遇到这样的问题:当执行一个耗时操作时,整个界面会卡住,无法响应任何用户操作,甚至连一个简单的提示弹窗都无法正常显示。本文将介绍两种解决这个问题的方法,并通过完整的代码示例进行说明。 问题描述 先来看一个常见的错误示例: #inclu…...

位运算题目:黑板异或游戏

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;黑板异或游戏 出处&#xff1a;810. 黑板异或游戏 难度 8 级 题目描述 要求 给定一个整数数组 nums \texttt{nums} nums&#xff0c;表示写在黑板…...

LegoGPT,卡内基梅隆大学推出的乐高积木设计模型

LegoGPT 是由卡内基梅隆大学开发的一款创新性乐高积木设计模型&#xff0c;能够根据用户的文本提示生成结构稳固、可组装的乐高模型。该模型基于自回归语言模型和大规模乐高设计数据集进行训练&#xff0c;用户只需输入简单的文字描述&#xff0c;LegoGPT 就能逐步构建出物理稳…...

深度 |国产操作系统“破茧而出”:鸿蒙电脑填补自主生态空白

真心为国内能有像华为这样的技术型公司而自豪&#xff0c;一步步突围技术封锁。从这篇信息&#xff0c;可以给软件从业者一个启示&#xff1a;鸿蒙生态将是一个新的机会&#xff0c;值得好好把握。 鸿蒙电脑正成为中国电子信息技术新坐标。 超10亿鸿蒙生态设备、2800家鸿蒙智…...

【Python】Python常用数据类型判断方法详解

在Python编程中,准确判断数据类型是处理逻辑分支、类型转换和异常处理的基础。本文结合核心方法与实践场景,系统介绍type()、isinstance()等常用判断方式,并分析其适用性与最佳实践。 一、直接类型判断方法 type()函数 • 功能:返回对象的精确类型,适用于简单类型判断。 •…...

【美国将取消对能源之星支持 严重影响AI服务器】

1992年美国政府在共和党执政期间推出了影响深远的“能源之星”计划&#xff08;Energy Star&#xff09;&#xff0c;很多人可能并不知道能源执行计划&#xff0c;但这个蓝色星星标签估计大多数人都不会陌生。能源之星计划从推出以来不止得到各类消费电子制造商认可&#xff0c…...

《 C++ 点滴漫谈: 三十七 》左值?右值?完美转发?C++ 引用的真相超乎你想象!

摘要 本文全面系统地讲解了 C 中的引用机制&#xff0c;涵盖左值引用、右值引用、引用折叠、完美转发等核心概念&#xff0c;并深入探讨其底层实现原理及工程实践应用。通过详细的示例与对比&#xff0c;读者不仅能掌握引用的语法规则和使用技巧&#xff0c;还能理解引用在性能…...

【生产实践】Linux中/usr/bin、/usr/sbin与/usr/local的关系解析(2025年技术规范)

一、核心定位与功能划分 /usr/bin&#xff1a;用户级通用命令库 • 定位&#xff1a;存储系统预装的用户级可执行文件&#xff0c;这些命令通常由Linux发行版官方软件包管理器&#xff08;如APT、YUM&#xff09;安装&#xff0c;属于系统默认功能的一部分。 • 示例命令&#…...

数据可视化:用一张图讲好一个故事

在这个信息爆炸的时代&#xff0c;数据无处不在&#xff0c;但如何让复杂的数据变得通俗易懂&#xff1f;数据可视化就是一把神奇的钥匙。它不仅能将枯燥的数字转化为生动的图像&#xff0c;还能挖掘出数据背后隐藏的故事。然而&#xff0c;很多人对数据可视化的理解还停留在表…...

C++获取目录中所有图片路径的函数get_image_paths解析

本文将全面解析一个用于获取目录中图片路径的C函数get_image_paths&#xff0c;从基础语法到高级概念&#xff0c;涵盖C标准库、文件系统操作、异常处理等多个方面。 原始代码 std::vector<std::string> get_image_paths(const std::string& directory_path) {log_…...

物联网无线传感方向专业词汇解释

涡旋电磁波(VEMW)&#xff1a;一种具有轨道角动量的电磁波&#xff0c;其特性在于能够在传播过程中携带额外的相位信息&#xff0c;从而增加通信系统的容量和灵活性。波前&#xff1a;波动传播过程中&#xff0c;同一时刻振动相位相同的所有点构成的几何曲面&#xff0c;代表波…...

【C语言指针超详解(五)】--回调函数,qsort函数的理解和使用,qsort函数的模拟实现

目录 一.回调函数 1.1--回调函数的概念 1.2--回调函数改造计算器程序 二.qsort函数的理解和使用 2.1--qsort函数的理解 2.2--使用qsort函数排序整型数据 2.3--使用qsort函数排序结构数据 三.qsort函数的模拟实现 &#x1f525;个人主页&#xff1a;草莓熊Lotso的个人主…...

【Linux网络】————HTTP协议详解

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;Linux 创作时间 &#xff1a;2025年5月11日 1. HTTP 协议介绍 基本介绍&#xff1a; http协议全称&#xff1a;超文本传输协议&#xff0c;适用于从万维网服务器传输超文本到本地的传送协议。HTTP是一种应用层协议…...

使用WinSW工具将exe注册为window服务

下载工具WinSW(工具在GitHub上 打不开就需要魔法VPN) 文件准备 将以下文件放在同一个目录&#xff08;例如&#xff1a;WebSocketService 文件夹&#xff09;中&#xff1a; WebScoket.exe WinSW-x64.exe WebScoketService.xml ← 服务配置文件 install_service.bat ←…...

远程命令执行RCE概述

远程命令执行RCE诞生于1997年&#xff0c;比SQL注入早1年&#xff0c;据说当时的程序员发现在网站里可以随意的删除网页&#xff0c;就像删除本地文件一样简单&#xff0c;但是这种场景相对不多&#xff0c;因此没有SQL注入广泛&#xff0c;早期的web攻击像现在的护网一样&…...

在 .NET 8 开发的WinForms 程序中展示程序版本号的几种方式

前言 欢迎关注dotnet研习社&#xff0c;今天我们讨论一个Winform开发中的一个常见的需求内容“关于程序的版本号显示”。 在 WinForms 桌面应用程序开发中&#xff0c;向用户显示当前程序的版本号是一个常见的需求&#xff0c;尤其是在产品发布、更新提示或技术支持场景中尤为…...

[特殊字符] Spring Cloud 微服务项目中 common 模块依赖导致网关启动失败的排查与解决

在进行微服务开发时&#xff0c;我们通常会抽取一个 common 公共模块&#xff0c;封装一些通用配置类、工具类、拦截器、常用组件依赖等&#xff0c;供多个微服务共享使用。 但近期在实际开发中&#xff0c;出现了一个典型问题&#xff1a;在 Gateway 网关模块中引入 common 后…...

Java SpringMVC 和 MyBatis 整合关键配置详解

目录 一、数据源配置二、MyBatis 工厂配置三、Mapper 扫描配置四、SpringMVC 配置五、整合示例实体类Mapper 接口Mapper XML 文件Service 类控制器JSP 页面六、总结在 Java Web 开发中,SpringMVC 和 MyBatis 是两个常用框架。SpringMVC 负责 Web 层的请求处理和视图渲染,MyBa…...

24.(vue3.x+vite)引入组件并动态挂载(mount)

示例截图 组件代码: <template><div><div>{{message }}</div>...

Linux 软件包|服务管理

rpm 指令备注rpm -qa查看已安装软件&#xff0c;可以结合grep过滤查找rpm -e firefox卸载firefoxrpm -ivh firefox-115.12.0-1.el7.centos.i686.rpm安装gcc&#xff08;只能离线安装&#xff09; yum 能够从指定的服务器自动下载 RPM 包并且安装 指令备注yum list列出所有可…...

前端上传el-upload、原生input本地文件pdf格式(纯前端预览本地文件不走后端接口)

前端实现本地文件上传与预览&#xff08;PDF格式展示&#xff09;不走后端接口 实现步骤 第一步&#xff1a;文件选择 使用前端原生input上传本地文件&#xff0c;或者是el-upload组件实现文件选择功能&#xff0c;核心在于文件渲染处理。&#xff08;input只不过可以自定义样…...

TestNG接口自动化

第一章、 Rest assured接口测试框架 一、概述 接口自动化的框架&#xff0c;主要是用来做接口自动化测试&#xff0c;返回的报文都是JSON 语法比较简单&#xff0c;只需要掌握常用的方法 用例运行的速度非常快 断言的机制 Json 封装相关方法&#xff0c;jsonpath&#xff0c;x…...

Parasoft C++Test软件单元测试_实例讲解(指针类型的处理)

系列文章目录 Parasoft C++Test软件静态分析:操作指南(编码规范、质量度量)、常见问题及处理 Parasoft C++Test软件单元测试:操作指南、实例讲解、常见问题及处理 Parasoft C++Test软件集成测试:操作指南、实例讲解、常见问题及处理 进阶扩展:自动生成静态分析文档、自动…...

ngx_http_keyval_module动态键值管理

一、模块安装与验证 检查模块是否可用 nginx -V 2>&1 | grep --color -o ngx_http_keyval_module如果看到 ngx_http_keyval_module&#xff0c;说明模块已编译进 NGINX。 若未找到&#xff0c;请联系你的 NGINX 供应商&#xff0c;获取商业版或重新编译并启用该模块&am…...

面试篇:Spring MVC

基础概念 什么是Spring MVC&#xff1f; Spring MVC 是 Spring Framework 提供的一个基于 Servlet 的 Web 框架&#xff0c;属于 MVC&#xff08;Model-View-Controller&#xff09;架构的一种实现。它通过 DispatcherServlet 作为前端控制器&#xff0c;对请求进行分发和调度…...