Docker 入门 (01) CenterOS 配置 docker

Docker 入门 (01) CenterOS 配置 docker,第1张

序言:

本次教程是我第一次学习docker时候写下的笔记和心得 , 用的云服务器也是新安装纯净的centeros 系统 , 过程中可能涉及到一些额外的系统 *** 作,

本系列文章不会涉及太多的理论和原理,更倾向于 *** 作,适合新手无脑上手, 请各位大神手下留情啊,如果有更好的 *** 作方法,欢迎留言支出错误,互相学习

目标:

通过本次学习,让大家可以在centeros 系统中 快速安装docker

环境信息:
运营商: 百度云盘
系统: centeros 80 64位

*** 作步骤:
结语:

如果大家运行最后一步,能够顺利看到 success相关信息 , 证明docker已经安装成功了!

Docker部署WEB 应用时,本地可以成功打开测试页,在公网上(阿里云服务器)却不能打开。

1、环境:阿里云服务器
2、CentOS7系统
3、Docker成功部署

这里前提docker 已经成功部署啦,现有有一个简单的测试案例,在docker上部署一个应用从而访问web。

接下来让我们尝试使用 docker 构建一个 web 应用程序。

我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

通过 -p 参数来设置一样的端口:

docker ps 查看正在运行的容器

容器内部的 5000 端口映射到我们本地主机的 5000 端口上。

这时我们可以通过浏览器访问WEB应用

访问失败

指定外网端口为5000,

1 本地测试能否打开测试页

本地没有问题。

2 浏览器中访问

在任意一台电脑上输入公网IP+端口号 (此端口号为运行WEB应用时指定的端口号5000) 如我的阿里云公网IP为123111111 此时在任意一台有网络的浏览器地址栏输入公网IP:>IBM中国研究院高级研究员陈冠诚主要从事Big Data on Cloud,大数据系统性能分析与优化方面的技术研发。负责和参与过SuperVessel超能云的大数据服务开发,Hadoop软硬件协同优化,MapReduce性能分析与调优工具,高性能FPGA加速在大数据平台上应用等项目。在Supercomputing(SC),IEEE BigData等国际顶级会议和期刊上发表过多篇大数据数据处理技术相关的论文,并拥有八项大数据领域的技术专利。曾在《程序员》杂志分享过多篇分布式计算,大数据处理技术等方面的技术文章。以下为媒体针对陈冠诚的专访:
问:首先请介绍下您自己,以及您在Spark 技术方面所做的工作。
陈冠诚:我是IBM中国研究院的高级研究员,大数据云方向的技术负责人。我们围绕Spark主要做两方面的事情:第一,在IBM研究院的SuperVessel公有云上开发和运维Spark as a Service大数据服务。第二,在OpenPOWER架构的服务器上做Spark的性能分析与优化。
问:您所在的企业是如何使用Spark 技术的?带来了哪些好处?
陈冠诚:Spark作为新一代的大数据处理引擎主要带来了两方面好处:
相比于MapReduce在性能上得到了很大提升。
在一个统一的平台上将批处理、SQL、流计算、图计算、机器学习算法等多种范式集中在一起,使混合计算变得更加的容易。
问:您认为Spark 技术最适用于哪些应用场景?
陈冠诚:大规模机器学习、图计算、SQL等类型数据分析业务是非常适合使用Spark的。当然,在企业的技术选型过程中,并不是说因为Spark很火就一定要使用它。例如还有很多公司在用Impala做数据分析,一些公司在用Storm和Samaza做流计算,具体的技术选型应该根据自己的业务场景,人员技能等多方面因素来做综合考量。
问:企业在应用Spark 技术时,需要做哪些改变吗?企业如果想快速应用Spark 应该如何去做?
陈冠诚:企业想要拥抱Spark技术,首先需要技术人员改变。是否有给力的Spark人才会是企业能否成功应用Spark最重要的因素。多参与Spark社区的讨论,参加Spark Meetup,给upstrEAM贡献代码都是很好的切入方式。如果个人开发者想快速上手Spark,可以考虑使用SuperVessel免费的Spark公有云服务,它能快速创建一个Spark集群供大家使用。
问:您所在的企业在应用Spark 技术时遇到了哪些问题?是如何解决的?
陈冠诚:我们在对Spark进行性能调优时遇到很多问题。例如JVM GC的性能瓶颈、序列化反序列化的开销、多进程好还是多线程好等等。在遇到这些问题的时候,最好的方法是做好Profiling,准确找到性能瓶颈,再去调整相关的参数去优化这些性能瓶颈。
另一方面,我们发现如果将Spark部署在云环境里(例如OpenStack管理的Docker Container)时,它的性能特征和在物理机上部署又会有很大的不同,目前我们还在继续这方面的工作,希望以后能有机会跟大家继续分享。
问:作为当前流行的大数据处理技术,您认为Spark 还有哪些方面需要改进?
陈冠诚:在与OpenStack这样的云 *** 作系统的集成上,Spark还是有很多工作可以做的。例如与Docker Container更好的集成,对Swift对象存储的性能优化等等。
问:您在本次演讲中将分享哪些话题?
陈冠诚:我将分享的话题是“基于OpenStack、Docker和Spark打造SuperVessel大数据公有云”:
随着Spark在2014年的蓬勃发展,Spark as a Service大数据服务正成为OpenStack生态系统中的新热点。另一方面,Docker Container因为在提升云的资源利用率和生产效率方面的优势而备受瞩目。在IBM中国研究院为高校和技术爱好者打造的SuperVessel公有云中,我们使用OpenStack、Docker和Spark三项开源技术,在OpenPOWER服务器上打造了一个大数据公有云服务。本次演讲我们会向大家介绍如何一步一步使用Spark、Docker和OpenStack打造一个大数据公有云,并分享我们在开发过程中遇到的问题和经验教训。
问:哪些听众最应该了解这些话题?您所分享的主题可以帮助听众解决哪些问题?
陈冠诚:对如何构造一个大数据云感兴趣的同学应该会对这个话题感兴趣,开发SuperVessel的Spark as a Service服务过程中我们所做的技术选型、架构设计以及解决的问题应该能对大家有所帮助

