docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结

官方网站

官方网址:etcd

二进制包下载:Install | etcd

GitHub社区项目:etcd-io · GitHub

GitHub社区项目版本历史:Releases · etcd-io/etcd · GitHub

一、镜像下载

1、在线下载

在一台能连外网的linux上执行docker镜像拉取命令

docker pull etcd:3.5.18

2、离线包下载

两种方式:

方式一:

-)在一台能连外网的linux上安装docker执行第一步的命令下载镜像

-)导出

# 导出镜像到本地当前目录
docker save -o bitnami_etcd_3_5_18.tar etcd:3.5.18

方式二:

-)Window桌面程序:Docker Desktop

-)下载镜像

-)安装镜像导出插件(说明过程就复用了之前mysql的图)

-)将镜像文件保存到window本地(图略)

3、Community Edition | Docs

Install Etcd on Linux | Docs

官方的下载地址,k8s环境用不上,因为官方没有发布镜像(自行打镜像的除外)

二、安装

1、在线安装

见离线安装(只比离线安装少一步导入动作)

2、离线安装

-)导入镜像

docker load -i bitnami_etcd_3_5_18.tar

-)查看镜像

[docker@GZ***-PM153160 ~]$ docker images
REPOSITORY                                       TAG             IMAGE ID       CREATED         SIZE
bitnami/etcd                                     3.5.18          bdc73d3efea1   4 days ago      190MB

-)创建映射目录

创建redis配置文件目录、数据文件目录,并修改目录权限

sudo mkdir -p /opt/etcd/docker-etcd/conf
sudo mkdir -p /data1/etcd/docker-etcd/data
sudo mkdir -p /data1/etcd/docker-etcd/log
sudo chown -R docker.docker /opt/etcd
# 作者data1目录下全是docker用户程序数据,所以没有指定子目录
sudo chown -R docker.docker /data1
# sudo chown -R docker.docker /data1/etcd

-)启动容器

docker run -d \--name my-etcd-server5 \-v /data1/etcd-data:/data \-e "ETCD_ROOT_PASSWORD=iam***#T123" \-p 2379:2379 \-p 2380:2380 \-d bdc73d3efea1

这个命令做了以下几件事:

  • --name my-etcd-server5:给容器命名为my-etcd-server5

  • -d:让容器在后台运行。

  • -p 6380:6379:将容器的6379端口映射到宿主机的6380端口,这是Redis的服务端口。

  • -v 映射数据文件目录和日志文件目录,左边的是外部目录,右边的是容器目录

  •  -e "ETCD_ROOT_PASSWORD=iam***#T123"  环境变量指定密码

-)查看容器

[docker@GZ***-PM153160 ~]$ docker ps 
CONTAINER ID   IMAGE                                     COMMAND                  CREATED          STATUS          PORTS                                                                                                                                             NAMES
bc7bbe2026b6   bdc73d3efea1                              "/opt/bitnami/script…"   10 minutes ago   Up 10 minutes   0.0.0.0:12379->2379/tcp, [::]:12379->2379/tcp, 0.0.0.0:12380->2380/tcp, [::]:12380->2380/tcp                                                      ctc-etcd-server5

-)从容器内部拷贝配置文件

[docker@GZ***-PM153160 ~]$ docker cp db867a1bae9a:/etc/etcd/etcd.conf /opt/etcd/docker-redis/conf/etcd.conf 
Successfully copied 1.54kB to /opt/etcd/docker-etcd/conf/etcd.conf
[docker@GZ***-PM153160 ~]$ 

bitnami版(作者当前版本),一般作者不用这个,可作者写文章时下错了,不过不影响读者参考

[docker@GZ***-PM153160 ~]$ docker cp db867a1bae9a:/opt/bitnami/etcd/conf/etcd.conf /opt/etcd/docker-etcd/conf/etcd.conf 
Successfully copied 1.54kB to /opt/etcd/docker-etcd/conf/etcd.conf
[docker@GZ***-PM153160 ~]$ 

-)调整其他配置(可选)

vi /opt/etcd/docker-etcd/conf/etcd.conf

按需修改后,删除原容器,添加配置文件映射参数后重新创建容器

