Docker最新超详细版教程通俗易懂(基础版)

news2024/9/25 3:19:39

Docker概述

  1. 概念:容器虚拟化技术,系统平滑移植,解决了运⾏环境和配置问题的软件容

器,⽅便做持续集成并有助于整体发布的容器虚拟化技术

  1. 意义:Docker的出现使得Docker得以打破过去程序即应⽤的观念,透过镜像将

作业系统核⼼除外,运作应⽤程序所需要的系统环境,由下⽽上打包,达到应

⽤程序跨平台间的⽆缝接轨运作

  1. ⽬标:Docker的主要⽬标就是通过对应⽤组件的封装、分发、部署、运⾏等⽣

命周期的管理,使⽤户的APP及其运⾏环境能够做到"⼀次镜像,处处运⾏",

只需要⼀次配置好环境,换到别的机⼦上就可以⼀键部署好,⼤⼤简化了操

作。

  1. ⾯试题:容器与虚拟机⽐较

a. 传统虚拟机技术

虚拟机就是带环境安装的⼀种解决⽅案,它可以在⼀种操作系统⾥⾯运⾏另⼀
种操作系统,⽐如在Window10系统⾥⾯运⾏Linux系统CentOS7。应⽤程序对此
毫⽆感知,因为虚拟机看上去跟真实系统⼀模⼀样,⽽对于底层系统来说,虚拟机
就是⼀个普通⽂件,不需要了就删除,对其他部分毫⽆影响。这类虚拟机完美的运
⾏了另⼀套系统,能够使应⽤程序、操作系统和硬件三者之间的逻辑不变。
虚拟机的缺点:1.资源占⽤多 2.冗余步骤多3.启动慢

b. 容器虚拟化技术

Linux容器是与系统其他部分隔离开的⼀系列进程,从另⼀个镜像运⾏,并由该
镜像提供⽀持进程所需的全部⽂件,容器提供的镜像包含了应⽤的所有依赖性项,
因⽽在从开发到测试再到⽣产的整个过程中,都具有可移植性和⼀致性
Linux容器不是模拟⼀个完整的操作系统⽽是对进程进⾏隔离。有了容器就可以
将软件运⾏所需的所有资源打包到⼀个隔离的容器中。容器与虚拟机不同,不需要捆绑⼀整套操作系统,只需要软件⼯作所悟的库资源和设置,系统因此⽽变得⾼效轻量并保证部署在任何环境中的软件都能始终如⼀地运⾏。
Docker容器是在操作系统层⾯上实现虚拟化,直接复⽤本地主机的操作系统,
⽽传统虚拟机则是在硬件层⾯实现虚拟化。与传统的虚拟机相⽐,Docker优势体现在启动速度快、占⽤体积⼩。

Docker安装

  1. docker官⽹:http://docker.com

  2. Docker Hub官⽹:https://hub.docker.com/

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo systemctl start docker
ps - ef|grep docker
  1. 安装步骤

a. 确定你是centOS7及以上版本

cat /etc/redhat-release

b. 卸载旧版本

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

c. yum安装gcc相关

yum -y install gcc
yum -y install gcc-c++

d. 安装需要的软件包

yum install -y yum-utils

e. 设置stable镜像仓库 – 不要⽤官⽹的镜像仓库,那个是国外的,⽤国内的镜像仓库速度⽐较快

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

f. 更新yum软件包索引

yum makecache fast

g. 安装DOCKER CE

yum -y install docker-ce docker-ce-cli containerd.io

h. 启动docker

systemctl start docker

i. 测试

yum -y install gcc
yum -y install gcc-c++

j. 卸载

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
  1. 阿⾥云镜像加速

直接打开⽹址,点击控制台,选择容器镜像服务,选择镜像⼯具,获取镜像加速器地址,粘贴脚本直接执⾏。

**https://promotion.aliyun.com/ntms/act/kubernetes.html

