热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

图表君聊Docker开篇

图表君聊Docker-开篇今天是图表君聊Docker的第一篇,为什么会有这个系列呢?容器技术Docker出现已经有一段时间了,之前零零星星的也看过一些文章,图表君的项目上也在使用D
图表君聊Docker-开篇

今天是图表君聊Docker的第一篇,为什么会有这个系列呢?容器技术Docker出现已经有一段时间了,之前零零星星的也看过一些文章,图表君的项目上也在使用Docker。但对于Docker技术的理解仅仅皮毛而已,工作上用到也只是写写DockerFile,遇到问题的时候Google一下。最近刚好参加了Docker培训,正好趁着这个机会,深入学习一下。一句话总结Docker,这货真是个改变世界的技术。

Docker的由来

Docker原来只是dotCloud公司的内部业余项目,基于Go语言实现,后来开源并加入了Linux基金会,自开源后收到了广泛的关注和讨论,后来dotCloud将公司都改名为Docker Inc. dotCloud公司原本的产品发展的并不如意,但是凭借Docker做的风生水起了,真是柳暗花明又一村。所以呀,很多朋友们都有自己的side Project,只要大家觉得自己的想法是有趣,有用的。坚持做下去,谁也不知道会不会是下个Docker。

Docker的技术特点

Docker的技术特点,相信大家都比较的了解了。相比较于传统的虚拟化技术,Virtual Machine包含了一套完整的OS,每个VM上都有自己的GUEST OS。而一个Docker Container并不包含一个OS,只包含这个App和其依赖,所以Docker Container更加的轻量快速。下边这张图大家一看就明白了。

《图表君聊Docker-开篇》
《图表君聊Docker-开篇》

Docker怎么安装呢

Docker是基于Linux的容器技术,所以天生在Linux上安装十分的简单。

curl -sSL https://get.docker.com/ | sh

对于Mac,喜大普奔的是Docker现在原生的支持Mac了。到Docker官网上,下载Docker的安装包,简单的几步next,Docker就安装好了。Docker for Mac

至于Windows,图表君没试过,官网有windows的教程,大家可以参考。

Docker到底解决了什么问题

一个新技术的出现,备受追捧,必定是解决了一些很多的问题。Docker这么红火到底是解决了什么问题呢?最直观的是,Docker让开发,测试,生产环境,彻底的统一了,统一了,统一了。

有没有小伙伴有这样的经历,线上出了一个问题,我们查了半天。what the fuck!我本地没问题啊,于是乎上测试环境,生产环境,吭哧吭哧查半天,当你开始怀疑人生的时候,然后发现是环境配置问题。内心一万个草泥马飞过。现在好了程序写好,做成镜像。想在那里部署运行都行。

另外目前什么样的软件架构最火,当然是微服务了啊。图表君的项目上都是采用微服务的构建,一个Project,7到8个Repo是很常见的。为了我们搭建开发环境,这些services都得启动起来。于是乎一个个的启动。太麻烦了。想当初图表君为了看一个CSS的修改效果,不得不启动3个service,我内心是奔溃的。(虽然是仅仅多run了几条命令而已,然而程序员都很懒的)现在好了一个docker compose up。所有的service都起好了,太方便了,太方便了。

目前,docker还大多运用在开发和测试环境上,但是Docker运用在生产环境上,只是时间的问题了。原来在为了run一个简单的job,我要启动一个instance,来处理出来。现在我只要简单的run一个docker container就OK了。节省了多少资源成本和时间。特别是对于图表君这种仅仅只有一台阿里云服务器来说,可以做更多的事情了。特别利用DaoCloud这样的云服务,代码的提交,测试,发布,部署,一下全搞定。生活简直太美好了。

好了,开篇就写这个多了。下篇文章开始进入正题。如果你还不知道什么是docker,应该更新下知识库了。上docker的官网,安装docker,然后跟着图表君一起学习吧。

原创文章,欢迎转发,但请标明出处。欢迎关注图表君的公众号,一起成长。在微信中搜索 “多彩数据” 或者 “Data_Visualization”

《图表君聊Docker-开篇》


推荐阅读
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 本文旨在介绍一系列提升工作效率的浏览器插件和实用小工具,帮助用户在日常工作中更加便捷高效。内容由原作者授权发布。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 本文详细记录了一位Java程序员在Lazada的面试经历,涵盖同步机制、JVM调优、Redis应用、线程池配置、Spring框架特性等多个技术点,以及高级面试中的设计问题和解决方案。 ... [详细]
  • 本文提供了多个关键点来帮助开发者提高Java编程能力,包括代码规范、性能优化和最佳实践等方面,旨在指导读者成为更加优秀的Java程序员。 ... [详细]
  • RabbitMQ 核心组件解析
    本文详细介绍了RabbitMQ的核心概念,包括其基本原理、应用场景及关键组件,如消息、生产者、消费者、信道、交换机、路由键和虚拟主机等。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 本文探讨了服务器系统架构的性能评估方法,包括性能评估的目的、步骤以及如何选择合适的度量标准。文章还介绍了几种常用的基准测试程序及其应用,并详细说明了Web服务器性能评估的关键指标与测试方法。 ... [详细]
  • 深入解析链表成环问题:剑指Offer第22天的新视角
    本文将详细介绍链表成环问题的多种解法,包括哈希表法、JSON.stringify特殊解法及双指针法,并提供详尽的代码示例。阅读本文,你不仅能够掌握这一经典算法问题的核心技巧,还能了解到更多编程思维的拓展。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
author-avatar
博瑞装饰王龙骏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有