您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > Docker on AWS云计算
下载文档并点击左侧按钮联系AWS云计算专家©Amazon.com,Inc.anditsaffiliates.Allrightsreserved.DockeronAWSVictorMeng蒙维解决方案架构师mail:weimen@amazon.com下载文档并点击左侧按钮联系AWS云计算专家议程•Docker简介•AmazonEC2ContainerService介绍•AmazonEC2ContainerService功能演示•问题解答下载文档并点击左侧按钮联系AWS云计算专家Docker简介下载文档并点击左侧按钮联系AWS云计算专家Linux容器技术的概念•容器有效地将由单个操作系统管理的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求。•与虚拟机相比,容器既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。下载文档并点击左侧按钮联系AWS云计算专家HardwareHostOSContainerAPPContainerAPPContainerAPP下载文档并点击左侧按钮联系AWS云计算专家功能强大的Docker容器•秒级启动•占用系统资源少•一次封装,到处运行•运行环境隔离(CPU,内存,磁盘存储,网络,IPC,文件系统,PID,UID)•资源分配限制(CPU,内存)•增量式镜像构建•分布式镜像分发下载文档并点击左侧按钮联系AWS云计算专家硬件层宿主机操作系统虚拟机管理程序虚拟机操作系统运行时环境应用程序虚拟机操作系统运行时环境应用程序硬件层宿主机操作系统Docker容器支持运行时环境应用程序运行时环境应用程序Docker容器和传统虚拟机的不同之处Docker容器的虚拟化方式传统的虚拟化方式下载文档并点击左侧按钮联系AWS云计算专家传统的虚拟化技术,主机可以启动的虚拟机数量有限下载文档并点击左侧按钮联系AWS云计算专家使用Docker技术后,虚拟容器的数量可大大增加下载文档并点击左侧按钮联系AWS云计算专家特性比较特性Docker容器传统虚拟机启动速度秒级分钟级硬盘使用一般为MB一般为GB性能接近原生操作系统弱于原生操作系统单机系统支持量上千个容器一般只有几十个隔离性安全隔离完全隔离下载文档并点击左侧按钮联系AWS云计算专家典型的客户端-服务器架构•客户端:Docker命令行工具或者用户自定义Docker管理客户端•服务器:DockerDaemon服务•通讯协议:Socket或RestAPI下载文档并点击左侧按钮联系AWS云计算专家HostDockerDaemonContainer1Container2Container3Container….DockerClientDockerpullDockerrunDock…DockerIndex下载文档并点击左侧按钮联系AWS云计算专家DockerImage实例化过程DockerRegistriesDockerImagesHostContainer1Container2Container3Container….下载实例化下载文档并点击左侧按钮联系AWS云计算专家如何创建Docker镜像?1.基于已有镜像的容器在运行时创建dockercommit命令2.使用Dockerfile创建镜像–基础镜像–维护者信息–镜像的操作指令–容器的启动指令下载文档并点击左侧按钮联系AWS云计算专家Docker镜像文件举例•FROMubuntu:12.04•MAINTAINERVictorMeng“weimen@amazon.com•#Installdependencies•RUNapt-getupdate-y•RUNapt-getinstall-ygitcurlapache2php5libapache2-mod-php5php5-mcryptphp5-mysql•#Installapp•RUNrm-rf/var/*•ADDsrc/var/•#Configureapache•RUNa2enmodrewrite•RUNchown-R•ENVAPACHE_RUN_USER•ENVAPACHE_RUN_GROUP•ENVAPACHE_LOG_DIR/var/log/apache2•EXPOSE80•CMD[/usr/sbin/apache2,-D,FOREGROUND]下载文档并点击左侧按钮联系AWS云计算专家Docker容器实现文件共享和备份的方式•方法一:挂载一个宿主机目录•方法二:使用数据卷容器下载文档并点击左侧按钮联系AWS云计算专家Host挂载一个本地主机目录Container下载文档并点击左侧按钮联系AWS云计算专家使用数据卷容器HostContainerADataVolumeContainerContainerB下载文档并点击左侧按钮联系AWS云计算专家默认网络实现•基于Linux网桥•外界访问容器内服务靠端口映射•容器对外访问靠NAT下载文档并点击左侧按钮联系AWS云计算专家Docker虚拟网络容器A172.17.0.2vethLinux网桥veth物理网卡容器B172.17.0.3veth容器C172.17.0.4vethvethveth物理主机192.168.100.201下载文档并点击左侧按钮联系AWS云计算专家远程客户端Host主机192.168.100.201:49155Docker容器172.17.0.2:80下载文档并点击左侧按钮联系AWS云计算专家容器间的互联(Link)•适用于Host内部被--icc=false禁止互通的容器•它会在源和接收容器间建立一个隧道,接收容器可以看到源容器指定的信息。HostSourceContainer(DB)Container(WEB)隧道下载文档并点击左侧按钮联系AWS云计算专家Docker容器能否直接用于集群化企业应用开发?下载文档并点击左侧按钮联系AWS云计算专家Docker容器集群化面临的问题•网络问题–容器跨物理节点通信•集群化部署问题–容器调度、编排、水平扩展、故障恢复…下载文档并点击左侧按钮联系AWS云计算专家Docker容器集群化面临的问题•如果用户需要在云端部署Docker容器,还将面临更多的问题:–虚拟网络–弹性资源管理–安全性–与既有云服务的集成…下载文档并点击左侧按钮联系AWS云计算专家AmazonEC2ContainerService•为了帮助用户解决在公有云上部署Docker容器面临的各种问题,亚马逊公司推出了全新的AWS服务:AmazonEC2ContainerService。下载文档并点击左侧按钮联系AWS云计算专家AmazonEC2ContainerService介绍下载文档并点击左侧按钮联系AWS云计算专家什么是AmazonEC2ContainerService?•AmazonEC2ContainerService(ECS)是AWS推出的公有云上的高度可扩展,高性能的软件容器管理服务。•它支持Docker软件容器,并允许您轻松地在AmazonEC2实例的管理集群上运行应用程序。下载文档并点击左侧按钮联系AWS云计算专家为什么需要AWSECS服务?•利用AWSECS,用户可以快速部署和管理Docker应用–使用AWSECS,您将不再需要安装、运维、扩展自己的容器集群管理基础设施。–只需进行简单的API调用,您便可以启动和停止支持Docker应用程序,查询集群的完整状态,使用各种熟悉的功能,包括安全组、自动扩展、负载均衡、弹性存储卷和IAM角色。下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(一)下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(二)下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(三)下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(四)下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(五)下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(六)下载文档并点击左侧按钮联系AWS云计算专家AWSECS典型的工作流(七)下载文档并点击左侧按钮联系AWS云计算专家ContainerInstanceTaskAgentTaskTaskSchedulerContainerInstanceTaskAgentTaskTaskContainerInstanceTaskAgentTaskTaskContainerInstanceTaskAgentTaskTaskServiceTaskdefinitionClusterDaemonDaemonDaemonDaemonAWSECS的主要组成下载文档并点击左侧按钮联系AWS云计算专家AWSECS的主要组成-集群(Cluster)•由ECS容器实例组成的逻辑组,代表可以放置任务的CPU和内存资源池。•区域(Region)范围可访问•可以动态的调整容器实例的数量下载文档并点击左侧按钮联系AWS云计算专家AWSECS的主要组成-容器实例(Containerinstance)•以Docker容器方式运行任务的EC2实例•启动有DockerDaemon和ECS和Agent容器•需要被注册到ECS集群中下载文档并点击左侧按钮联系AWS云计算专家AWSECS的主要组成-代理(Agent)•Agent以Docker容器的方式安装在每个容器实例上,保持与ECS集群的联系。•Agent接受并执行来自ECS集群的管理命令•Agent定时将所在容器实例的监控数据上报,包括当前容器实例中运行的各个Docker容器的内存和CPU使用情况。•开源项目,用户可以自行研究实现细节并改进。下载文档并点击左侧按钮联系AWS云计算专家下载文档并点击左侧按钮联系AWS云计算专家AWSECS的主要组成-任务(Task)•从任务定义(TaskDefinition)实例化出的运行在单个容器实例上的任务对象。•一个任务可以包括一个或多个Docker实例•多个相同或不同任务可以运行在一个容器实例上。•如果不同任务需要开放在相同的主机端口,必须运行在不同的容器实例上。下载文档并点击左侧按钮联系AWS云计算专家AWSECS的主要组成-任务定义(TaskDefinition)•描述可运行任务的蓝图或模板•主要定义了任务包含的Docker容器和相关的数据卷、端口映射、容器互联通信配置,以及每个容器预留的CPU和内存资源分配。下载文档并点击左侧按钮联系AWS云计算专家任务定义举例[{image:tutum/wordpress-stackable,name:wordpress,cpu:10,memory:500,essential:true,links:[db],entryPoint:[/bin/sh,-c],environment:[…],portMappings:[{containerPort:80,hostPort:80}]},][{image:mysql,name:db,cpu:10,memory:500,essential:true,entryPoint:[/entrypoint.sh],environment:[{name:MYSQL_ROOT_PASSWORD,value:pass}],portMappings:[]}]下载文档并点击左侧按钮联系AWS云计算专家非对外提供服务的容器定义[{image:tutum/wordpress-stackable,name:wordpress,cpu:10,memory:500,essential:true,links:[db],entryPoint:[/bin/sh,-c],environment:[…],portMappings:[{containerPort:80,hostPort:80}]},][{image:mysql,name:db,cpu:10,memory:500,essential
本文标题:Docker on AWS云计算
链接地址:https://www.777doc.com/doc-4891747 .html