Do cker容器化项目开发流程实战【课件文档】_第1页
Do cker容器化项目开发流程实战【课件文档】_第2页
Do cker容器化项目开发流程实战【课件文档】_第3页
Do cker容器化项目开发流程实战【课件文档】_第4页
Do cker容器化项目开发流程实战【课件文档】_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

20XX/XX/XXDocker容器化项目开发流程实战汇报人:XXXCONTENTS目录01

Docker环境准备与基础配置02

Dockerfile构建镜像实战03

容器管理与基础操作04

DockerCompose编排实战CONTENTS目录05

镜像仓库管理06

项目部署实战案例07

常见问题排查与解决方案08

DevOps流程集成与最佳实践Docker环境准备与基础配置01Docker安装指南(Linux系统)卸载旧版本Docker执行命令:sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc,清理系统中已存在的旧版Docker组件,避免版本冲突。安装Docker依赖工具执行命令:sudoapt-getupdate&&sudoapt-getinstall-yapt-transport-httpsca-certificatescurlsoftware-properties-common,安装HTTPS传输、证书管理等必要依赖。添加Docker官方GPG密钥执行命令:curl-fsSL/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpg,导入官方密钥确保软件包完整性。配置Docker软件源执行命令:echo"deb[arch=$(dpkg--print-architecture)signed-by=/etc/apt/keyrings/docker.gpg]/linux/ubuntu$(lsb_release-cs)stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null,添加官方稳定版软件源。安装Docker引擎执行命令:sudoapt-getupdate&&sudoapt-getinstall-ydocker-cedocker-ce-clicontainerd.iodocker-compose-plugin,安装Docker核心组件及Compose插件。启动Docker服务并验证执行命令:sudosystemctlstartdocker&&sudosystemctlenabledocker,启动服务并设置开机自启;通过docker--version和dockerrunhello-world验证安装成功。DockerDesktop配置(Windows/macOS)

下载与安装步骤访问Docker官网下载对应系统版本的DockerDesktop安装包,Windows需开启WSL2功能,macOS需确保系统版本在10.15+。双击安装文件,按向导完成安装,Windows勾选"使用WSL2而不是Hyper-V"选项。

国内镜像源配置进入DockerDesktop设置,打开DockerEngine配置页面,添加国内镜像源:{"registry-mirrors":["",""]},点击"Apply&Restart"使配置生效。

资源分配调整在设置的Resources选项卡中,根据电脑配置分配CPU、内存和磁盘空间,建议内存至少4GB,Windows用户可设置WSL2集成,确保容器与WSL子系统文件互通。

验证安装结果打开终端(Windows用PowerShell,macOS用终端),执行"docker--version"和"dockerrunhello-world"命令,若输出HellofromDocker!信息,表明安装配置成功。国内镜像源加速配置

配置必要性与优势国内网络环境下,直接拉取DockerHub镜像常面临下载缓慢或超时问题。配置国内镜像源可将拉取速度提升5-10倍,显著缩短环境准备时间,尤其适用于企业内网和开发团队协作场景。