docker run -d \--name my-etcd-server5 \-v /data1/etcd-data:/data \-e "ETCD_ROOT_PASSWORD=iam***#T123" \-p 2379:2379 \-p 2380:2380 \-d bdc73d3efea1

-)重启容器

[docker@GZ***-PM153160 ~]$ docker restart bc7bbe2026b6
bc7bbe2026b6

三、ETCD配置详解

1、etcd成员相关的配置项

--name 'default'  为该成员指定一个易读的名称。--data-dir '${name}.etcd'  数据存储目录的路径。--wal-dir ''  用于存放专用WAL(Write-Ahead Log)的目录路径。--snapshot-count '100000'  触发快照到磁盘的已提交事务数量。--heartbeat-interval '100'  心跳间隔时间(毫秒)。--election-timeout '1000'  选举超时时间(毫秒)。详见调优文档。--initial-election-tick-advance 'true'  是否在启动时加速初始选举计时,从而加快选举速度。--listen-peer-urls 'http://localhost:2380'  用于监听对等节点流量的URL列表。--listen-client-urls 'http://localhost:2379'  用于监听客户端 gRPC 和 HTTP 流量的 URL 列表(当未指定 --listen-client-http-urls 时生效)。--listen-client-http-urls ''  仅用于 HTTP 客户端流量的 URL 列表。启用此标志会将 HTTP 服务从 --listen-client-urls 中移除。--max-snapshots '5'  保留的最大快照文件数量(0表示不限制)。--max-wals '5'  保留的最大WAL文件数量(0表示不限制)。--quota-backend-bytes '0'  当后端大小超过给定配额时触发警报(0表示使用默认低空间配额)。--backend-bbolt-freelist-type 'map'  指定Boltdb后端使用的freelist类型(支持 array 和 map 类型)。--backend-batch-interval ''  提交后端事务前的最大时间间隔。--backend-batch-limit '0'  提交后端事务前的最大操作数。--max-txn-ops '128'  每个事务允许的最大操作数。--max-request-bytes '1572864'  服务器可接受的客户端请求的最大字节数。--grpc-keepalive-min-time '5s'  客户端在发送ping请求前应等待的最短时间间隔。--grpc-keepalive-interval '2h'  服务器向客户端发送ping以检查连接是否存活的频率(0表示禁用)。--grpc-keepalive-timeout '20s'  在关闭无响应连接前的额外等待时间(0表示禁用)。--socket-reuse-port 'false'  启用后允许监听器设置SO_REUSEPORT选项,支持对已使用端口的重新绑定。--socket-reuse-address 'false'  启用后允许监听器设置SO_REUSEADDR选项,支持绑定处于TIME_WAIT状态的地址。

2、Etcd集群引导和发现配置参数

--initial-advertise-peer-urls 'http://localhost:2380'  向集群中其他成员宣传的该节点的对等节点URL列表。--initial-cluster 'default=http://localhost:2380'  引导时的初始集群配置。--initial-cluster-state 'new'  初始集群状态('new'表示新集群,'existing'表示已有集群)。--initial-cluster-token 'etcd-cluster'  引导期间用于etcd集群的初始集群令牌。  指定该令牌可防止在运行多个集群时出现意外的跨集群交互。--advertise-client-urls 'http://localhost:2379'  向外部公开宣传的该节点的客户端URL列表。  这些URL应可供与etcd集群通信的机器访问,etcd客户端库会解析这些URL以连接到集群。--discovery ''  用于集群引导的发现URL。--discovery-fallback 'proxy'  当发现服务失败时的预期行为('exit'或'proxy')。  'proxy'仅支持v2 API。--discovery-proxy ''  访问发现服务时使用的HTTP代理。--discovery-srv ''  用于引导集群的DNS SRV域。--discovery-srv-name ''  引导时查询的DNS SRV名称后缀。--strict-reconfig-check 'true'  拒绝可能导致法定人数丧失的重新配置请求。--pre-vote 'true'  启用Raft预投票算法,以防止隔离的节点重新加入集群时引发中断。--auto-compaction-retention '0'  自动压缩的保留时长。0表示禁用自动压缩。--auto-compaction-mode 'periodic'  解释'auto-compaction-retention'的模式,可选'periodic'或'revision'。  'periodic'表示基于时间的保留,默认单位为小时(如'5m'表示5分钟)。  'revision'表示基于修订号的保留。--enable-v2 'false'  接受etcd V2客户端请求。已被弃用,并将在v3.6中移除。--v2-deprecation 'not-yet'  v2存储的弃用阶段。允许选择更高的兼容模式。支持的值:  'not-yet'                // 如果v2存储有有效内容,发出警告(v3.5默认值)。  'write-only'             // 不允许自定义v2状态(计划在v3.6中默认启用)。  'write-only-drop-data'   // 自定义的v2状态将被删除!  'gone'                   // v2存储不再维护(计划在v3.7中成为默认值)。

