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

【云原生】Docker中容器管理常用所有命令

1.docker 容器创建流程

 

2.容器运行本质

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建容器基本选项:--name:为容器命名
-i:交互式创建容器
-d:后台创建容器
-t:为容器分配伪终端

Docker 容器存在的意义就是为了运行容器中的应用,对外提供服务,所以启动容器的目的就是启动运行该容器中的应用。容器中的应用运行完毕后,容器就会自动终止。所以如果不想让容器启动后立即终止运行,则就需要使容器应用不能立即结束。通常采用的方式有两种,使应用处于与用户交互的状态或等待状态。

3.docker run

从镜像创建并运行一个新容器

格式:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

创建一个centos7.9镜像

[root@localhost ~]# docker run  -it --name centos7 centos:7.9.2009
[root@4c392a1a06d7 /]# 
#前台退出容器 ctrl+p+q
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE             COMMAND       CREATED          STATUS          PORTS     NAMES
4c392a1a06d7   centos:7.9.2009   "/bin/bash"   11 seconds ago   Up 10 seconds             centos7

前台退出容器快捷键 ctrl+p+q 容器在后台运行

4.docker exec

在正在运行的容器中执行命令

格式:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

选项:

--detach,-d:分离模式:在后台执行命令
--detach-keys:覆盖分离容器的键序列
--env -e:设置环境变量
--env-file:读写一个环境变量文件
--interactive,-i:保持STDIN打开,即使没有连接
--privileged:赋予命令扩展权限
--tty,-t:分配一个伪终端
--user,-u;用户名或UID(格式:< name| UID >[:<group|gid>])
--workdir,-w:容器内的工作目录

进入centos7容器中

[root@localhost ~]# docker exec -it -w /tmp  centos7 /bin/bash
[root@4c392a1a06d7 tmp]# pwd
/tmp
docker attach

将本地标准输入、输出和错误流附加到正在运行的容器

格式:

docker attach [OPTIONS] CONTAINER
docker exec 与 docker attach的区别?
  • docke exec会新建一个进程来访问容器进程,一般与-it选项联合使用,一般使用exit命令退出i并终止当前进程

  • docker attach不会新建进程,而是进入容器原有的进程,根据情况可以使用exit或者ctrl+p+q来进行退出容器

5.docker ps

列表容器

格式:

docker ps [OPTIONS]

选项:

-a,-all:显示所有容器(默认显示正在运行)
-f:根据提供的条件过滤输出
--latest,-l:显示最新创建的容器(包括所有状态)
--no-trunc:不要截断输出
--quiet,-q:只显示容器id
--size,-s:显示总文件大小

注意:docker ps不支持容器间的文件复制传递

6.docker top

显示容器的运行进程

格式:

docker top CONTAINER [ps OPTIONS]

7.docker 容器管理

启动
docker start [OPTIONS] CONTAINER [CONTAINER...]
停止
docker stop [OPTIONS] CONTAINER [CONTAINER...]
​
#强制停止
docker kill [OPTIONS] CONTAINER [CONTAINER...]
重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
暂停
docker pause CONTAINER [CONTAINER...]
取消暂停
docker unpause CONTAINER [CONTAINER...]

8.docker logs

获取容器日志

格式:

docker logs [OPTIONS] CONTAINER

选项:

--details:显示日志提供的额外详细信息 
--follow,-f:跟踪日志输出
--since:显示从时间戳开始的日志(例如2013-01-02T13:23:37Z)或相对日志(例如42m的42minutes)
--tail,-n:从日志末尾开始显示的行数
-t:显示日志时间戳
--until:在时间戳之前显示日志(例如2013-01-02T13:23:37Z)或相对显示(例如42m表示42minutes)

查看5秒之前的日志内容的前3行

[root@localhost ~]# docker logs --until 5s -n 3 nginx1
2023/07/12 10:04:58 [notice] 1#1: start worker process 32
2023/07/12 10:04:58 [notice] 1#1: start worker process 33
2023/07/12 10:04:58 [notice] 1#1: start worker process 34

