Docker Portainer使用

news2025/1/18 14:01:00

Portainer是什么

Docker Portainer是一个轻量级的 Web UI 管理界面,可以用来管理Docker环境。它提供了一个直观的控制台,用户可以通过它来管理Docker主机、容器、网络、卷等Docker资源。

Portainer的主要功能和特点包括:

  1. 容器管理:可以查看、启动、停止、删除容器,以及查看容器日志和统计信息。

  2. 镜像管理:可以查看、创建、部署镜像,以及查看镜像层级信息。

  3. 网络管理:可以查看、创建、删除网络。

  4. 卷管理:可以查看、创建、删除数据卷。

  5. 访问控制:支持基于用户和团队的访问控制。

  6. 监控和分析:提供容器、镜像、网络等的监控和分析功能。

  7. 服务编排:支持通过可视化界面编排Docker Compose应用。

  8. 多主机管理:可以管理部署在多个Docker主机上的资源。

总的来说, Portainer 是一个非常好用的 Docker 管理工具,能够大大简化Docker环境的管理和运维工作。对于不熟悉命令行的用户来说,Portainer 提供了一个友好的图形化界面,可以更方便地管理Docker资源。

Portainer的官方网站地址是

https://www.portainer.io/

安装Portainer

注意,最新的v26版本的Docker,在安装protainer后会有些许问题,比如进入容器控制台页面会出错,这里建议降低版本,比如docker25.0.5版本

1.下载汉化

下载地址如下,linux下载tar.gz文件

https://github.com/eysp/public/releases/tag/public

上传到linux服务器的目录中,并解压:

[root@localhost portainer]# tar -xzf public-public.tar.gz 
[root@localhost portainer]# 

解压后多了一个public-punlic的文件夹:

image-20240520203938289

2.拉取并运行

使用下面的命令安装portainer,如果本地没有会自动拉取镜像

docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always 
-v /var/run/docker.sock:/var/run/docker.sock 
-v portainer_data:/data 
-v /wzy/portainer/public-public:/public 
portainer/portainer-ce
  • docker run: 这个命令用于启动一个新的 Docker 容器。
  • -d: 这个参数指定容器以 “detached” 模式运行,也就是在后台运行。
  • -p 8000:8000 -p 9000:9000: 这个参数将容器的 8000 和 9000 端口映射到宿主机的对应端口上,这样我们就可以通过宿主机访问容器内的服务。
  • --name portainer: 给这个容器起名为 “portainer”。
  • --restart=always: 这个参数指定只要 Docker 启动,这个容器就自动重启。
  • -v /var/run/docker.sock:/var/run/docker.sock: 这个参数将宿主机的 Docker 套接字文件挂载到容器内部,这样 Portainer 就可以管理宿主机上的 Docker 服务。
  • -v portainer_data:/data: 这个参数创建了一个名为 “portainer_data” 的数据卷,并挂载到容器的 /data 目录。这样可以保存 Portainer 的配置和数据。
  • -v /wzy/portainer/public-public:/public :将解压的汉化包目录挂载到Portainer容器的/public目录。
  • portainer/portainer-ce: 这是 Portainer 的 Docker 镜像名称,告诉 Docker 使用这个镜像来创建容器。

注意,docker portainer有两个版本:portainer/portainerportainer/portainer-ce:

  • portainer/portainer是早期版本,已不再更新
  • portainer/portainer-ce是新版本,使用新版本

运行

[root@localhost ~]# docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /wzy/portainer/public-public:/public portainer/portainer-ce
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete 
49d59ee0881a: Pull complete 
a2300fd28637: Pull complete 
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
32d9f2b4d36f04a0984afbc2171a5e26876d39dd8429906760e2b92c3e31ac16

docker ps查看运行的容器

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED          STATUS          PORTS                                                                                  NAMES
32d9f2b4d36f   portainer/portainer   "/portainer"   20 seconds ago   Up 18 seconds   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer

3.验证登录

登录管理界面