3、Etcd安全和TLS配置

--cert-file ''  客户端服务器TLS证书文件的路径。--key-file ''  客户端服务器TLS密钥文件的路径。--client-cert-auth 'false'  启用客户端证书认证。  建议启用客户端证书认证,以防止未经认证的客户端攻击(例如CVE-2023-44487),特别是在将etcd作为公共服务运行时。--client-crl-file ''  客户端证书吊销列表文件的路径。--client-cert-allowed-hostname ''  客户端证书认证允许的TLS主机名。--trusted-ca-file ''  客户端服务器TLS受信任的CA证书文件路径。  设置此参数时,无论`--client-cert-auth`的值如何,都会自动启用客户端证书认证。--auto-tls 'false'  使用自动生成的证书进行客户端TLS认证。--peer-cert-file ''  对等节点服务器TLS证书文件的路径。--peer-key-file ''  对等节点服务器TLS密钥文件的路径。--peer-client-cert-auth 'false'  启用对等节点客户端证书认证。  建议启用对等节点证书认证,以防止未经认证的伪造对等节点攻击(例如CVE-2023-44487)。--peer-trusted-ca-file ''  对等节点服务器TLS受信任的CA文件路径。--peer-cert-allowed-cn ''  连接到对等端点时,客户端证书所需的CN(通用名称)。--peer-cert-allowed-hostname ''  对等认证中允许的TLS主机名。--peer-auto-tls 'false'  如果未提供`--peer-key-file`和`--peer-cert-file`,则使用自生成证书进行对等TLS认证。--self-signed-cert-validity '1'  自动生成的客户端和对等节点证书的有效期,单位为年,默认值为1。--peer-crl-file ''  对等节点证书吊销列表文件的路径。--cipher-suites ''  支持的TLS密码套件列表,客户端/服务器和对等节点之间使用(空值将由Go自动填充)。--cors '*'  CORS(跨域资源共享)允许的源列表,逗号分隔(空值或`*`表示允许所有源)。--host-whitelist '*'  如果服务器不安全,HTTP客户端请求中可接受的主机名(空值或`*`表示允许所有主机)。--tls-min-version 'TLS1.2'  etcd支持的最低TLS版本。--tls-max-version ''  etcd支持的最高TLS版本(空值将由Go自动填充)。

4、etcd认证相关参数

--auth-token 'simple'  指定v3认证的令牌类型及特定选项,特别适用于JWT。格式为"type,var1=val1,var2=val2,..."。  可选类型:'simple'或'jwt'。  可用变量:  - `sign-method`: 指定JWT的签名方法,可选值为 'ES256'、'ES384'、'ES512'、'HS256'、'HS384'、'HS512'、'RS256'、'RS384'、'RS512'、'PS256'、'PS384' 或 'PS512'。  - `pub-key`: 指定用于验证JWT的公钥路径。  - `priv-key`: 指定用于签署JWT的私钥路径。  - `ttl`: 指定JWT令牌的生存时间(TTL)。--bcrypt-cost 10  指定用于哈希认证密码的bcrypt算法的成本/强度。有效值为4到31之间的整数,值越高,计算成本越高,安全性越强。--auth-token-ttl 300  认证令牌的生存时间(TTL),单位为秒。

5、etcd性能监控与指标

--enable-pprof 'false'  是否启用通过HTTP服务器提供的运行时性能分析数据。  地址为客户端URL加上"/debug/pprof/"。--metrics 'basic'  设置导出指标的详细程度。  可选值:  - `basic`: 导出基本指标。  - `extensive`: 包括服务器端gRPC直方图指标在内的详细指标。--listen-metrics-urls ''  用于监听指标和健康检查端点的URL列表。