Docker基本组成

  1. 三要素:镜像文件、容器实例、仓库
  2. 镜像文件,image文件生成的容器实例,本身也是一个文件,称为镜像文件
  3. 容器实例,一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
  4. 仓库就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。
  5. 镜像文件:Docker镜像就是一个只读的模板,Docker镜像可以用来创建Docker容器,一个镜像可以创建很多容器。Docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。
  6. 容器实例:从面向对象的角度看,Docker利用容器独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,容器是镜像运行时的实体,容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
  7. 仓库:是集中存放镜像文件的场所
  8. Docker公司提供的官方仓库被称为Docker Hub(https://hub.docker.com/),存放各种镜像模板的地方。

Docker底层原理

  1. Docker有着比虚拟机更少的抽象层,由于docker不需要跟虚拟机一样实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在CPU、内存利用率上docker将会在效率上有明显优势。
  2. docker利用的是宿主机的内核,而不需要加载操作系统OS内核
Docker容器虚拟机VM
操作系统与宿主机共享OS宿主机OS上运行虚拟机OS
存储大小镜像小,便于存储与传输镜像庞大
运行性能几乎无额外性能损失操作系统额外的CPU、内存消耗
移植性轻便、灵活,适用于Linux笨重,与虚拟化技术耦合度高
硬件亲和性面向软件开发者面向硬件运维者
部署速度快速,秒级较慢,10s以上

Docker常⽤命令

  1. 帮助启动类命令
//启动docker
systemctl start docker
//停止docker
systemctl stop docker
//重启docker
systemctl restart docker
//查看docker状态
systemctl status docker
//开机启动
systemctl enable docker
//查看docker概要信息
docker info
//查看docker总体帮助文档
docker --help
//查看docker命令帮助文档
docker 具体命令 --help
  1. 镜像命令
//列出本地主机上的镜像,参数说明:

//REPOSITORY表示镜像的仓库源
//TAG表示镜像的标签版本号
//IMAGE ID表示镜像ID
//CREATED表示镜像的创建时间
//SIZE表示镜像大小
//同一仓库源可以有多个TAG版本,代表这个仓库源的不同版本,我们使用REPOSITORY:TAG来定义不同的镜像
// -a:列出本地所有的镜像
// -q:只显示镜像ID

docker images

//寻找仓库中的hello-world镜像
docker search helllo-world

//后面没有加标签版本号TAG的话,默认是最新版本
docker pull hello-world

在这里插入图片描述

//查看镜像/容器/数据卷所占的空间
docker system df

//删除镜像文件
docker rmi 某个xxx镜像名字ID
//强制删除镜像文件
docker rmi -f 某个xxx镜像名字ID
//删除全部
docker rmi -f $(docker images -qa)
虚悬镜像:仓库名、标签都是<none>的镜像

  1. 容器命令
//新建+启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
//举例:以交互模式启动一个容器,在容器内执行/bin/bash命令
// -i:交互式操作
// -t:终端
// ububtu:ubuntu镜像
// /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式Shell,因此用的是/bin/bash
// 要退出终端,直接输入exit
docker run -it ubuntu /bin/bash
[OPTIONS]常用说明
	--name="容器新名字" --> 为容器指定一个名称
	-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行)

	-i:以交互模式运行容器,通常与-t同时使用
	-t:为容器重新分配一个伪输入终端,通常与-i同时使用
	也即启动交互式容器(前台有伪终端,等待交互)

	-P:随机端口映射,大写P
	-p:指定端口映射,小写p
    	端口映射 -p 8080:80

//-a	列出当前所有正在运行的容器+历史上运行过的
//-l	显示最近创建的容器
//-n	显示最近n个创建的容器
//-q	静默模式,只显示容器编号
docker ps [options]
//run进去容器,exit退出,容器停止
1.exit
//run进去容器,ctrl+p+q退出,容器不停止
2.ctrl+p+q
docker start 容器ID或者容器名
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名
docker kill 容器ID或者容器名
docker rm 容器ID
docker rm -f $(docker ps -a -q)
  1. 容器命令 - 重要

有镜像才能创建容器,这是根本前提!!!

在大部分场景下,我们希望docker的服务是在后台运行的,我们可以通过 -d 指定容器的后台运行模式
docker run -d 容器名
docker logs 容器ID
docker inspect 容器ID
docker top 容器ID
//启动类容器后退出,然后想重新进去,就用这个命令
docker exec -it 容器ID bashShell
//第二种方式
docker attach 容器ID