主流国内镜像源推荐常用国内镜像源包括阿里云(https://

Linux系统配置步骤在Linux系统中,通过编辑/etc/docker/daemon.json文件,添加"registry-mirrors":["镜像源地址"]配置,执行sudosystemctldaemon-reload和sudosystemctlrestartdocker命令使配置生效。

Windows/macOS配置方法在DockerDesktop中,通过"设置>DockerEngine"菜单,在配置文件中添加镜像源地址,点击"Apply&Restart"完成配置。验证命令:dockerinfo|grep"RegistryMirrors"。Docker基础命令快速上手

镜像管理核心命令搜索镜像:dockersearch[镜像名];拉取镜像:dockerpull[镜像名]:[标签],如dockerpullnginx:latest;查看本地镜像:dockerimages;删除镜像:dockerrmi[镜像ID/名称]

容器生命周期管理创建并启动容器:dockerrun-d-p[宿主机端口]:[容器端口]--name[容器名][镜像名];查看运行中容器:dockerps;停止容器:dockerstop[容器ID/名称];删除容器:dockerrm[容器ID/名称]

容器交互与信息查看进入容器:dockerexec-it[容器ID/名称]/bin/bash;查看容器日志:dockerlogs[容器ID/名称];查看容器详情:dockerinspect[容器ID/名称]

数据卷与网络命令创建数据卷:dockervolumecreate[卷名];查看数据卷:dockervolumels;创建自定义网络:dockernetworkcreate[网络名];连接容器到网络:dockernetworkconnect[网络名][容器名]Dockerfile构建镜像实战02Dockerfile核心指令解析

FROM:指定基础镜像FROM指令用于指定构建新镜像所基于的基础镜像,格式为FROM<镜像名>:<标签>。例如FROMnginx:latest表示以最新版Nginx镜像为基础。推荐使用slim或alpine版本的基础镜像以减小体积,如FROMpython:3.10-slim。COPY与ADD:文件复制COPY指令用于将宿主机文件复制到镜像中,格式为COPY<源路径><目标路径>,如COPYindex.html/usr/share/nginx/html/。ADD功能类似,但支持URL下载和解压tar包,生产环境建议优先使用COPY以保持明确性。RUN:执行构建命令RUN指令在镜像构建过程中执行命令,格式有shell和exec两种形式。例如RUNaptupdate&&aptinstall-ycurl用于安装依赖,建议合并多条命令并清理缓存(如rm-rf/var/lib/apt/lists/*)以减少镜像层数。WORKDIR:设置工作目录WORKDIR指令用于指定容器创建后默认的工作目录,后续的RUN、CMD等指令将在此目录下执行。例如WORKDIR/app可将工作目录设置为/app,避免使用绝对路径,提升Dockerfile可读性。CMD与ENTRYPOINT:容器启动命令CMD用于指定容器启动时执行的默认命令,可被dockerrun后的参数覆盖;ENTRYPOINT则是固定的启动入口,参数会被追加。推荐组合使用ENTRYPOINT+CMD,如ENTRYPOINT["nginx"]CMD["-g","daemonoff;"]确保服务前台运行。.dockerignore文件配置

.dockerignore文件作用通过排除无关文件,减小镜像体积,避免敏感信息泄露,提升构建效率。

常用排除规则示例包含.git、.gitignore、node_modules、*.log、.env、.venv、__pycache__、*.pyc等目录和文件。

配置注意事项文件需放置在Dockerfile同级目录,规则支持通配符,可使用!保留特定文件,确保仅必要文件参与构建。PythonFlask应用镜像构建案例01项目结构准备创建flask-demo目录,包含app.py(Flask应用代码)、requirements.txt(依赖清单:flask==2.3.3、gunicorn==21.2.0)和.dockerignore文件(排除.git、__pycache__等无关文件)。02生产级Dockerfile编写采用多阶段构建:第一阶段(builder)基于python:3.10-slim安装依赖到临时目录;第二阶段使用相同基础镜像,创建普通用户appuser,复制依赖与应用代码,设置PYTHONPATH环境变量,配置gunicorn启动命令。03镜像构建与验证执行构建命令:dockerbuild-tflask-app:prod.。构建完成后通过dockerimages查看镜像,运行容器命令:dockerrun-d-p8080:8000--nameflask-prodflask-app:prod,访问http://localhost:8080验证应用可用性。04关键优化点使用国内源加速依赖安装(如清华PyPI源),合并RUN指令减少镜像层数,清理包管理器缓存,以非root用户运行应用,通过多阶段构建减小镜像体积,确保生产环境安全性与高效性。多阶段构建优化实践

多阶段构建核心价值通过分离构建环境与运行环境,显著减小最终镜像体积,剥离构建依赖,提升部署效率与安全性,是生产级镜像构建的最佳实践。

基础多阶段构建流程第一阶段(构建阶段):基于完整基础镜像(如python:3.10-slim)安装构建依赖、编译代码;第二阶段(运行阶段):使用轻量基础镜像(如alpine),仅复制运行时必要文件。

PythonFlask应用优化示例构建阶段:FROMpython:3.10-slimASbuilder,安装依赖到临时目录;运行阶段:FROMpython:3.10-slim,复制依赖与代码,切换非root用户运行,镜像体积减少60%以上。

多阶段构建关键技巧使用--from=builder参数复制文件,合并RUN指令减少镜像层,清理包管理器缓存(如rm-rf/var/lib/apt/lists/*),配合.dockerignore排除无关文件。镜像安全最佳实践非root用户运行容器

生产环境中,容器应使用普通用户运行应用,避免因容器被入侵而获得root权限。可在Dockerfile中通过USER指令指定普通用户,例如创建UID为1001的appuser并切换至此用户运行服务。使用精简基础镜像

优先选择slim或alpine版本的基础镜像,减少镜像体积和攻击面。例如使用python:3.10-slim替代python:3.10,可显著降低镜像大小并减少潜在漏洞。清理构建缓存与无关文件

在Dockerfile中,通过--no-cache-dir参数安装依赖,并清理包管理器缓存(如rm-rf/var/lib/apt/lists/*)。同时使用.dockerignore文件排除.git、node_modules等无关文件,避免敏感信息泄露。镜像安全扫描与验证

构建镜像后,使用工具如Trivy、Clair进行安全扫描,检测漏洞和恶意软件。部署前验证镜像哈希值,确保镜像未被篡改,例如通过dockerimages--digests查看镜像摘要。容器管理与基础操作03容器生命周期管理

01容器创建与启动使用dockerrun命令创建并启动容器,通过-d参数后台运行,--name指定容器名称,-p进行端口映射。例如:dockerrun-d--namemy-nginx-p8080:80nginx:latest。

02容器状态监控通过dockerps查看运行中容器,dockerps-a查看所有容器状态。使用dockerlogs[容器名/ID]查看容器日志,dockerinspect[容器名/ID]获取容器详细信息。

03容器停止与删除执行dockerstop[容器名/ID]停止容器,dockerstart[容器名/ID]重新启动。使用dockerrm[容器名/ID]删除已停止容器,添加-f参数可强制删除运行中容器。

04容器资源限制启动容器时通过--memory和--cpus参数限制资源,如dockerrun-d--nameapp--memory512m--cpus0.5my-app:latest,防止单个容器过度占用宿主机资源。端口映射与网络配置

端口映射基础配置使用-p参数实现宿主机与容器端口映射,格式为"宿主机端口:容器端口"。例如:dockerrun-d-p8080:80nginx,将容器80端口映射到宿主机8080端口。

常见网络模式选择Docker提供bridge(默认)、host、container、none四种网络模式。bridge模式隔离性好,host模式性能高但端口易冲突,container模式共享网络栈,none模式完全隔离。

自定义网络创建与使用通过dockernetworkcreate--driverbridgemy-network创建自定义网络,使用--networkmy-network指定容器加入该网络,实现容器间通过服务名通信,如配置Nginx代理到其他容器服务。

端口冲突排查方案执行netstat-tulnp|grep端口号或lsof-i:端口号检查端口占用进程,通过kill-9PID终止冲突进程,或修改映射端口如-p8081:80避免冲突。数据卷与持久化存储数据卷的核心作用数据卷是Docker中用于持久化存储容器数据的独立文件系统,可在容器间共享和重用,避免数据随容器生命周期丢失,保障数据持久性与一致性。基础数据卷操作创建数据卷:dockervolumecreatemy-volume;查看数据卷:dockervolumels;删除数据卷:dockervolumermmy-volume;挂载数据卷:dockerrun-vmy-volume:/app/datamy-image。绑定挂载实战通过宿主机目录直接挂载:dockerrun-v/host/path:/container/pathmy-image,适用于开发环境实时同步代码;需注意宿主机目录权限,避免容器内权限不足导致写入失败。持久化存储最佳实践生产环境推荐使用命名数据卷,避免直接依赖宿主机路径;配置数据卷备份策略,定期执行dockerrun--rm-vmy-volume:/source-v/backup:/targetalpinetar-czf/target/backup.tar.gz-C/source.。环境变量注入与配置环境变量注入方式支持Dockerfile中ENV指令定义默认值,运行时通过dockerrun-e参数覆盖,或使用.env文件批量注入,实现配置与镜像解耦。敏感配置处理生产环境采用DockerSecrets或加密环境变量注入,避免明文暴露数据库密码等敏感信息,如echo"DB_PASSWORD=secret"|dockersecretcreateapp_env-。配置验证与调试通过dockerexec-it<容器ID>printenv查看环境变量,结合应用日志排查配置加载问题,确保变量正确注入容器。多环境配置实践开发环境使用--env-file.env.dev注入测试配置,生产环境通过CI/CD流水线动态注入正式参数,同一镜像适配不同部署场景。DockerCompose编排实战04docker-compose.yml配置详解核心结构与版本声明version字段指定Compose文件格式版本,推荐使用'3.8'以支持最新特性。services节点定义所有容器服务,networks和volumes用于配置网络与数据卷。服务配置核心参数image指定镜像名称,ports定义端口映射(宿主机:容器),environment注入环境变量,volumes实现数据持久化,depends_on控制服务启动顺序。网络与存储配置自定义网络通过networks创建,支持bridge、overlay等模式;命名卷volumes确保数据持久化,避免容器删除数据丢失,格式为宿主机路径:容器路径:权限。资源限制与健康检查deploy.resources限制CPU/内存资源,如cpus:"0.5"、memory:512M;healthcheck配置服务健康检测命令,确保依赖服务就绪后再启动当前服务。多服务应用编排案例(Nginx+MySQL)

架构设计与服务关系采用Nginx作为前端Web服务器,MySQL作为后端数据库,通过DockerCompose实现服务编排。Nginx负责接收客户端请求并转发,MySQL提供数据存储支持,两者通过自定义网络实现容器间通信。

docker-compose.yml核心配置定义两个服务:nginx服务使用nginx:latest镜像,映射宿主机80端口到容器80端口,挂载自定义配置文件和网页目录;mysql服务使用mysql:8.0镜像,设置环境变量(如MYSQL_ROOT_PASSWORD),挂载数据卷实现数据持久化,并配置健康检查确保服务就绪。

网络与数据持久化配置创建自定义bridge网络(如app-net),使Nginx与MySQL服务在同一网络内通过服务名通信。MySQL数据通过宿主机目录(如./mysql-data)挂载到容器/var/lib/mysql,保证数据不随容器删除而丢失。

启动与验证流程在docker-compose.yml所在目录执行docker-composeup-d启动服务,通过docker-composeps检查服务状态。访问宿主机80端口验证Nginx服务,进入Nginx容器执行mysql-hmysql-uroot-p命令测试数据库连接,确认多服务协同工作正常。服务依赖与健康检查配置容器启动顺序控制使用DockerCompose的depends_on配置服务启动顺序,例如前端服务依赖后端API服务启动后再启动。环境变量注入依赖参数通过-e参数或.env文件注入数据库地址、密码等依赖参数,实现配置与代码解耦,如DB_HOST=mysql-service。健康检查基础配置在Dockerfile或docker-compose.yml中配置HEALTHCHECK指令,例如通过curl访问/health端点检查服务状态,超时时间设为3秒,间隔30秒。依赖服务就绪条件配置服务依赖的健康检查条件,如后端服务需等待数据库容器状态为healthy后才启动,确保依赖服务就绪。环境变量与.env文件使用环境变量的核心价值实现配置与代码、镜像解耦,无需修改应用代码或重新构建镜像,仅通过启动容器时注入环境变量,即可实现应用在不同场景下的配置切换,如开发/生产环境、不同端口等。Dockerfile中定义基础环境变量在Dockerfile中使用ENV指令定义基础环境变量,为应用提供默认配置。例如:ENVWORKERS=2,设置应用启动时的工作进程数。运行时覆盖环境变量启动容器时,通过-d参数注入新环境变量,覆盖Dockerfile中的默认配置。例如:dockerrun-e"WORKERS=4"-p8080:80myapp:latest,动态调整工作进程数为4。.env文件批量注入环境变量创建.env文件集中管理环境变量,避免在命令行中使用多个-e参数。在docker-compose.yml中通过env_file指定该文件,实现批量、便捷的环境变量注入。敏感配置处理:DockerSecrets对于数据库密码等敏感信息,推荐使用DockerSecrets(Swarm模式)或外部密钥管理服务,替代明文环境变量,增强配置安全性。镜像仓库管理05DockerHub使用指南

DockerHub账号注册与登录访问DockerHub官网(),使用邮箱完成注册。登录后可创建个人或组织仓库,通过命令行执行`dockerlogin`输入账号密码完成认证。

镜像搜索与拉取使用`dockersearch[镜像名]`命令搜索公开镜像,如`dockersearchnginx`。拉取镜像格式为`dockerpull[仓库名]/[镜像名]:[标签]`,例如`dockerpullnginx:latest`获取最新版Nginx。

镜像推送至DockerHub推送前需将本地镜像标记为`dockertag本地镜像名:标签用户名/仓库名:标签`,如`dockertagmyapp:v1username/myapp:v1`。随后执行`dockerpushusername/myapp:v1`完成推送,私有仓库需确保账号权限。

仓库管理与版本控制在DockerHub网页端可管理仓库权限、设置自动构建规则。建议采用语义化版本标签(如v1.0.0),配合`.dockerignore`文件排除无关文件,通过描述清晰标注镜像功能与更新日志。私有镜像仓库搭建(Registry)

Registry仓库基础部署使用官方Registry镜像快速启动私有仓库:dockerrun-d--nameregistry-p5000:5000--restart=always-v/var/lib/registry:/var/lib/registryregistry:2.8.1。通过数据卷/var/lib/registry实现镜像数据持久化,确保容器重启后数据不丢失。

仓库安全配置(TLS+认证)生成自签名证书:opensslreq-newkeyrsa:4096-nodes-sha256-keyoutcerts/domain.key-x509-days365-outcerts/domain.crt。创建认证文件:dockerrun--entrypointhtpasswdhttpd:2-Bbnusernamepassword>auth/htpasswd。启动时挂载证书与认证目录,启用HTTPS与基础认证。

本地仓库使用流程镜像标记:dockertagmy-image:latestlocalhost:5000/my-image:v1。登录仓库:dockerloginlocalhost:5000。推送镜像:dockerpushlocalhost:5000/my-image:v1。拉取镜像:dockerpulllocalhost:5000/my-image:v1。验证仓库内容:curlhttp://localhost:5000/v2/_catalog查看镜像列表。

仓库维护与优化执行垃圾回收清理未引用镜像:dockerexec-itregistryregistrygarbage-collect/etc/docker/registry/config.yml。配置存储驱动(如filesystem、s3)优化存储性能。设置日志驱动为json-file并配置日志轮转,避免磁盘空间耗尽。定期备份/var/lib/registry目录确保数据安全。Nexus私服配置与使用

Nexus私服核心价值在内网环境中,Nexus私服可实现镜像代理、缓存与共享,避免重复拉取公网镜像,节省带宽并提升部署稳定性,尤其适合团队协作与隔离环境。

Docker部署Nexus容器通过轩辕镜像拉取Nexus3稳定版本:dockerpulldocker.xuanyuan.run/sonatype/nexus3:3.90.1,创建数据卷持久化数据,映射8081管理端口与8082仓库端口启动容器。

Docker代理仓库配置登录Nexus后台,创建Docker代理仓库,设置代理目标为轩辕镜像源(docker.xuanyuan.run),配置仓库路径与访问控制,实现内网镜像加速与统一管理。

客户端使用私服配置DockerDaemon指向Nexus私服地址,执行dockerlogin认证后,通过私服拉取或推送镜像,格式为:dockerpull[私服IP:8082]/镜像名:标签,实现内网镜像高效复用。项目部署实战案例06静态网站部署(Nginx容器)准备静态网站文件创建项目目录(如hw-nginx-docker),编写index.html作为网站首页,可包含基本HTML结构和内容。编写NginxDockerfile基于nginx:latest基础镜像,使用COPY指令将本地静态文件复制到容器内Nginx默认网页目录/usr/share/nginx/html/,并通过CMD["nginx","-g","daemonoff;"]确保容器前台运行。构建Nginx镜像在Dockerfile所在目录执行命令:dockerbuild-tcustom-nginx:v1.,构建自定义Nginx镜像,其中-t指定镜像名称和标签。运行Nginx容器并测试使用命令:dockerrun-d-p8080:80--namemy-nginxcustom-nginx:v1启动容器,通过宿主机IP:8080访问静态网站,验证部署结果。PythonWeb应用部署完整流程

项目文件准备创建项目目录,编写核心代码app.py与依赖清单requirements.txt,确保本地可运行。示例:Flask应用返回"HelloDocker!",依赖包含flask==2.3.3和gunicorn==21.2.0。

Dockerfile构建采用多阶段构建:第一阶段用python:3.10-slim安装依赖至临时目录;第二阶段复制依赖与代码,创建非root用户appuser运行,设置PYTHONPATH与启动命令CMD["gunicorn","-w","2","app:app"]。

镜像构建与测试执行dockerbuild-tflask-app:v1.构建镜像,通过dockerrun-d-p5000:8000flask-app:v1启动容器,访问http://localhost:5000验证服务可用性,检查日志确认无报错。

DockerCompose编排编写docker-compose.yml定义服务,包含应用容器与数据库容器,配置网络、端口映射(如5000:8000)、环境变量及依赖关系,执行dockercomposeup-d一键启动多容器应用。PyTorch模型容器化部署项目文件准备创建项目目录pytorch-docker-demo,包含test_pytorch.py推理脚本与requirements.txt依赖清单,脚本实现ResNet18预训练模型加载与随机张量推理。Dockerfile编写基于python:3.9-slim基础镜像,设置工作目录/app,复制依赖文件安装torch、torchvision等包,通过国内源加速,最终指定启动命令pythontest_pytorch.py。镜像构建与容器运行执行dockerbuild-tpytorch-demo:latest.构建镜像,使用dockerrun运行容器,验证模型在容器内加载成功并输出推理结果,实现环境隔离与快速部署。常见问题排查与解决方案07镜像构建常见错误处理网络连接失败构建过程中出现网络连接问题,可检查宿主机网络连通性,配置DockerDaemon代理(如设置HTTP_PROXY环境变量),使用国内镜像加速(如阿里云、清华源),或构建时指定DNS(如--dns)。依赖安装错误执行apt-getinstall或pipinstall等命令时依赖安装失败,可更换国内软件源(如将替换为),清理包管理器缓存(如rm-rf/var/lib/apt/lists/*),或检查依赖包名称是否正确。镜像体积过大镜像体积过大可通过合并RUN指令减少层数,使用slim/alpine基础镜像,添加.dockerignore文件排除无关文件(如.git、node_modules),或采用多阶段构建剥离构建依赖。权限问题构建或运行时出现权限不足,生产环境应使用非root用户(如创建appuser并切换USERappuser),检查挂载目录权限(如宿主机目录属主与容器内用户一致),避免以特权模式运行容器。容器启动失败问题排查

日志诊断:快速定位错误根源执行命令`dockerlogs<容器ID/名称>`查看实时日志,重点关注"Portalreadyinuse"、"Connectionrefused"、"Permissiondenied"等关键字,快速定位启动失败直接原因。

端口冲突排查与解决使用`netstat-tulnp|grep<端口号>`或`lsof-i:<端口号>`检查宿主机端口占用情况。解决方案包括:停止占用进程、修改宿主机映射端口(如`-p8081:80`)或使用动态端口映射(`-P`参数)。

环境变量与配置验证通过`dockerexec-it<容器ID>printenv`检查环境变量注入是否正确。常见问题包括:敏感配置缺失(如数据库密码)、Linux环境下`ernal`解析失败(需改用自定义网络或host模式)。

依赖服务就绪状态检查对于依赖数据库、缓存等服务的容器,需配置健康检查与依赖等待。例如在DockerCompose中使用`depends_on`结合`service_healthy`条件,确保依赖服务就绪后再启动当前容器。

权限与挂载目录问题处理检查挂载目录权限,确保容器内用户对挂载路径有读写权限。执行`chown-R1001:1001/宿主机挂载目录`调整权限,避免因"Permissiondenied"导致配置文件加载失败。网络连接与端口冲突解决网络连接问题排查步骤

首先检查宿主机网络连通性,执行ping或curl-v测试基础网络;若宿主机无法联网,需先解决主机网络问题。配置DockerDaemon代理,创建或编辑/etc/systemd/system/docker.service.d/http

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论