6、etcd日志配置

--logger 'zap'  当前仅支持使用'Zap'进行结构化日志记录。--log-outputs 'default'  指定日志输出目标。  - 可以使用'stdout'或'stderr'来跳过`journald`日志(即使在`systemd`下运行)。  - 也可以提供逗号分隔的输出目标列表。--log-level 'info'  配置日志级别。支持的级别包括:  - `debug`: 调试信息。  - `info`: 普通信息。  - `warn`: 警告信息。  - `error`: 错误信息。  - `panic`: 崩溃信息。  - `fatal`: 致命错误信息。--enable-log-rotation 'false'  是否启用日志轮转,仅适用于单个日志输出文件。--log-rotation-config-json '{"maxsize": 100, "maxage": 0, "maxbackups": 0, "localtime": false, "compress": false}'  配置日志轮转(启用时生效)。  - `maxsize`: 单个日志文件的最大大小(单位:MB)。  - `maxage`: 日志文件的最大保留天数(0表示不限制)。  - `maxbackups`: 最大备份数量(0表示不限制)。  - `localtime`: 是否使用本地时间。  - `compress`: 是否启用gzip压缩。

Etcd 启动重要参数汇总表

分类参数作用备注
节点配置--name设置节点名称,必须唯一。确保集群中节点识别准确。
--data-dir指定数据存储目录。用于持久化存储etcd数据。
集群配置--initial-advertise-peer-urls设置对等节点的广告URL。集群内节点间通信地址。
--listen-peer-urls设置对等节点的监听URL。监听集群内部通信流量。
--listen-client-urls设置客户端访问的监听URL。客户端连接etcd的入口。
--initial-cluster配置初始集群成员列表。启动新集群时必需。
--initial-cluster-state指定集群状态(newexisting)。新建或加入已有集群时使用。
--initial-cluster-token设置集群唯一标识符。防止跨集群的意外交互。
安全配置--cert-file / --key-file设置TLS证书和密钥文件。启用加密通信。
--client-cert-auth启用客户端证书认证。增强安全性,防止未经认证访问。
--trusted-ca-file设置受信任的CA证书路径。验证客户端和对等节点证书。
--peer-client-cert-auth启用对等节点证书认证。提高集群安全性。
--peer-trusted-ca-file设置对等节点的CA证书路径。对等通信的信任链验证。
性能调优--heartbeat-interval设置心跳间隔时间(毫秒)。影响集群同步速度和稳定性。
--election-timeout设置选举超时时间(毫秒)。影响Raft选举速度。
--snapshot-count设置触发快照的事务数。控制快照频率,平衡性能与存储。
--max-txn-ops设置每个事务允许的最大操作数。防止事务过大影响性能。
认证与访问控制--auth-token指定认证令牌类型。支持simplejwt类型。
--auth-token-ttl设置认证令牌的有效时间(秒)。控制令牌过期时间。
日志管理--logger设置日志记录方式。当前仅支持zap
--log-level设置日志级别。支持debuginfowarn等。
--log-outputs设置日志输出目标。可指定stdoutstderr或文件路径。
调试与监控--enable-pprof启用性能分析。通过/debug/pprof/访问性能数据。
--metrics设置导出指标的详细程度。支持basicextensive
说明:
  • 节点与集群配置 是确保集群正常启动和运行的核心,尤其在多节点部署时尤为重要。
  • 安全配置 则涉及到数据和通信的加密与认证,建议在生产环境中务必启用。
  • 性能调优 参数影响etcd的资源使用与集群稳定性,需要根据具体需求进行调整。
  • 日志与监控 有助于故障排查和性能优化。

四、常用/基本操作

1. 连接到etcd集群

  • --endpoints:指定要连接的etcd集群的端点地址。可以指定多个,用逗号分隔。
etcdctl --endpoints=127.0.0.1:2379,127.0.0.2:2379 get /
  • --cert-file, --key-file, --ca-file:用于TLS认证的证书文件、密钥文件和CA文件。