两种方式的区别:
exec是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止
attach直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止
容器 -> 主机
docker cp 容器ID:容器内路径 目的主机路径
export导出容器的内容流作为一个tar归档文件[对应import命令]
import从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

Docker镜像分层

  1. 镜像:是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件
  2. 只有通过这个镜像文件才能生成Docker容器实例(类似于Java中new出来一个对象)
  3. Docker分层镜像:Union文件系统是一种分层、轻量级并且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。 Union文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。
  4. 重点理解:Docker镜像层都是只读的,容器层是可写的,当容器启动时,一个新的可写层被加载到镜像的顶部,这一层通常被称作容器层,容器层之下的都是镜像层
  5. Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似于java继承于一个Base基础类,自己再按需扩展。新镜像是从base镜像一层一层叠加生成的,每安装一个软件,就在现有镜像的基础上增加一层。

Docker commit

  1. docker commit 提交容器副本使之称为一个新的镜像
docker commit -m = "提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
//举例
docker commit -m="安装vim镜像" -a="zyt"  容器ID 要创建的目标镜像名:1.0
  1. 小总结:Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似java继承于一个Base基础类,自己再按需扩展,新镜像是从base镜像一层一层叠加生成的,每安装一个软件,就在现有镜像的基础上增加一层。

docker仓库

  1. 存放到阿里云仓库:https://cr.console.aliyun.com/repository/cn-hangzhou/zyt-private/myubuntu/details
  2. 存放到Docker Hub地址:https://hub.docker.com/,Docker Registry是官方提供的工具,可以用于构建私有镜像仓库

容器数据卷

  1. 有个坑 — 容器卷记得加入

--privileged=true

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个–privileged=true参数即可

如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。

在这里插入图片描述

  1. 定义:使用docker容器的时候,会产生一系列的数据文件,这些数据文件在删除docker容器时是会消失的,但是其中产生的部分内容是希望能够把它保存起来另作用途的,Docker将应用与运行环境打包成容器发布,程序员希望在运行过程中产生的数据是可以持久化的,而且容器之间我们希望能够实现数据共享。一般来说,docker容器数据卷可以看成常用的U盘,它存在于一个或多个的容器中,由docker挂载到容器,但不属于联合文件系统,Docker不会在容器删除时删除其挂载的数据卷。

一句话:有点类似我们Redis里面的rdb和aof文件

  1. 目的:容器数据卷设计的目的就是数据的持久化,完全独立于容器的生命周期,因此Docker不会在容器删除时删除其挂载的数据卷。

docker run -it --privileged=true -v/宿主机绝对路径目录:/容器内目录  镜像名
  1. 特点:
    1. 数据卷可在容器之间共享或重用数据
    2. 卷中的更改可以直接实时生效
    3. 数据卷中的更改不会包含在镜像的更新中
    4. 数据卷的生命周期一直持续到没有容器使用它为止
  1. 宿主 vs 容器之间映射添加容器卷
    1. 直接命令添加
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /宿主机目录:/容器内目录 ubuntu /bin/bash
docker run -it --name myu3 --privileged=true -v /tmp/myHostData:/tmp/myDockerData ubuntu /bin/bash

    1. 查看数据卷是否挂载成功
docker inspect 容器ID

    1. 容器和宿主机之间数据共享
docker修改,主机同步获得
主机修改,docker同步获取
docker容器stop,主机修改,docker容器重启看数据是否同步

  1. 读写规则映射添加说明

写(默认)

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名

默认同上案例,默认就是rw

rw = read + write

在这里插入图片描述

只读:容器实例内部被限制,只能读取不能写

/容器目录:ro 镜像名 就能完成功能,此时容器自己只能读取不能写 ,ro = read only

此时如果宿主机写入内容,可以同步给容器内,容器可以读取到。

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名


  1. 卷的继承和共享

容器1完成和宿主机的映射

docker run -it --privileged=true -v /mydocker/u:/tmp --name u1 ubuntu

容器2继承容器1的卷规则

docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu

在这里插入图片描述

本地镜像发布到阿⾥云流程

  1. 阿里云ECS Docker生态如下图所示:

  1. 镜像的生成(commit)方法

基于当前容器创建一个新的镜像,新功能增强

docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-m :提交时的说明文字;

  1. 创建阿里云仓库镜像
  1. 选择控制台,进入容器镜像服务

  1. 选择个人实例

