前言
Docker 是一个
开源的应用容器引擎
,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的
Linux或Windows
操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列正在发展中,喜欢Python、Java的朋友们可以关注一下哦!
Docker对用户的应用程序使用容器技术遵循的五个步骤和GRSEC
Docker对用户的应用程序使用容器技术遵循的五个步骤
随着Docker在
云计算市场
中领先地位的日益稳固,容器技术也成为了一种主流技术。为了对用户的应用程序使用容器技术,可遵循以下五个步骤。
云计算解释
云计算
起源于美国。据说美国军方研究了一种新的密码,为了测试其保密度,军方就将乱码公布,并且告知天下谁能在期限内破解密码,就有重金相赠。其实密码的破译,就是对计算机运行速度的要求。有个小伙子,他通过将世界各国的计算机联合起来,
组成了一种计算机云网,最终就破译了密码。
美国军方从这件事意识到任何密码都是可以破译的,于是提出了一种云计算的概念。
云计算定义
七种应用诠释不同之处
如今,硬件产品飞速发展,使得互联网上数据量飞速的的增长,海量数据作为一个概念被提出时,单位以GB上升到TB计算。而对于个人计算机,一个新概念的提出,使得用户根本就不必承受如此海量的数据计算,云计算这个如今已成为又一风靡的概念给出了应用的另一种形式。
如果说,用“云”被当做是现今用户应用的Internet互联网来理解的话,那么当“云”与“计算”联合起来后,其含义就变得复杂化。不同的用户和厂商将云计算定义也不相同,通常是指由虚拟服务器组成的公用/效用计算
(Utility computing)
的升级版。而一种说法也存在于行业中,认为任何在防火墙外的操作均可以被视为“云计算”,甚至包括常规的外包应用。而对于这些所谓的定义,很难形象的一一说清,如今比较领先的云计算厂商的先后推出自己的策略,包括
Amazon、Google、Salesforce、微软、SUN、IBM、Oracle
以及EMC的云策略,并初步探讨了云计算对企业的影响,下面这个视频是简单明了解释什么是云计算。
实际上,当我们考虑到IT的实际需求时,云计算的概念也会逐渐清晰起来:
在不增加硬件基础设施投资
,无须训练新员工或不购买新软件的前提下,来增加资源容量或提升计算性能的一种方法。云计算包含了所有通过网络实时订购或者按照使用量付费(pay-per-use)的服务模式,扩展了IT行业的现有能力。
云计算还处于萌芽阶段,尽管有各类厂商在开发不同的云计算服务,从成熟的应用程序到存储服务再到垃圾邮件过滤不一而足,通过种种迹象可以说明,各类云计算的开发商和集成商正在兴起,云计算也将走入企业应用。
正文开始
Docker容器技术
已在云计算市场中风靡一时了,而众多主流供应商则面临着技术落后的窘境。对于刚入门的新手来说,容器技术可实现不同云计算之间应用程序的可移植性,以及提供了一个把应用程序拆分为分布式组件的方法。此外,用户还可以管理和扩展这些容器成为集群。
在企业用户准备把应用程序迁往容器之前,理解应用程序的迁移过程是非常重要的。这里将介绍把用户应用程序迁往Docker容器的
五个基本步骤
。
步骤1
分解。一般来说,应用程序都是复杂的,它们都有很多的组件。例如,大多数应用程序都需要数据库或中间件服务的支持以实现对数据的存储、检索和集成。所以,需要通过设计和部署把这些服务拆分成为它们自己的容器。如果一个应用程序能够被拆分成为越多的分布式组件,那么应用程序扩展的选择则越多。但是,分布式组件越多也意味着管理的复杂性越高。
步骤2
选择基础映像。当执行应用程序迁移时,应尽量避免推倒重来的做法。搜索Docker注册库找到一个基本的Docker映像并将其作为应用程序的基础来使用。
随着时间的推移,企业将会发现这些Docker注册库中基本映像的价值所在。请记住,Docker支持着一个Docker开发人员社区,所以项目的成功与否很大程度上取决于用户对于映像管理和改良的参与度。
步骤3
安全管理问题。安全性和管理应当是一个高优先级的考虑因素;企业用户不应再把它们当作应用程序迁移至容器的最后一步。反之,企业必须从一开始就做好安全性和管理的规划,把它们的功能纳入应用程序的开发过程中,并在应用程序运行过程中积极主动地关注这些方面。
这就是企业应当花大功夫的地方。
基于容器的应用程序是分布式应用程序。企业应当更新较老的应用程序以支持联合身份管理方法,这将非常有利于确保分布式应用程序的安全性。为了做到这一点,应为每一个应用程序组件和数据提供一个的标识符,这个标识符可允许企业在一个细粒度的级别上进行安全性管理。企业用户还应当增加一个日志记录的方法。
步骤4
增加代码。为了创建镜像,企业用户需要使用一个Dockerfile来定义映像开发的必要步骤。一旦创建了映像,企业用户就应将其添加至Docker Hub。
步骤5
配置测试部署。应对在容器中运行的应用程序进行配置,以便于让应用程序知道可以在哪里连接外部资源或者应用程序集群中的其他容器。企业用户可以把这些配置部署在容器中或使用环境变量。
对基于容器的应用程序进行测试类似于对其他分布式应用程序的测试。企业可以对每个容器进行组件测试,并将容器集群作为一个整体进行测试。 确定应用程序应如何能够在负载增加的情况下进行扩展。如果用户正在使用一个集群管理器
(例如Swarm)
,则可测试其性能。
最后,把容器部署到实际生产环境中。为了积极主动地关注基于容器的应用程序的运行状况,可考虑实施必要的监控和管理机制 。确保打开日志记录功能。
很多应用程序迁移至云计算都是采用容器技术的。虽然迁移有一点复杂,但是容器可以保护应用程序投资并赋予了它一个更长的使用寿命。
GRSEC
grsec是
linux kernel
安全相关的patch, 用于保护host防止非法入侵。由于其并不是docker的一部分,这里只进行简单的介绍。
grsec可以主要从4个方面保护进程不被非法入侵:
- 随机地址空间 - 进程的堆区地址是随机的
- 用只读的
memory management unit
来管理进程流程, 堆区和区内存只包含数据结构/函数/返回地址和数据, 是non-executeable
- 审计和Log可疑活动
- 编译期的防护
安全永远是相对的,这些方法只是告诉用户可以从这些角度考虑container类型的安全问题可以关注的方面。
恒川赠书活动
恒川赠书活动第一期:
618,清华社 IT BOOK 多得图书活动开始啦!活动时间为2023年6月7日至6月18日,清华社为您精选多款高分好书,涵盖了C++、Java、Python、前端、后端、数据库、算法与机器学习等多个IT开发领域,适合不同层次的读者。全场5折,扫码领券更有优惠哦!
特惠购书查看详细
抽奖活动:
- 《 Spring Cloud微服务快速上手 》
- 《 项目驱动零起点学Java 》
- 《 Python从入门到精通(微课精编版)》
⭐本次活动一共赠书3本,评论区抽取3位小伙伴免费送出!!
⭐参与方式:关注博主、点赞、收藏、评论区评论 “ 人生苦短,我爱Python!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!!!)
⭐ 活动截止时间:2023-06-12 21:00:00
⭐通知方式:私信通知 (上述三本书里面选一本)
如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下⭐,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。
版权归原作者 热爱跑步的恒川 所有, 如有侵权,请联系我们删除。