9.docker cp

在容器和本地文件系统之间复制文件/文件夹

格式:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

选项:

-a:归档模式(复制所有uid/gid信息)
--quiet,-q:在复制过程中抑制进度输出。如果没有终端连接,则自动抑制进度输出

10.docker rm

移除一个或多个容器

格式:

docker rm [OPTIONS] CONTAINER [CONTAINER...]

选项:

--force,-f:强制移除正在运行的容器(使用SIGKILL)
--link,-l:移除指定的链接
--volumes,-v:移除与容器关联的匿名卷

11.docker commit

根据容器的更改创建一个新映像

格式:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

选项:

--author,-a:作者(如John Hannibal Smith <hannibal@a-team.com>)
--change,-c:在创建的镜像上应用Dockerfile指令
--message,-m:提交消息
--pause,-p:在提交期间暂停容器

创建一个centos7镜像,进行安装net-tools工具,然后进行打包成镜像

[root@localhost ~]#  docker run -itd --name centos centos:7.9.2009
1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5
[root@localhost ~]# docker exec -it centos /bin/bash
[root@1d1725c19cbe /]# yum -y install net-tools

进行打包

[root@localhost ~]# docker commit -a 'conquerbug@163.com' centos centos7:net-tools
sha256:0db0f584d14de19f7b377fa385ea43e7abcb57223f4a51c690c5b1628e882f70
[root@localhost ~]# docker images
REPOSITORY        TAG         IMAGE ID       CREATED         SIZE
centos7           net-tools   0db0f584d14d   6 seconds ago   418MB

然后,再基于当前镜像创建容器即可

12.docker导出/导入

docker export

将容器文件系统导出为tar归档文件

格式:

docker export [OPTIONS] CONTAINER

选项:

--output,-o:写入文件,而不是标准输出

将当前容器进行打包

[root@localhost ~]# docker export -o centos.tar centos
[root@localhost ~]# ls
centos.tar  Dockerfile  httpd-2.4.57.tar.gz  image.tar  my.cnf  original-ks.cfg
docker import

从压缩包中导入内容以创建文件系统映像

格式:

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

选项:

--change,-c:在创建的镜像上应用Dockerfile指令
--message,-m:为导入的图像设置提交消息
--platform:如果服务器支持多平台,请设置平台

将刚刚打包的容器进行还原

[root@localhost ~]# docker import centos.tar centos:test
sha256:6bc2adb97476b7b797a5a129c68afcba4ce05ab487812727c7049003f2a1049e
[root@localhost ~]# docker images
REPOSITORY        TAG         IMAGE ID       CREATED             SIZE
centos            test        6bc2adb97476   4 seconds ago       394MB

13.docker镜像/容器导出和导入的区别

export与save
  1. export作用于容器,save作用于镜像,但它们导出的结果都是为tar文件

  2. export一次只能对一个容器进行导出,save一次可以对多个镜像进行导出

  3. export只是对当前容器的文件系统快照进行导出,其会丢失原镜像的所有历史记录与元数据信息,save则是保存了原镜像的完整记录。

import与load
  1. import导入的是容器包,load加载的是镜像包,但最终都会恢复为镜像

  2. import恢复为的镜像已包含当前镜像一层,load恢复的镜像与原镜像的分层是完全相同的。

  3. import恢复的镜像就是新构建的镜像,与原镜像的imageID不同,load恢复的镜像与原镜像是同一个镜像,即imageID相同。

  4. import可以为导入的镜像指定从<repository>与<tag>,load加载的镜像不能指定<repository>与<tag>,与原镜像的相同

14.docker system

管理码头工人

1.docker system df

查看docker磁盘使用情况

格式:

docker system df [OPTIONS]

查看当前系统的docker磁盘使用情况