在这里插入图片描述

  1. 命名空间

  1. 仓库名称

在这里插入图片描述

  1. 进入管理界面获得脚本

  1. 将镜像推送到阿里云
  1. 管理界面脚本

  1. 脚本实例

docker login --username=zzyybuy registry.cn-hangzhou.aliyuncs.com

docker tag cea1bb40441c registry.cn-hangzhou.aliyuncs.com/atguiguwh/myubuntu:1.1

docker push registry.cn-hangzhou.aliyuncs.com/atguiguwh/myubuntu:1.1

上面命令是阳哥自己本地的,你自己酌情处理,不要粘贴我的。

  1. 将阿里云上的镜像下载到本地
docker pull registry.cn-hangzhou.aliyuncs.com/atguiguwh/myubuntu:1.1

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

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

相关文章

详讲api网关之kong的基本概念及安装和使用(二)

consul的服务注册与发现 如果不知道consul的使用&#xff0c;可以点击上方链接&#xff0c;这是我写的关于consul的一篇文档。 upstreamconsul实现负载均衡 我们知道&#xff0c;配置upstream可以实现负载均衡&#xff0c;而consul实现了服务注册与发现&#xff0c;那么接下来…

短视频与小程序:如何实现完美结合?

在短视频日益成为人们娱乐、社交和信息获取的重要渠道的今天&#xff0c;如何在短视频平台进行小程序推广成为了许多企业和品牌关注的焦点。本文将介绍如何利用短视频平台进行小程序推广&#xff0c;提升品牌曝光和用户互动。 首先&#xff0c;打开乔拓云-门店系统的后台&#…

让AI帮你说话--GPT-SoVITS教程

有时候我们在录制视频的时候&#xff0c;由于周边环境嘈杂或者录音设备问题需要后期配音&#xff0c;这样就比较麻烦。一个比较直观的想法就是能不能将写好的视频脚本直接转换成我们的声音&#xff0c;让AI帮我们完成配音呢&#xff1f;在语音合成领域已经有很多这类工作了&…

Linux操作系统权限相关问题(一站式速通权限)

一、sudo命令 sudo yum install -y sl sudo命令的作用 不切换用户&#xff0c;就想让普通用户以root的身份&#xff0c;执行对应的指令 输入密码时&#xff0c;输入的是自己普通用户的密码&#xff0c;而不是root的密码&#xff01;&#xff01;&#xff01; sudo可以进行…

500道微信小程序毕业设计题目,小程序新颖毕业选题推荐,建议收藏

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

通过Demo学WPF—数据绑定(一)✨

前言✨ 想学习WPF&#xff0c;但是看视频教程觉得太耗时间&#xff0c;直接看文档又觉得似懂非懂&#xff0c;因此想通过看Demo代码文档的方式进行学习。 准备✨ 微软官方其实提供了WPF的一些Demo&#xff0c;地址为&#xff1a;microsoft/WPF-Samples: Repository for WPF …

仿真APP在金属波纹管液压胀形工艺设计中的应用

一、背景介绍 金属波纹管是带有波纹状截面的金属管状零件&#xff0c;在工业中应用广泛。金属波纹管特殊的截面形状使其具备较好的柔韧性&#xff0c;能够在一定范围内伸缩弯曲。这一特性赋予波纹管两大用途&#xff1a;一是作为变形补偿器&#xff0c;可用于补偿管道设备由于…

MySQL原理(三)锁定机制

一、介绍&#xff1a; 1、锁的本质 业务场景中存在共享资源&#xff0c;多个进程或线程需要竞争获取并处理共享资源&#xff0c;为了保证公平、可靠、结果正确等业务逻辑&#xff0c;要把并发执行的问题变为串行&#xff0c;串行时引入第三方锁当成谁有权限来操作共享资源的判…

Windows Server 2025 LTSC 预览版来了

Windows Server 2025 LTSC 预览版来了 1. 安装 Windows Server 2025 LTSC 预览版2. 安装 VMware Tools3. Windows Server 2025 LTSC 预览版4. Windows Server 2025 LTSC 预览版下载地址 1. 安装 Windows Server 2025 LTSC 预览版 使用 VMware Workstation 安装&#xff0c; 安…