etcdctl --endpoints=https://127.0.0.1:2379 --cert-file=cert.pem --key-file=key.pem --ca-file=ca.pem get /

2. 基本操作

  • get:获取一个或多个键的值。
etcdctl get <key> [<range_end>]
  • put:设置或更新一个键值对。
etcdctl put <key> <value>
  • del:删除一个或多个键值对。
etcdctl del <key> [<range_end>]
  • watch:监视一个或多个键的变化。
etcdctl watch <key>

3. 高级操作

  • --prefix:与get、del等命令一起使用,操作以给定前缀开头的所有键。
etcdctl get --prefix /myapp/
  • --limit:限制返回的键值对数量。
etcdctl get --limit=10 /myapp/
  • --rev:指定要获取的特定版本的数据。
etcdctl get --rev=10 /myapp/config
  • --keys-only:只返回键,不返回值。
etcdctl get --keys-only /myapp/
  • --sort-by:按指定的字段排序返回结果(如key、version、create、mod)。
etcdctl get --sort-by=key /myapp/

4. 集群管理

  • member:管理集群成员。

  • list:列出所有集群成员。

etcdctl member list
  • add:添加新成员。
etcdctl member add <member_name>
  • remove:移除成员。
etcdctl member remove <member_id>
  • snapshot:创建etcd数据的快照。
etcdctl snapshot save snapshot.db

5. 其他有用选项

  • --debug:启用调试模式,提供更详细的输出。
etcdctl --debug get /myapp/config
  • --timeout:设置操作的超时时间(秒)。
etcdctl --timeout=5 get /myapp/config
  • --hex:以十六进制格式显示键和值。
etcdctl --hex get /myapp/config

五、遇到的问题总结

1、将镜像推到内网镜像仓库时报错

[zhao****@GZ***-PM153160 ~]$ docker push 10.130.***.106:30089/library/zookeeper:3.9.3
The push refers to repository [10.130.153.***:30089/library/zookeeper]
Get "https://10.130.153.***:30089/v2/": x509: cannot validate certificate for 10.130.153.*** because it doesn't contain any IP SANs

 解决:换成域名

[zhao***@GZ***-PM153160 ~]$ docker login harbor.***.com:30089
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /home/zhaozheng/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-storesLogin Succeeded

2、启动报failed to start member

etcdserver: start member f3e5d1ce6bfb3bd6 failed to start member hello on ID f3e5d1ce6bfb3bd6, the member ID is generated from URL and seems conflicting with other members, make sure the URL is unique and this is not a re-start script for removing member
报错问题解释:

这个错误通常发生在尝试以相同的URL重新启动一个已经在集群中的ETCD节点时。当你在集群中已经有了一个具有相同URL的成员时,再次尝试使用相同的URL初始化或启动一个成员会导致冲突。

解决方法:
  • 1、检查现有成员:首先,检查当前集群中的成员是否已经存在具有相同URL的成员。

  • 2、删除冲突的成员:如果存在冲突,你需要从集群中删除该成员。可以使用etcdctl工具来移除成员。例如:

# 首先确保etcdctl指向正确的etcd服务器
export ETCDCTL_API=3
etcdctl --endpoints=http://localhost:2379 member list
etcdctl --endpoints=http://localhost:2379 member remove <member-id>
  • 3、重新启动容器:在删除冲突成员后,重新启动你的ETCD容器。确保使用不同的URL或端口来避免未来的冲突。
docker run -d --name etcd-server \-p 2379:2379 -p 2381:2380 \  # 注意端口号的变化以避免冲突quay.io/coreos/etcd:latest etcd --name s1 --initial-advertise-peer-urls http://localhost:2381 --listen-peer-urls http://0.0.0.0:2381 --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://localhost:2379 --initial-cluster-token etcd-cluster-1 --initial-cluster s1=http://localhost:2381 --initial-cluster-state new

六、可能会用到的其他命令

-)创建卷

docker volume create etcd_data

-)验证卷

docker volume ls

-)使用卷

docker run --name some-redis -v etcd_data:/data -d etcd:tag

 这种docker卷作者没有用过(实际数据存储位置是docker默认数据目录,默认数据目录可以在docker配置文件中配置修改),有兴趣的可自行尝试~

