版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Docker方案容器基础描述典型容器方案完成容器的基础实验教学目标Docker概述Docker方案目录Docker是什么使用最广泛的开源容器引擎一种操作系统级的虚拟化技术依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)一个简单的应用程序打包工具Docker设计目标提供简单的应用程序打包工具开发人员和运维人员职责逻辑分离多环境保持一致性Docker简介Docker引擎的历程Docker基本组成实验目标请完成Docker主机的安装请完成Docker服务的启动和开机启动等基本配置查看Docker服务状态实验:Docker主机的安装应用程序打包和发布应用程序隔离持续集成部署微服务快速搭建测试环境提供PaaS产品(平台即服务)Docker应用场景Docker概述Docker方案目录首先需要先从镜像仓库服务中拉取镜像。常见的镜像仓库服务是DockerHub,但是也存在其他镜像仓库服务。拉取操作会将镜像下载到本地Docker主机,可以使用该镜像启动一个或者多个容器。镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象。镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包。因为容器的设计初衷就是快速和小巧,所以镜像通常都比较小。容器和镜像镜像通常比较小容器目的就是运行应用或者服务,这意味着容器的镜像中必须包含应用/服务运行所必需的操作系统和应用文件。但是,容器又追求快速和小巧,这意味着构建镜像的时候通常需要裁剪掉不必要的部分,保持较小的体积。例如,Docker镜像通常不会包含6个不同的Shell让读者选择——通常Docker镜像中只有一个精简的Shell,甚至没有Shell。镜像中还不包含内核——容器都是共享所在Docker主机的内核。所以有时会说容器仅包含必要的操作系统(通常只有操作系统文件和文件系统对象)。Docker官方镜像AlpineLinux大约只有4MB,可以说是Docker镜像小巧这一特点的比较典型的例子。Windows镜像要比Linux镜像大一些,这与WindowsOS工作原理相关。容器镜像Dockerimagepull是下载镜像的命令。镜像从远程镜像仓库服务的仓库中下载。默认情况下,镜像会从DockerHub的仓库中拉取。Dockerimagepullalpine:latest命令会从DockerHub的alpine仓库中拉取标签为latest的镜像。可以使用以下命令检查Docker主机的本地仓库中是否包含镜像。$DockerimagelsREPOSITORYTAGIMAGEIDCREATEDSIZE将镜像取到Docker主机本地的操作是拉取。所以,如果读者想在Docker主机使用最新的Ubuntu镜像,需要拉取它。通过下面的命令可以将镜像拉取到本地,并观察其大小。容器镜像的获取只需要给出镜像的名字和标签,就能在官方仓库中定位一个镜像(采用“:”分隔)。从官方仓库拉取镜像时,Dockerimagepull命令的格式如下。Dockerimagepull<repository>:<tag>在之前的Linux示例中,通过下面的两条命令完成Alpine和Ubuntu镜像的拉取。Dockerimagepullalpine:latestDockerimagepullubuntu:latest这两条命令从alpine和ubuntu仓库拉取了标有“latest”标签的镜像。下面来介绍一下如何从官方仓库拉取不同的镜像。$Dockerimagepullmongo:3.3.11$Dockerimagepullredis:latest$Dockerimagepullalpine镜像命名和标签Docker镜像存储在镜像仓库服务(ImageRegistry)当中。Docker客户端的镜像仓库服务是可配置的,默认使用DockerHub。镜像仓库服务包含多个镜像仓库(ImageRepository)。同样,一个镜像仓库中可以包含多个镜像。可能这听起来让人有些迷惑,所以下图展示了包含3个镜像仓库的镜像仓库服务,其中每个镜像仓库都包含一个或多个镜像。镜像仓库服务下面介绍几种镜像中常用的操作命令。Dockerimagepull是下载镜像的命令。镜像从远程镜像仓库服务的仓库中下载。Dockerimagels列出了本地Docker主机上存储的镜像。可以通过--digests参数来查看镜像的SHA256签名。Dockerimageinspect命令非常有用!该命令完美展示了镜像的细节,包括镜像层数据和元数据。Dockerimagerm用于删除镜像。Docker镜像常用命令实验目标请下载Nginx不同版本的镜像。请查看Nginx不同版本镜像的大小。请搜索Apache镜像。请将本地镜像进行重命名。请将重命名后的镜像推送至Dockerhub。请删除本地镜像。实验:容器镜像的获取容器是镜像的运行时实例。正如从虚拟机模板上启动VM一样,用户也同样可以从单个镜像上启动一个或多个容器。虚拟机和容器最大的区别是容器更快并且更轻量级——与虚拟机运行在完整的操作系统之上相比,容器会共享其所在主机的操作系统/内核。容器容器和虚拟机都依赖于宿主机才能运行。宿主机可以是笔记本,是数据中心的物理服务器,也可以是公有云的某个实例。在下面的示例中,假设宿主机是一台需要运行4个业务应用的物理服务器。在虚拟机模型中,首先要开启物理机并启动Hypervisor引导程序。一旦Hypervisor启动,就会占有机器上的全部物理资源,如CPU、RAM、存储和NIC。Hypervisor接下来就会将这些物理资源划分为虚拟资源,并且看起来与真实物理资源完全一致。然后Hypervisor会将这些资源打包进一个叫作虚拟机(VM)的软件结构当中。这样用户就可以使用这些虚拟机,并在其中安装操作系统和应用。前面提到需要在物理机上运行4个应用,所以在Hypervisor之上需要创建4个虚拟机并安装4个操作系统,然后安装4个应用。容器和虚拟机(1)而容器模型则略有不同。服务器启动之后,所选择的操作系统会启动。在Docker世界中可以选择Linux,或者内核支持内核中的容器原语的新版本Windows。与虚拟机模型相同,OS也占用了全部硬件资源。在OS层之上,需要安装容器引擎(如Docker)。容器引擎可以获取系统资源,比如进程树、文件系统以及网络栈,接着将资源分割为安全的互相隔离的资源结构,称之为容器。每个容器看起来就像一个真实的操作系统,在其内部可以运行应用。按照前面的假设,需要在物理机上运行4个应用。因此,需要划分出4个容器并在每个容器中运行一个应用。容器和虚拟机(2)下面介绍一些Docker容器中常用的命令。DockercontainerrunDockercontainerlsDockercontainerexecDockercontainerstopDockercontainerstartDockercontainerrmDockercontainerinspectDocker容器常用命令实验目标请下载任一软件的镜像。请基于此镜像创建两个容器。请删除容器的镜像,查看对应的输出。请进入容器系统,在任一目录下创建文件后,退出容器,并将此容器提交为镜像。请删除容器和容器依赖的镜像。实验:容器生命周期管理在顶层设计中,Docker网络架构由3个主要部分构成:CNM、Libnetwork和驱动。CNM是设计标准。在CNM中,规定了Docker网络架构的基础组成要素。Libnetwork是CNM的具体实现,并且被Docker采用,Libnetwork通过Go语言编写,并实现了CNM中列举的核心组件。驱动通过实现特定网络拓扑的方式来拓展该模型的能力。Docker容器网络方案Docker容器的四种网络模式:bridge桥接模式Docker容器网络(1)Docker容器的四种网络模式:host模式Docker容器网络(2)Docker容器的四种网络模式:container模式Docker容器网络(3)Docker容器的四种网络模式:none模式Docker容器网络(4)实验目标请查看Docker容器默认网络类型。请分别创建四种网络类型的Docker容器实例。实验:容器网络从容器构建镜像创建一个容器,比如使用tomcat:latest镜像创建一个tomcat-test容器修改tomcat-test容器的文件系统,比如修改tomcat的server.xml文件中的默认端口使用commit命令提交镜像容器镜像的构建方式(1)使用Dockerfile构建镜像编写Dockerfile文件使用build命令构建镜像构建方式对比:容器镜像的构建者可以任意修改容器的文件系统后进行发布,这种修改对于镜像使用者来说是不透明的。容器镜像的大小不可控。容器镜像依赖的父镜像变化时,容器镜像必须进行重新构建。Dockerfile镜像是完全透明的,所有用于构建镜像的指令都可以通过Dockerfile看到。Dockerfile镜像需要修改时,可以通过修改Dockerfile中的指令,再重新构建生成,没有任何问题。Dockerfile可以在GitHub等源码管理网站上进行托管,DockerHub自动关联源码进行构建。推荐使用DockerFile构建容器镜像。容器镜像的构建方式(2)Dockerfile由一行行命令语句组成,并支持以#开头的注释行。例如:DockerFile示例#Testweb-apptousewithPluralsightcoursesandDockerDeepDivebook#Linuxx64FROMalpineLABELmaintainer="nigelpoulton@"#InstallNodeandNPM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年乌兰察布货运从业资格证模拟考试题
- 智慧餐厅未来小微餐饮企业的发展方向
- 二零二五年度特殊教育机构代课教师聘用合同范本
- 2025年度起重设备购销与智能化制造设备维护合同
- 高效办公环境下的学术研究策略
- 2025年度中小企业银行担保贷款合同
- 现代科技助力小学生数学学习习惯的养成
- 教育与心理双重支持下的残疾人家庭康复探索
- 二零二五年度窗帘设计创新奖评审合同电子版
- 2025年度仓储物流除四害与供应链安全合同
- 护理人文知识培训课件
- 建筑工程施工安全管理课件
- 2025年春新人教版数学七年级下册教学课件 7.2.3 平行线的性质(第1课时)
- 安徽省合肥市2025年高三第一次教学质量检测地理试题(含答案)
- 2025年新合同管理工作计划
- 统编版八年级下册语文第三单元名著导读《经典常谈》阅读指导 学案(含练习题及答案)
- 风光储储能项目PCS舱、电池舱吊装方案
- TTJSFB 002-2024 绿色融资租赁项目评价指南
- 全新车位转让协议模板下载(2024版)
- 2024年江西电力职业技术学院单招职业技能测试题库及答案解析
- 天合储能:2024储能专用电芯白皮书
评论
0/150
提交评论