Mysql-事务(隔离级别,事务底层原理,MVCC)

什么是事务&#xff1f;有哪些特性&#xff1f; 事务&#xff1a;事务指的是逻辑上的一组操作&#xff0c;组成这组操作的各个单元要么全都成功&#xff0c;要么全都失败。 事务特性&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a; 原子性是指事务是一个不…

如何在 Ubuntu 中安装 Microsoft Edge 浏览器

微软终于聪明了一回&#xff0c;也学会了「打不过就加入」。Microsoft Edge 浏览器的 Linux 稳定版已经于 2020 年 10 月 23 日发布&#xff0c;并提供给 Linux 发行版使用。除了官方 Edge APT 源以外&#xff0c;还提供了.deb和.rpm格式的安装包。 Microsoft Edge 基于 Chrom…

###C语言程序设计-----C语言学习(7)#(调试篇)

前言&#xff1a;感谢您的关注哦&#xff0c;我会持续更新编程相关知识&#xff0c;愿您在这里有所收获。如果有任何问题&#xff0c;欢迎沟通交流&#xff01;期待与您在学习编程的道路上共同进步。 一. 程序调试 1.程序调试介绍&#xff1a; 程序调试是软件开发过程中非常重…

大坑!react+thress.js

2. UI交互界面与Canvas画布叠加 | Three.js中文网 (webgl3d.cn) // canvas画布绝对定位 renderer.domElement.style.position absolute; renderer.domElement.style.top 0px; renderer.domElement.style.left 0px; renderer.domElement.style.zIndex -1; 我按照教程设置了…

C#小结:以Winform为例,总结一些C#在桌面开发中一些技巧

目录 一、给列表增加按钮&#xff0c;打印实体信息 二、嵌套子窗体 一、给列表增加按钮&#xff0c;打印实体信息 private void button1_Click(object sender, EventArgs e) {List<Student> studentList new List<Student>(){new Student() { Id 1, Name &quo…

Hadoop-MapReduce-源码跟读-MapTask阶段篇

一、源码下载 下面是hadoop官方源码下载地址&#xff0c;我下载的是hadoop-3.2.4&#xff0c;那就一起来看下吧 Index of /dist/hadoop/core 二、Mapper类 我们先看下我们写的map所继承的Mapper类 public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {/*** 传递…

python二维高斯热力图绘制简单的思路代码

import numpy as np import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter import cv2# 生成一个示例图像 image_size 100 image np.zeros((image_size, image_size))# 在图像中心创建一个高亮区域 center_x, center_y image_size // 2, image_size …

爱可声助听器参与南湖区价值百万公益助残捐赠活动成功举行

“声音大小合适吗&#xff1f;能听清楚吗&#xff1f;”今天下午&#xff0c;一场助残捐赠活动在南湖区凤桥镇悄然举行&#xff0c;杭州爱听科技有限公司带着验配团队和听力检测设备来到活动现场&#xff0c;为南湖区听障残疾人和老人适配助听器。 家住余新镇的75岁的周奶奶身体…

mac截图翻译软件有哪些?五大超实用翻译软件

mac截图翻译软件有哪些&#xff1f;随着全球化的发展&#xff0c;跨语言沟通已成为日常生活和工作中不可或缺的一部分。然而&#xff0c;语言障碍常常让我们在阅读外文资料时感到困惑。为了解决这一问题&#xff0c;Mac用户需要一款强大的截图翻译软件来帮助他们快速理解外文内…

Docker 搭建MySQL主从复制-读写分离

一. 介绍 MySQL主从复制是一种常用的数据库高可用性解决方案&#xff0c;通过在主数据库上记录的数据变更&#xff0c;同步到一个或多个从数据库&#xff0c;实现数据的冗余备份和读写分离。在Docker环境下搭建MySQL主从复制和读写分离&#xff0c;不仅方便管理&#xff0c;还…

MES和QMS怎么选?

MES&#xff0c;即制造执行系统&#xff0c;主要用于监控和控制生产过程&#xff0c;提升生产效率、减少生产成本。万界星空科技MES可以提供实时的生产数据&#xff0c;帮助企业做出更准确的决策&#xff0c;并且能够自动化地执行生产任务&#xff0c;提高生产线的效率和灵活性…