如果喜欢我的文章,请帮我点赞,谢谢~  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索浮点数在内存中的存储(附带快速计算补码转十进制)

目录 一、浮点数在内存中的存储 1、常见的浮点数&#xff1a; 2、浮点数存储规则&#xff1a; 3、内存中无法精确存储&#xff1a; 4、移码与指数位E&#xff1a; 5、指数E的三种情况&#xff1a; 二、快速计算补码转十进制 1、第一种方法讨论&#xff1a; 2、第二种方…

第25周JavaSpringboot实战-电商项目 4.商品分类管理

商品分类模块开发笔记 模块功能概述 实现分类数据的 增删改查 功能核心难点&#xff1a; 分类的父子级目录结构递归实现多级分类查找列表展示顺序控制&#xff08;从父级向子级递归&#xff09; 接口说明 后台接口 1. 添加分类 请求地址: /admin/category/add 请求方法: …

【星云 Orbit-F4 开发板】03g. 按键玩法七:矩阵键盘单个触发

【星云 Orbit-F4 开发板】03g. 按键玩法七&#xff1a;矩阵键盘单个触发 引言 矩阵键盘是一种常见的输入设备&#xff0c;广泛应用于各种嵌入式系统中。通过矩阵键盘&#xff0c;用户可以通过按键输入字符或控制信号。本文将详细介绍如何使用STM32F407的GPIO引脚实现矩阵键盘的…

Milvus x DeepSeek 搭建低成本高精度 RAG 实战

为什么手握海量数据&#xff0c;却用不出真正的“智能”&#xff1f;要么 AI 模型学艺不精&#xff0c;答非所问&#xff1b;要么技术门槛太高&#xff0c;让普通开发者望而却步。现在&#xff0c;使用阿里云 Milvus 向量检索服务、DeepSeek 大模型和 PAI LangStudio 开发工具&…

每日一题——两数之和

两数之和 问题描述示例提示思路分析代码实现代码解析1. 哈希表结构体定义2. 初始化哈希表3. 释放哈希表内存4. 主函数 twoSum5. 返回结果复杂度分析 第二种解法代码功能概述代码详细注释1. 哈希表结构体定义2. 哈希表指针3. 查找函数4. 插入函数5. 两数之和函数 6. 主函数&…

2025年SCI1区TOP:真菌生长优化算法FGO,深度解析+性能实测

目录 1.摘要2.算法原理3.结果展示4.参考文献5.代码获取 1.摘要 本文提出了一种新型的自然启发元启发式算法——真菌生长优化算法&#xff08;FGO&#xff09;&#xff0c;灵感来源于真菌在自然界中的生长行为。真菌的生长行为包括菌丝生长、分枝和孢子萌发&#xff0c;菌丝生长…

穿越AI边界:深度集成DeepSeek API与云平台的实践之路

云边有个稻草人-CSDN博客 随着人工智能技术的日益发展&#xff0c;深度学习和自然语言处理&#xff08;NLP&#xff09;已经在很多领域得到了广泛的应用。DeepSeek作为一款领先的大型语言生成模型&#xff0c;凭借其强大的推理和生成能力&#xff0c;已经被越来越多的开发者和…

动态表头导出EasyExcel

在 Spring Boot 中结合 EasyExcel 实现动态表头导出&#xff08;无实体类&#xff0c;表头和字段&#xff08;前端传表名&#xff0c;字段值动态查询&#xff0c;返回List<Map<String,Object>>&#xff09;由前端传递&#xff09;可以通过以下步骤实现。以下是完整…

1 | 从零开始解密数据库:数据库基础概念

❤个人主页&#xff1a;折枝寄北的博客 ❤专栏位置&#xff1a;数据库专栏 目录 前言1. 数据&#xff08;data&#xff09;2. 数据库(DB)3. 数据库管理系统(DBMS)4. 数据库系统(DBS) 感谢您的阅读支持 前言 【前言】 在万物互联的数字时代&#xff0c;数据已成为驱动社会运转…

Web自动化之Selenium下Chrome与Edge的Webdriver常用Options参数