1Docker 技术可谓是近年最火热的技术之一,铺天盖地的技术论坛和各种讲座,大家都在分享关于如何容器化及如何使用Docker优化自己运维和开发流程的经验。随着Docker技术的逐渐普及,使用Docker已经不再是一个难题。现在更加重要的是生产环境容器化的最佳实践,另外就是容器的编排框架之争。但是,对于技术人员来说,除去Docker 外表的繁华外,什么是容器,容器到底是怎么创建的,容器底层的技术探秘也是非常重要的。2014年开始接触 Docker的时候,经历了从最初的新奇—感叹竟然还有Docker 这样的好工具,到逐渐熟悉Docker的各种功能,尝试在生产环境中使用Docker技术的过程。但是,每每被人问到:“Docker技术到底是怎么实现的呢”我只能粗粗浅浅地说:“Docker是使用Linux Kernel的Namespace 和 Cgroups实现的一种容器技术。”那么,什么是Namespace,什么是Cgroups,Docker是怎么使用它们的,容器到底是怎么一步步被创建出来的问到这些,我就会支支吾吾地不知所以。由此可见,了解容器技术的底层技术,然后明白它们是如何工作的,尤为重要,这些才是整个容器技术的基石,掌握了这些基石才能更加容易地向上攀登。

2从docker的用途上来考虑,看docker能否解决你工作中遇到的问题。例如在实际开发过程中,经常遇到的持续集成问题,软件开发,测试,部署,如何做成自动化的。配合github Jenkins和docker实现自动化部署,系统持续集成。docker最重要的是编排,如何合理有效稳定的管理各个容器,调度容器。可以看看k8s,自己动手搭建跑跑看。docker本身并没有引入新的技术,都是在linux原有的基础上做的融合。可以关注docker源码分析。UCloud也支持Docker,推出了UDocker产品。UCloud - 专业云计算服务商。

docker的资源利用率高,系统开销小
Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。
其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。
传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
2更快速的交付和部署
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来
部署代码。
Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员
更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约
开发、测试、部署的时间。
3更高效的虚拟化
Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效
率。
4更轻松的迁移和扩展
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器
等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
5更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和
更新,从而实现自动化并且高效的管理。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12794377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存