零基础容器技术实战-学习报告

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 零基础容器技术实战-学习报告

基础学习之阿里云容器服务Kubernetes版快速入门
本步骤指导您如何在ACK集群中快速部署一个无状态应用(Deployment),即魔方游戏,并将该应用向公网公开。关于创建Deployment的详细参数描述,
并访问容器服务管理控制台
在集群列表页面中,单击目标集群名称
在集群管理页左侧导航栏中,选择工作负载>无状态。
在无状态页面中,单击使用镜像创建。
在应用基本信息页签,设置应用名称,例如ack-cube,单击下一步。
在容器配置页签,依次设置镜像名称、镜像Tag、资源限制、所需资源和端口,单击下一步。
在高级配置页签,单击服务(Service)右侧的创建。
在创建服务对话框中,设置服务的相关参数,单击创建,以通过该服务公开应用。
在高级配置页签,单击页面右下角的创建。
返回如下页面,表示应用创建成功,单击查看应用详情。
在应用详情页面,您可以查看应用的容器组、访问方式、事件、容器伸缩、历史版本、日志和触发器等信息。

测试应用
本步骤指导您如何通过服务(Service)来访问新部署的容器化应用。

切换回容器服务管理控制台页签。在左侧导航栏中,选择网络>服务。
在服务列表页面,找到新创建的服务(即ack-cube-svc),记录外部端点列的IP地址。

3、打开您本机的浏览器,在地址栏中输入并访问外部端点列的IP地址,您即可体验魔方游戏。

监控应用
本步骤指导您如何监控应用的运行状况,如CPU利用率、内存利用率、网络I/O压力等指标。

切换回容器服务管理控制台页签。在左侧导航栏中,选择运维管理>Prometheus监控。
在Prometheus监控页面,单击无状态应用监控。
在无状态应用监控页签,选择namespace为default,选择deployment为ack-cube。
在无状态应用监控页签,单击右侧图标>集群Pod监控。
在集群Pod监控页签,选择namespace为default,选择Pod为待监控的Pod。

Docker镜像管理快速入门
Docker 是一个开源的容器引擎,用于创建、管理和编排容器,可以轻松为任何应用创建一个轻量级、可移植、自给自足的容器。本步骤将在ECS上部署一个Docker服务,并配置DockerHub的镜像加速器。

搭建Docker服务
点击右侧 ,切换至Web Terminal,输入以下命令,安装Docker的依赖库。
添加Docker CE的软件源信息。
安装Docker CE。
启动Docker服务。
配置DockerHub镜像加速器。
重启Docker服务。
准备应用代码和Dockerfile
本步骤操作将在工作空间下创建一个基于Golang的HelloWorld代码文件和一个用来构建运行Hello代码所需环境镜像的Dockerfile文件。

创建工作空间。
在工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串。
在工作空间下创建Dockerfile文件。
本地构建镜像并运行镜像
本步骤将指导您使用Docker基本命令构建和运行镜

使用docker build命令构建镜像。
使用docker run命令运行镜像。
使用curl工具访问容器中的HelloWorld服务。
使用docker rm命令删除容器。
创建远程镜像仓库
选择 【镜像仓库】 > 【创建镜像仓库】,在 【创建镜像仓库】 弹框中选择 【命名空间】 ,填写 仓库名称 和 摘要 ,然后单击 【下一步】
单击 【本地仓库】 > 【创建镜像仓库】 。
在镜像仓库列表,选择上一步创建的镜像仓库,单击 【管理】 ,查看镜像仓库详情。
推送镜像
1.执行以下命令登录到阿里云Docker Registry。

标记本地镜像,将其归入远程仓库。
将本地镜像推送到远程仓库。
拉取指定版本的远程镜像。
运行拉取的远程镜像。
访问HelloWorld服务。

Chaos带你快速上手混沌工程
容器服务ACK控制台地址,
在集群页面,单击详情。
在左侧导航栏,单击无状态。
在无状态页面,单击使用YAML创建资源。
在创建页面,复制以下代码并粘贴到模板框中,然后单击创建。
在左侧导航栏,单击无状态。
在无状态页面,等待几分钟,单击刷新,容器组数量全部为1/1之后,表示应用部署完成。
如果出现某服务无法正常启动的情况,您只需单击目标服务右侧操作列表下的更多>重新部署即可。如果遇到frontend无法正常启动的情况,此时您需要先将checkoutservice重新部署后,再将frontend重新部署即可
在无状态页面,单击frontend。
在frontend服务页面,单击访问方式页签。
在frontend服务的访问方式页签,单击frontend-external服务的外部端点。
在商品概览页面,单击任意商品,例如Air Jordan Legacy 312。