目录 引言 说明 Add_argument() 添加方式 常用参数 Add_experimental_option() 添加方式 常用方法 任务结束后仍然保持浏览器打开 禁用“Chrome 正受到自动测试软件的控制”提示 设置下载路径 禁用弹窗拦截 禁用图片加载 禁用 JavaScript 注意 引言 …

AI提示词的种类与适合的任务

以下是提示词的主要种类及其适用任务&#xff0c;基于大模型特性与最佳实践总结&#xff1a; 一、基础提示词 零样本提示&#xff08;Zero-shot Prompting&#xff09; 形式&#xff1a;直接输入任务指令&#xff0c;不提供示例&#xff08;如“翻译以下句子&#xff1a;Hello …

FTP 实验(ENSP模拟器实现)

目录 FTP 概述 FTP实验 FTP的报文交互 FTP 概述 FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是一种用于在网络上进行文件传输的标准协议。它允许用户在两台计算机之间上传和下载文件。 1、FTP采用客户端-服务器模型&#xff0c;客户端通过…

Windows前端开发IDE选型全攻略

Windows前端开发IDE选型全攻略 一、核心IDE对比矩阵 工具名称最新版本核心优势适用场景推荐指数引用来源VS Code2.3.5轻量级/海量插件/跨平台/Git深度集成全栈开发/中小型项目⭐⭐⭐⭐⭐14WebStorm2025.1智能提示/框架深度支持/企业级调试工具大型项目/专业前端团队⭐⭐⭐⭐47…

鸿蒙5.0实战案例:har和hsp的转换

往期推文全新看点&#xff08;文中附带全新鸿蒙5.0全栈学习笔录&#xff09; ✏️ 鸿蒙&#xff08;HarmonyOS&#xff09;北向开发知识点记录~ ✏️ 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…

简单易懂,解析Go语言中的struct结构体

目录 4. struct 结构体4.1 初始化4.2 内嵌字段4.3 可见性4.4 方法与函数4.4.1 区别4.4.2 闭包 4.5 Tag 字段标签4.5.1定义4.5.2 Tag规范4.5.3 Tag意义 4. struct 结构体 go的结构体类似于其他语言中的class&#xff0c;主要区别就是go的结构体没有继承这一概念&#xff0c;但可…

记录一下用docker克隆某授权制定ip的环境恢复

#首先还是要看日志根据问题去进行调整 java web的老项目配置文件一般是 bin启动里边的脚本 还有conf中的 xml配置文件 再或者就是classes中的配置文件,再或者就是lib中的jar包中的配置文件 1.安装docker 2.创建docker网络 docker network create --driver bridge --subnet…

SAP-ABAP:使用ST05(SQL Trace)追踪结构字段来源的步骤

ST05 是 SAP 提供的 SQL 跟踪工具&#xff0c;可以记录程序运行期间所有数据库操作&#xff08;如 SELECT、UPDATE、INSERT&#xff09;。通过分析跟踪结果&#xff0c;可以精准定位程序中结构字段对应的数据库表。 步骤1&#xff1a;激活ST05跟踪 事务码 ST05 → 点击 Activa…

【落羽的落羽 数据结构篇】树、二叉树

文章目录 一、树1. 树的概念和结构2. 树的相关术语 二、二叉树1. 概念与结构2. 满二叉树3. 完全二叉树4. 二叉树的性质5. 二叉树的存储结构 一、树 1. 树的概念和结构 之前我们学习了线性表&#xff0c;今天我们再来接触一种全新的数据结构——树。 树是一种非线性的数据结构…

blender bpy渲染禁用日志

效果有待测试&#xff1a; import bpyimport logging # 设置日志级别为ERROR&#xff0c;只有错误信息才会输出 logging.getLogger().setLevel(logging.ERROR) 这段代码会将日志级别设置为ERROR&#xff0c;只会显示错误信息&#xff0c;其他的日志&#xff08;如调试信息、…

CPU、MCU、MPU、SOC、DSP、ECU、GPU、FPGA傻傻分不清楚?一文讲清它们的区别

文章目录 前言一、定义与功能1、CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09;2、MCU&#xff08;Microcontroller Unit&#xff0c;微控制单元&#xff09;3、MPU&#xff08;Microprocessor Unit&#xff0c;微处理器&#xff09;4、SOC&#x…