[root@localhost ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          9         2         1.504GB   1.435GB (95%)
Containers      2         1         213.9MB   213.9MB (100%)
Local Volumes   3         1         6.174MB   1.501MB (24%)
Build Cache     19        0         465.4MB   465.4MB

选项:

--format:使用自定义模板格式化输出:` table `:使用
docker system events [OPTIONS]
列标题以表格格式打印输出(默认)` table template `:使用给定的Go模板以表格格式打印输出` json `:使用给定的Go模板打印输出。有关使用模板格式化输出的更多信息,请参阅https://docs.docker.com/go/formatting/
​
--verbose,-v:显示空间使用的详细信息
2.docker system events

从服务器获取实时事件

格式:

docker system events [OPTIONS]

选项:

--filter,-f:根据提供的条件过滤输出
--format:使用给定的Go模板格式化输出
--since:显示自时间戳以来创建的所有事件
--until:流事件直到这个时间戳

打开两个终端

终端1

docker system events

终端2

[root@localhost ~]# docker stop test
test

查看终端1

[root@localhost ~]# docker system events
2023-07-15T17:04:37.334836848+08:00 container kill d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 (image=progrium/consul, name=great_easley, signal=15)
2023-07-15T17:04:41.428854481+08:00 network disconnect 462ad2de000e7aae527224ae21c66e15aac0e68ed45f96b65528e22e272851fa (container=d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290, name=bridge, type=bridge)
2023-07-15T17:04:41.430294298+08:00 volume unmount 0e452a14a460fdc4cfa0b2644761923359a263fe9abeca5fd1952927231ca0a7 (container=d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290, driver=local)
2023-07-15T17:04:41.430357838+08:00 container stop d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 (image=progrium/consul, name=great_easley)
3.docker system info

显示系统范围的信息

格式:

docker system info [OPTIONS]

与docker info相同

4.docker system prune

移除未使用的数据

格式:

docker system prune [OPTIONS]

选项:

--all,-a:删除所有未使用的图片,而不仅仅是悬挂的图片
--filter:提供过滤器值(例如label=<key>=<value>)
--force,-f:不提示确认
--volumes:删除卷

删除当前docker服务器所有没有使用的容器和空名空标签的镜像和没有使用的网络

[root@localhost ~]# docker system prune
WARNING! This will remove:- all stopped containers- all networks not used by at least one container- all dangling images- all dangling build cache
翻译:
警告!这将删除:
-所有停止的容器
—所有未被至少一个容器使用的网络
-所有悬挂的图像
-所有悬挂的构建缓存
你确定要继续吗?[y / N]
​
Are you sure you want to continue? [y/N] y
​
Deleted Containers:
1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5
d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290
​
Deleted Networks:
mynet1
mac_net1
​
Deleted build cache objects:
kutjwzwfdu28eldqlwo07uax7
0p5xfeo29k8ojauchfzf97kp0
a9puvqnewb05luw84rnanr2lh
y6mdonbx0pvs2trx7xd97738u
kj09ara8y3v3b6f50xtzie6lv
itk7ujtbdy4c2nirz68e2ivck
2a7d9sfcsnvl9owzau11l0jrq
oe2ukyl2cpguwqjm0kddg5tcx
4fom9yi9x5i125uvb96d29ext
tdwcwf0eze1lrvgherr4sxrs5
9hffla6qush85p7jhf89l56ek
​
Total reclaimed space: 679.3MB
[root@localhost ~]# docker images
REPOSITORY        TAG         IMAGE ID       CREATED         SIZE
centos            test        6bc2adb97476   25 hours ago    394MB
centos7           net-tools   0db0f584d14d   26 hours ago    418MB
busybox           latest      beae173ccac6   18 months ago   1.24MB
nginx             latest      605c77e624dd   18 months ago   141MB
voltest           latest      3af6982c965f   18 months ago   141MB
redis             latest      7614ae9453d1   19 months ago   113MB
mysql             5.7         c20987f18b13   19 months ago   448MB
centos            7.9.2009    eeb6ee3f44bd   22 months ago   204MB
progrium/consul   latest      09ea64205e55   8 years ago     69.4MB
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
462ad2de000e   bridge    bridge    local
c598e7da9321   host      host      local
36391f761fe6   none      null      local

15.docker create

创建一个新容器

它与run类似,但是它唯一的区别就是,create只创建容器不运行,但是docker run是创建容器并运行

格式:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...zz

相关文章:

【云原生】Docker中容器管理常用所有命令

1.docker 容器创建流程 2.容器运行本质 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建容器基本选项&#xff1a;--name&#xff1a;为容器命名 -i&#xff1a;交互式创建容器 -d&#xff1a;后台创建容器 -t&#xff1a;为容器分配伪终端 Docker 容器存在的意义就是为…...

Flutter video_player点击重新播放

视频播放完成之后&#xff0c;暂停视频&#xff0c;点击重新播放 import package:flutter/material.dart; import package:video_player/video_player.dart;class ListViewItemWidget extends StatefulWidget{overrideState createState() {return _ListViewItemWidgetState()…...

CSS3属性之text-overflow:ellipsis

语法&#xff1a; text-overflow:clip | ellipsis 默认值为clip 不显示省略标记 clip:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。 ellipsis:当对象内文本一处时显示省略标记(...)。 一、常见的单行文本溢出显示省略写法&#xff1a; text-overflow: ellipsis; …...

【深度学习_TensorFlow】梯度下降

写在前面 一直不太理解梯度下降算法是什么意思&#xff0c;今天我们就解开它神秘的面纱 写在中间 线性回归方程 如果要求出一条直线&#xff0c;我们只需知道直线上的两个不重合的点&#xff0c;就可以通过解方程组来求出直线 但是&#xff0c;如果我们选取的这两个点不在直…...

C++使用 auto 自动推断类型

C使用 auto 自动推断类型 在有些情况下&#xff0c; 根据赋给变量的初值&#xff0c; 很容易知道其类型。 例如&#xff0c; 如果将变量的初值设置成了 true&#xff0c;就可推断其类型为 bool。如果您使用的编译器支持 C11 和更高版本&#xff0c;可不显式地指定变量的类型&a…...

【前端面试手撕题】call、bind、new、freeze、浅拷贝

FED11 _call函数 描述 请补全JavaScript代码&#xff0c;要求实现Function.call函数的功能且该新函数命名为"_call"。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><style>/* 填写样式 */</style> </head…...

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评

今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频&#xff0c;现在充电头再以文章的形式呈现给大家&#xff0c;让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…...

实现5*5正方形网格x轴和y轴显示对应数值组件封装

实现5*5正方形网格x轴和y轴显示对应数值组件封装 需求&#xff1a;按5*5的正方形网格&#xff0c;根据目标数据的x和y轴值显示对应的文字&#xff0c;实现效果图如下&#xff1a;&#xff08;当前目标数值&#xff1a;x2&#xff0c;y2&#xff09; 代码如下&#xff1a; <…...

基于Matlab实现图像压缩技术(附上完整源码+图像+程序运行说明)

介绍 图像压缩是一种将图像数据压缩以减小文件大小的技术。在数字图像处理中&#xff0c;图像通常以像素阵列的形式表示。对于大型图像文件&#xff0c;传输和存储成本可能很高&#xff0c;因此图像压缩技术变得至关重要。在本文中&#xff0c;我们将介绍一种使用Matlab实现图…...

棒球联盟对于市场发展规划·棒球1号位

棒球联盟对于市场发展规划 1. 棒球联盟市场发展背景分析 在深入探讨棒球联盟市场发展背景之前&#xff0c;我们首先要明确&#xff0c;棒球&#xff0c;作为一种全球流行的体育项目&#xff0c;其在市场上的发展具有相当悠久的历史。棒球文化的起源可以追溯到上个世纪初&#…...

ansible控制主机和受控主机之间免密及提权案例

目录 案例描述 环境准备 案例一--免密远程控制主机 效果展示&#xff1a; 解决方案 1.添加主机 2.通过ssh-key生成密钥对 3.生成ssh-copy-id 4.验证 案例二-----免密普通用户提权 效果展示 解决方案 1.使用普通用户&#xff0c;与案例一 一样&#xff0c;进行发送密钥…...

flink1.17 eventWindow不要配置processTrigger

理论上可以eventtime processtime混用,但是下面代码测试发现bug,输入一条数据会一直输出. flink github无法提bug/问题. apache jira账户新建后竟然flink又需要一个账户,放弃 bug复现操作 idea运行代码后 往source kafka发送一条数据 a,1,1690304400000 可以看到无限输出…...

Python导出SqlServerl数据字典为excel

sql代码 SELECTtableName D.name ,tableIntroduce isnull(F.value, ),sort A.colorder,fieldName A.name,catogary B.name,bytes A.Length,lengths COLUMNPROPERTY(A.id, A.name, PRECISION),scales isnull(COLUMNPROPERTY(A.id, A.name, Scale), 0),isOrNotNull Cas…...

PB:DDE服务器函数

1、GetCommandDDE() 功 能:得到DDE客户应用发送的命令。 语 法:GetCommandDDE ( string ) 参 数:string:string类型的变量,用于保存DDE客户应用发送的命令。 返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果string参数的值为NULL, GetCommandDDE()…...

awk经典实战、正则表达式

目录 1.筛选给定时间范围内的日志 2.统计独立IP 案列 需求 代码 运行结果 3.根据某字段去重 案例 运行结果 4.正则表达式 1&#xff09;认识正则 2&#xff09;匹配字符 3&#xff09;匹配次数 4&#xff09;位置锚定&#xff1a;定位出现的位置 5&#xff09;分组…...

Python脚本-时间盲注

BlindBool_get import requests from optparse import OptionParser import threading#存放变量 DBName "" DBTables [] DBColumns [] DBData {} flag You are in #设置重连次数以及将连接改为短连接 #防止因为HTTP连接数过多导致的MAX retries exceeded with …...

面试总结-Redis篇章(十)——Redis哨兵模式、集群脑裂

Redis哨兵模式、集群脑裂 哨兵模式哨兵的作用服务状态监控 Redis集群&#xff08;哨兵模式&#xff09;脑裂解决办法 哨兵模式 为了保证Redis的高可用&#xff0c;Redis提供了哨兵模式 哨兵的作用 服务状态监控 Redis集群&#xff08;哨兵模式&#xff09;脑裂 假设由于网络原…...

el-table那些事

el-table那些事 获取el-table所有勾选的行数据 用于记录工作和日常学习遇到的坑&#xff0c;需求。 vue3element-plusts 获取el-table所有勾选的行数据 1、需要先声明一个ref变量&#xff0c;并赋值给el-table 2、通过el-table提供的getSelectionRows()函数获取选中的"行…...

kubernetes(一)

文章目录 1. k8s架构2. k8s集群搭建 1. k8s架构 2. k8s集群搭建...

计算机网络(6) --- https协议

计算机网络&#xff08;5&#xff09; --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm1001.2014.3001.5501 目录 1.HTTPS的出现 1.HTTPS协议介绍 2.补充概念 1.加密 1.解释 2.原因 3.加密方式 对称加…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量数据库中的关键作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架构简介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

【Java多线程从青铜到王者】单例设计模式(八)

wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本&#xff0c;sleep也是可以指定时间的&#xff0c;也就是说时间一到就会解除阻塞&#xff0c;继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒)&#xff0c;wait能被notify提前唤醒&#xf…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...

使用VMware克隆功能快速搭建集群

自己搭建的虚拟机&#xff0c;后续不管是学习java还是大数据&#xff0c;都需要集群&#xff0c;java需要分布式的微服务&#xff0c;大数据Hadoop的计算集群&#xff0c;如果从头开始搭建虚拟机会比较费时费力&#xff0c;这里分享一下如何使用克隆功能快速搭建一个集群 先把…...