使用ip:9000即可,这里的192.168.0.106是我的虚拟机,初次登陆时需要设置一个admin账号的密码,在admin下方输入8位密码创建用户,输入密码后点击创建用户即可 (下方的允许匿名我也勾选上了):

image-20240521200202612

在下一步环境中选择本地连接即可:

image-20240521200342483

然后会进入如下界面:

image-20240521200416014

点击local进入查看容器详情:

image-20240521200450961

image-20240521200510697

上面页面展示的对应如下命令

[root@localhost ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          3         3         901MB     0B (0%)
Containers      3         3         141B      0B (0%)
Local Volumes   1         1         69.07kB   0B (0%)
Build Cache     0         0         0B        0B
[root@localhost ~]# 



界面操作

1.启动

启动已停止的mysql容器,勾选后点击启动:

image-20240520212942325

可以看到由红色的stop变为绿色的running:

image-20240520213015635

去虚拟机查看

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND                   CREATED          STATUS              PORTS                                                                                  NAMES
32d9f2b4d36f   portainer/portainer   "/portainer"              17 minutes ago   Up 17 minutes       0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer
2d9e86240ee2   mysql:latest          "docker-entrypoint.s…"   47 hours ago     Up About a minute   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   wzy-mysql-1

2.查看日志

点击文档标志:

image-20240520213231412

会进入如下页面,可以设置日志显示的行数并下载:

image-20240520213309386

3.查看容器的详细信息

点击如下的圆圈i图标:

image-20240520213644449

进入如下页面,展示容器的配置参数等:

image-20240520213733339

4.查看监控信息

点击统计图标:

image-20240520213521591

进入如下界面,显示各项占用:

image-20240520213437561

5.执行容器命令

点击如下的大于号下划线图标:

image-20240521200716245

在如下页面点击连接:

image-20240521200810363

进入命令执行页面:

image-20240521200839592

6.添加新容器

点击添加容器按钮

image-20240522191437656

进入如下页面填写相关参数,这里以安装nginx为例,然后点击部署容器:

我这里80端口被占用,使用了81,可以用lsof -i :80查看linux 80端口是否被占用

image-20240522192242942

如果想做其他更多设置可以在高级设置中进行,这里就不做设置了:

image-20240522191830962

如果不报错,结果如下:

image-20240522192317305

访问

image-20240522192551450



编排方式安装监控

1.编排配置

Docker-Compose的使用参考:

https://blog.csdn.net/onePlus5T/article/details/139103477

结合本专栏前面的文章Docker-Compose的使用,利用之前的微服务,然后把portainer相关放在了最下面

services:
  #自定义的服务名,必须小写
  eureka7001:
  #指定dockerfile来构建镜像并运行实例,context用来指定Dockerfile所在的目录
    build:
      context: /wzy/cloud-images/eureka
      dockerfile: Dockerfile
    #image: eureka_docker:1.0 #如果有现成的镜像,可以在这里指定,直接用来运行容器,使用此项要注释掉build及其内容
    #container_name: eureka01 指定容器的名字,如果不指定,会由docker自动生成
    ports:
      - "7001:7001"
    #挂载容器卷  
    volumes:
      - /wzy/eurekaService:/data 
    #指定使用的网络,所有服务的网络一致,即可以使用服务名通信忽略ip地址  
    networks:
      - wzy_net
  
  #自定义的服务名,必须小写
  payment8001:
    build:
      context: /wzy/cloud-images/pay8001
      dockerfile: Dockerfile  
    #image: payment01_docker:1.0
    #container_name: payment01
    ports:
      - "8001:8001"
    volumes:
      - /wzy/paymentMysqlService:/data 
    networks:
      - wzy_net
     #指定本服务依赖的服务,会等依赖的服务运行后在运行本服务 
    depends_on:
      - eureka7001	
      - mysql    
      
  #自定义的服务名,必须小写    
  payment8002:
    build:
      context: /wzy/cloud-images/pay8002
      dockerfile: Dockerfile  
    #image: payment02_docker:1.0
    #container_name: payment02
    ports:
      - "8002:8002"
    volumes:
      - /wzy/paymentRedisService:/data 
    networks:
      - wzy_net
    depends_on:
      - eureka7001
      - redis  
      
  #自定义的服务名,必须小写,也可以叫别的,springboot服务可以在yaml中将redis的ip换成这个名字    
  redis:
    image: redis:6.2.6
    ports:
      - "6379:6379"
    volumes:
      - /wzy/redis/redis.conf:/etc/redis/redis.conf
      - /wzy/redis/data:/data 
    networks:
      - wzy_net
    #运行指令  
    command: redis-server /etc/redis/redis.conf   
  
  #自定义的服务名,必须小写,也可以叫别的,springboot服务可以在yaml中将redis的ip换成这个名字     
  mysql:
    image: mysql:latest
    #环境参数配置
    environment:
      #注意这里的密码要和微服务连接mysql的配置对应上
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'NO'
      MYSQL_DATABASE: 'mybatis-plus'
      MYSQL_USER: 'wzy'
      MYSQL_PASSWORD: '123456'
    ports:
      - "3306:3306"
    volumes: 
      - /wzy/mysql/log:/var/log/mysql
      - /wzy/mysql/data:/var/lib/mysql
      - /wzy/mysql/conf:/etc/mysql/conf.d
    networks:
      - wzy_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
    
  #portainer监控服务
  portainer:
    image: portainer/portainer-ce
    ports:
      - 8000:8000
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock #挂载 Docker 套接字,以便 Portainer 可以管理 Docker 容器
      - portainer_data:/data  # 数据创建持久化存储卷
      - /wzy/portainer/public-public:/public
    restart: always  #确保 Portainer 容器在 Docker 主机重启后自动启动
    networks:
      - wzy_net	 
      
#定义 portainer_data 持久化存储卷。
volumes:
  portainer_data:      

#创建网络
networks:
  wzy_net:    

2.运行编排

运行编排文件检查命令:docker-compose config -q,无输出则证明yml格式正确。

再执行编排:docker-compose -f /wzy/docker-compose.yml up -d

[root@localhost wzy]# docker-compose config -q
[root@localhost wzy]# docker-compose -f /wzy/docker-compose.yml up -d
[+] Running 4/4
 ✔ portainer Pulled                                                              20.2s 
   ✔ 0ea73420e2bb Pull complete                                                   0.8s 
   ✔ c367f59be2e1 Pull complete                                                   0.8s 
   ✔ b71b88d796e2 Pull complete                                                  18.9s 
[+] Building 103.5s (20/20) FINISHED                                    docker:default
 => [eureka7001 internal] load build definition from Dockerfile                   0.1s
 => => transferring dockerfile: 579B                                              0.0s
 => [payment8002 internal] load metadata for docker.io/library/java:8            16.3s
 => [eureka7001 internal] load .dockerignore                                      0.0s
 => => transferring context: 2B                                                   0.0s
 => [eureka7001 internal] load build context                                      0.7s
 => => transferring context: 48.86MB                                              0.7s
 => CACHED [payment8002 1/3] FROM docker.io/library/java:8@sha256:c1ff613e8ba25  77.1s
 => => resolve docker.io/library/java:8@sha256:c1ff613e8ba25833d2e1940da0940c382  0.0s
 => => sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742 4.73kB / 4.73kB  0.0s
 => => sha256:5040bd2983909aa8896b9932438c3f1479d25ae837a5f622 51.36MB / 51.36MB  5.5s
 => => sha256:76610ec20bf5892e24cebd4153c7668284aa1d1151b7c3b 42.50MB / 42.50MB  11.0s
 => => sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d18 2.00kB / 2.00kB  0.0s
 => => sha256:fce5728aad85a763fe3c419db16885eb6f7a670a42824ea6 18.54MB / 18.54MB  9.3s
 => => sha256:60170fec2151d2108ed1420625c51138434ba4e0223d30 593.15kB / 593.15kB  6.4s
 => => extracting sha256:5040bd2983909aa8896b9932438c3f1479d25ae837a5f6220242a2  13.4s
 => => sha256:e98f73de8f0d2ef292f58b004d67bc6e9ee779dcfaff7ebb396464 214B / 214B  6.7s
 => => sha256:11f7af24ed9cf47597dd6cf9963bb3e9109c963f0135e869a9e9b4 242B / 242B  7.1s
 => => sha256:49e2d6393f32abb1de7c9395c04c822ceb2287383d5a9 130.10MB / 130.10MB  22.3s
 => => sha256:bb9cdec9c7f337940f7d872274353b66e118412cbfd433 289.05kB / 289.05kB  9.8s
 => => extracting sha256:fce5728aad85a763fe3c419db16885eb6f7a670a42824ea618414b8  2.8s
 => => extracting sha256:76610ec20bf5892e24cebd4153c7668284aa1d1151b7c3b0c7d50c  18.9s
 => => extracting sha256:60170fec2151d2108ed1420625c51138434ba4e0223d3023353d3f3  0.4s
 => => extracting sha256:e98f73de8f0d2ef292f58b004d67bc6e9ee779dcfaff7ebb3964649  0.0s
 => => extracting sha256:11f7af24ed9cf47597dd6cf9963bb3e9109c963f0135e869a9e9b49  0.0s
 => => extracting sha256:49e2d6393f32abb1de7c9395c04c822ceb2287383d5a90998f7bd8  34.1s
 => => extracting sha256:bb9cdec9c7f337940f7d872274353b66e118412cbfd433c711361bc  0.1s
 => [eureka7001 2/3] ADD cloud-eureka-server-1.0-SNAPSHOT.jar wzy_eureka.jar      1.1s
 => [eureka7001 3/3] RUN bash -c 'touch /wzy_eureka.jar'                          1.2s
 => [eureka7001] exporting to image                                               0.2s
 => => exporting layers                                                           0.2s
 => => writing image sha256:131a3a890a4752e6ee52f37241e34d93e8a7452e68612d1768ec  0.0s
 => => naming to docker.io/library/wzy-eureka7001                                 0.0s
 => [payment8002 internal] load build definition from Dockerfile                  0.0s
 => => transferring dockerfile: 606B                                              0.0s
 => [payment8001 internal] load build definition from Dockerfile                  0.0s
 => => transferring dockerfile: 606B                                              0.0s
 => [payment8001 internal] load .dockerignore                                     0.0s
 => => transferring context: 2B                                                   0.0s
 => [payment8002 internal] load .dockerignore                                     0.1s
 => => transferring context: 2B                                                   0.0s
 => [payment8001 internal] load build context                                     1.3s
 => => transferring context: 66.18MB                                              1.2s
 => [payment8002 internal] load build context                                     1.1s
 => => transferring context: 60.94MB                                              1.0s
 => [payment8002 2/3] ADD cloud-provider-payment8002-1.0-SNAPSHOT.jar wzy_paymen  2.0s
 => [payment8001 2/3] ADD cloud-provider-payment8001-1.0-SNAPSHOT.jar wzy_paymen  1.9s
 => [payment8002 3/3] RUN bash -c 'touch /wzy_payment8002.jar'                    3.5s
 => [payment8001 3/3] RUN bash -c 'touch /wzy_payment8001.jar'                    3.5s
 => [payment8001] exporting to image                                              0.3s
 => => exporting layers                                                           0.3s
 => => writing image sha256:231e68f5fc55027ea54ec28db5e2aff53804494641dfe8160ec3  0.0s
 => => naming to docker.io/library/wzy-payment8001                                0.0s
 => [payment8002] exporting to image                                              0.3s
 => => exporting layers                                                           0.3s
 => => writing image sha256:13313f5be823f61526bb2b53b7b019545783f52e8d8cdda4bc43  0.0s
 => => naming to docker.io/library/wzy-payment8002                                0.0s
[+] Running 6/8
 ✔ Network wzy_wzy_net          Created                                           1.0s 
 ✔ Volume "wzy_portainer_data"  Created                                           0.0s 
 ✔ Container wzy-portainer-1    Started                                           1.6s 
 ✔ Container wzy-eureka7001-1   Started                                           1.3s 
 ✔ Container wzy-mysql-1        Started                                           1.3s 
 ✔ Container wzy-redis-1        Started                                           1.1s 
 ✔ Container wzy-payment8002-1  Started                                           0.9s 
 ✔ Container wzy-payment8001-1  Started                                           0.9s 

如上即为成功,然后访问portainer,看到所有容器均已启动运行:

image-20240521203757962

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

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

相关文章

跳过无限debugger实战——替换和条件断点实战

网址:Scrape | Movie 打卡开发者工具: debugger代码及含义 setInterval((function() {debugger ;console.log("debugger")} function()是要执行的函数。interval是每次执行之间的时间间隔,以毫秒为单位。 你可以用想要的时间间隔…

用C语言把一棵普通二叉树安排得明明白白

1. 树的相关术语 结点的度:一个结点含有的子树的个数称为该结点的度; 如上图:A的为6 叶结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等结点为叶结点 非终端结点或分支结点:度不…

linux与windows脚本格式必须转换,linux只有LF

如果windows下的脚本在linux下直接执行,则会造成无穷的错误。 在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符. Dos和windows: 采用回车换行CR/LF表示下一行. UNIX/Linux : 采用换行符LF表示下一行. MAC OS : 采用回车…

Git提交和配置命令

一、提交代码到仓库 在软件开发中,版本控制是一个至关重要的环节。而Git作为目前最流行的版本控制系统之一,为我们提供了便捷高效的代码管理和协作工具。在日常开发中,我们经常需要将本地代码提交到远程仓库,以便于团队协作和版本…

c++笔记3

优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。优先队列是一种按照优先级决定出队顺序的数据结构,优先队列中的每个元素被赋予级别,队首元素的优先级最高。 例如:4入队&#xff0c…

142.栈和队列:用栈实现队列(力扣)

题目描述 代码解决 class MyQueue { public:stack<int> stIn; // 输入栈&#xff0c;用于push操作stack<int> stOut; // 输出栈&#xff0c;用于pop和peek操作MyQueue() {}void push(int x) {stIn.push(x); // 将元素压入输入栈}int pop() {// 如果输出栈为空&…

如何*永久*禁用edge打开PDF文件?

要永久禁用Microsoft Edge打开PDF文件&#xff0c;您可以按照以下步骤进行操作&#xff1a; 打开文件资源管理器并找到任意一个PDF文件。 右键单击该文件并选择“属性”。 在“属性”对话框中&#xff0c;单击“更改”按钮旁边的“打开方式”。 在“打开方式”对话框中&…

键盘盲打是练出来的

键盘盲打是练出来的&#xff0c;那该如何练习呢&#xff1f;很简单&#xff0c;看着屏幕提示跟着练。屏幕上哪里有提示呢&#xff1f;请看我的截屏&#xff1a; 截屏下方有8个带字母的方块按钮&#xff0c;这个就是提示&#xff0c;也就是我们常说的8个基准键位&#xff0c;我…

vscode打造舒适的python开发环境

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 背景 突然想写一些python小脚本&#xff0c;提升我的mac使用体验和日常效率提升…

新媒体运营十大能力,让品牌闻达天下!

" 现在新媒体蓬勃发展&#xff0c;很多品牌都有新媒体运营这个岗位。新媒体运营好的话&#xff0c;可以提高公司品牌曝光、影响力。那新媒体运营具备什么能力&#xff0c;才能让品牌知名度如虎添翼呢&#xff1f;" 信息收集能力 在移动互联网时代&#xff0c;信息的…

vscode插件-03 PHP

PHP Intelephense 如果php在远程计算机上&#xff0c;要把插件安装在远程&#xff0c;而不是本地。 这个插件&#xff0c;要求php版本大于7&#xff0c;且设置环境变量&#xff08;好像不一定要设置&#xff09;。 设置里面搜索php.executablePath&#xff0c;打开setting.js…

音视频安卓主板记录仪手持终端定制开发_基于MT6762平台解决方案

音视频安卓主板采用了基于MT6762高性能处理器芯片的设计&#xff0c;其中包括4个主频高达2.0GHz的Cortex-A53核心和4个主频1.5GHz的Cortex-A53高效聚焦核心&#xff0c;可提供无比流畅的体验。搭载Android 12操作系统&#xff0c;系统版本进行了全新的优化&#xff0c;进一步确…

TCP Spurious Retransmission

TCP虚假重传是网络中可能存在丢包问题的一个指标&#xff0c;但并不意味着一定存在丢包。虚假重传指的是当TCP发送方错误地认为原始数据包已丢失时&#xff0c;会不必要地进行重传&#xff0c;而实际上原始数据包已成功到达目的地。 虚假重传可能由多种因素引起&#xff0c;例…

编译报错:undefined reference to `std::__cxx11::basic_string 或者@GLIBCXX_3.4.21

出现错误起因&#xff1a; 编译环境&#xff0c;gcc从4.8.5版本升级到9.3.0版本。项目引用客户的SDK库&#xff08;库是gcc7.2.0版本编译的&#xff09;。用gcc7.2.0版本编译正常。 错误信息&#xff1a; 排查错误&#xff1a; 1.网上搜索了undefined reference to std::__cx…

网络架构与IP技术:4K/IP演播室制作的关键支撑

随着科技的不断发展&#xff0c;广播电视行业也在不断迭代更新&#xff0c;其中4K/IP演播室技术的应用成了一个引人注目的焦点。4K超高清技术和IP网络技术的结合&#xff0c;不仅提升了节目制作的画质和效果&#xff0c;还为节目制作带来了更高的效率和灵活性。那么4K超高清技术…

基于windows通过kind部署轻量级便携式k8s集群

感谢老师的视频教程&#xff1a; 基于windows通过kind部署轻量级便携式k8s集群 wsl windows下的linux wsl --set-default-version 2 wsl --help wsl --list --online wsl --install -d Ubuntu wsl -l -v &#xff08;看看版本是不是2&#xff0c;否则docker那边识别不到&…

【时间复杂度和空间复杂度之间的故事】

【时间复杂度和空间复杂度之间的故事】 一.前言 二.时间复杂度定义时间复杂度的计算规则习题 三.空间复杂度定义计算方法习题空间复杂度 O(1)空间复杂度 O(n) 本文主要讲解关于时间复杂度与空间复杂度 &#x1f600;&#x1f603;&#x1f601;&#x1f601;&#x1f607;&…

鸿蒙ArkUI-X跨语言调用说明:平台差异化【Android、ios动态化】

动态化介绍 简介 ArkUI-X支持动态化&#xff0c;使用者可以根据自己需要动态发布跨平台内容&#xff0c;从而使跨平台部分和宿主应用进行解耦。动态化能力支持如下两个典型场景&#xff1a; 框架动态化&#xff1a;指ArkUI跨平台开发框架本身可以做到动态下发&#xff0c;即…

webpack优化构建体积示例-压缩图片:

不同的图片格式有不同的特点和用途&#xff0c;它们也需要不同的压缩算法和技术&#xff0c;也为了保证能在各个浏览器环境下能正常加载显示&#xff0c;所以需要用到多个插件 在使用imagemin-webpack-plugin来配置图片压缩时&#xff0c;你需要确保已经安装了该插件以及它可能…

GBDT调参--贝叶斯调参

随机抽特征和随机抽样本 n_estimators 是控制森林中树木的数量&#xff0c;即基评估器的数量。这个参数对随机森林模型的精确性影响是单调的&#xff0c;n_estimators越 大&#xff0c;模型的效果往往越好。但是相应的&#xff0c;任何模型都有决策边 n_estimators达到一定的程…