安装探针
回到容器服务控制台页面,单击左侧导航栏上方的 图标。
在集群列表页面的左侧导航栏中,单击应用目录。
在ack-ahas-pilot的详情页面,单击创建。表示探针已经部署完成。

通过架构感知查看系统整体架构
应用高可用服务控制台
自动恢复场景演练
在分布式系统设计中有一种容错策略是故障恢复(failback),通过健康检查等机制,能在机器或者应用出现问题时自动的进行重新部署。我们利用Chaos进行故障演练,测试我们的系统是否具有这样的能力

进行稳态假设。定义一个稳态指标,来评估系统的健康状态并且在实施混沌过程当中进行监控和处理。
我们将稳态定义为 能访问我们的frontend界面,并正常使用各种购物车、下单等功能。

模拟真实事件。
2.1 切换回应用高可用服务控制台。在左侧导航栏中,单击我的空间。
在演练场景页面,单击JAVA应用并选择容器内Java延迟,然后单击创建演练。
强弱依赖场景演练

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3天前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
14 0
|
4天前
|
存储 缓存 监控
【Docker 专栏】Docker 容器性能调优实战
【5月更文挑战第8天】本文探讨了Docker容器的性能调优技巧,包括理解容器性能指标(如CPU、内存、网络和磁盘I/O)并进行相应调优。重点讲述了CPU和内存的限制设置,网络配置优化以及磁盘I/O性能提升方法。通过实例展示了如何解决高CPU使用率问题,强调了根据应用需求进行调优的重要性,以实现更高效、稳定的容器运行。
【Docker 专栏】Docker 容器性能调优实战
|
5天前
|
前端开发 API 数据库
【Docker专栏】Docker Compose实战:编排多容器应用
【5月更文挑战第7天】Docker Compose是Docker的多容器管理工具,通过YAML文件简化多容器应用部署。它能一键启动、停止服务,保证开发、测试和生产环境的一致性。安装后,创建`docker-compose.yml`文件定义服务,如示例中的web和db服务。使用`docker-compose up -d`启动服务,通过`docker-compose ps`、`stop`、`down`和`logs`命令管理服务。
【Docker专栏】Docker Compose实战:编排多容器应用
|
5天前
|
运维 Linux Docker
Docker详解(十一)——Docker容器CPU资源限额实战Docker详解
Docker详解(十一)——Docker容器CPU资源限额实战
23 5
|
11天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
12天前
|
Linux 开发者 Docker
Docker容器化技术详解
【4月更文挑战第30天】Docker,一个开源的容器化平台,助力开发者通过轻量级容器打包应用及依赖,实现跨平台快速部署。核心概念包括:容器(可执行的软件包)、镜像(只读模板)、Dockerfile(构建镜像的指令文件)和仓库(存储镜像的地方)。Docker利用Linux内核功能隔离容器,采用联合文件系统构建镜像。广泛应用包括开发测试一致性、微服务部署、CI/CD以及本地到远程部署。通过安装Docker,编写Dockerfile,构建&运行容器,可实现高效灵活的应用管理。随着容器技术进步,Docker在云计算和DevOps中的角色日益重要。
|
12天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】 在快速发展的云计算时代,传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文将介绍如何利用容器技术搭建一套高效自动化运维系统,实现软件的持续集成(CI)与持续部署(CD)。文章首先探讨了现代运维面临的挑战,接着详细阐述了容器技术的核心组件和工作原理,最后通过实际案例展示了如何整合这些组件来构建一个可靠、可扩展的自动化运维平台。
|
12天前
|
Kubernetes 安全 持续交付
现代软件开发中的容器化技术探究
本文探讨了现代软件开发中的容器化技术,重点介绍了Docker和Kubernetes这两个主流容器化平台的原理和应用。通过分析容器化技术的优势和挑战,以及在不同开发环境下的应用场景,读者可以更好地理解容器化技术在提升软件开发效率和部署灵活性方面的价值。
|
13天前
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
|
13天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署(CI/CD)实践
【4月更文挑战第29天】 随着云计算和微服务架构的兴起,自动化运维已成为提升企业IT效率、确保系统稳定性的关键因素。本文旨在探讨如何利用容器技术构建一套高效的自动化运维体系,实现软件开发过程中的持续集成(CI)与持续部署(CD)。文章首先分析了传统运维模式面临的挑战,然后详细介绍了基于Docker和Kubernetes等容器技术的CI/CD流程设计与实施策略,并通过一个实际案例来展示该方案在提高部署频率、降低人力成本及提升系统可靠性方面的显著优势。