如何学习Docker


对于在校学生而言,应该如何去学习docker?毕竟学校没有具体的应用需求作为引导,所以应该如何去研究Docker?还有,Docker的源代码有没有必要去研究?
已邀请:

shlallen - DaoCloud软件工程师,合伙人

赞同来自: 田浩浩 chenfeikeji tifayuki wangzi19870227 西弗尔 xiaolunsanguo hellogirl styshoo更多 »


首先我说明下,我是一位在浙江大学VLIS实验室云计算项目组的学生,使用过Docker,研究过Docker及其源码,也定制过Docker。

对于学生如何学习Docker,我认为首先要看一下学生个人的知识背景、能利用的资源资源、以及个人兴趣和发展方向。

1.学习Docker,如果没有云计算的基本知识,以及内核的基本知识,那么学习并理解起来会稍吃力。作为容器,Docker容器的优势在哪,不足在哪,最好了解容器的实现是怎样的(简单了解);拥有镜像管理,Docker又该如何体现软件开发,集成,部署,发布,再迭代的软件生命周期管理优势。以上两点我认为最为关键,有这两方面的认识势必会对之后的工作帮助巨大。

2.关于学习资源,起码的硬件设施总是要有的。Docker及其生态的发展很快,不使用纯理论肯定收效甚微。另外,资源还包括Docker官方,各大电子媒体平台,技术论坛,开源社区等,往往大拿的观点能点破自己的困惑,或者让自己知道哪方面的认识还很欠缺,以及让自己少走很多的弯路。

3.个人兴趣的话,归结为强扭的瓜不甜。起码应该认同Docker的设计价值,以及Docker的未来潜力,当然有依据的批判Docker并带动大家的思考,也是深切关注的表现。

4.个人发展方向,我认为如果需要把Docker当作软件生命周期管理工具的话,那用好Docker最为重要,API及命令的理解与使用是必需的。如果专注系统设计方面,那么除Docker以上的知识与经验之外,若有Docker源码的学习与理解,那么这些肯定会让你的Docker水平提高一个层次。

xds2000 - 数人科技CTO

赞同来自: DockOne tifayuki hellogirl


学习Docker,最大的好处是跟进新技术发展方向。我觉得在校生应该没有多少硬性需求在Docker的研究上,这也是为什么学校没做具体应用要求的原因。最实际的做法是看一些Docker使用案例,自己实践出一些经验应该会再以后的社会实践中起到作用。

研究docker的源代码,应该到你下定决心从事云计算方面的事业或者研究,那么你就需要以研究者的身份去做仔细的源码分析的工作。

我作为参加工作的过来人来说,我认为只有你真正参加工作后,在工作中学习跟有意义,毕竟Docker知识云计算其中的一个软件平台而已,说不来等你毕业了,新的技术出现Docker不一定是唯一选择。
作为学生了解新技术确实无可厚非,一定要能把理论转化为生产力才是正道。

9lives - 爱生活,爱云计算。

赞同来自: JCheng hellogirl wangheng1912


学习任何一个开源新技术,首先问自己几个问题:
1. 为什要学习它?
2. 学习它需要了解哪些相关知识点?
3. 如何快速学习?
4. 该技术的使用场景是什么?

拿我个人的学习经验来举例(本人之前比较了解OpenStack)

  1. 为什要学习docker?
    回答:
    docker是轻量级虚拟化技术,docker使linux容器技术的应用更加简单和标准化
    docker的速度很快,容器启动时毫秒级的
    docker将开发和运维职责分清
    docker解决了依赖地狱问题
    docker支持几乎所有操作系统
    docker有着飞速发展的生态圈
    很多IT巨头逐渐加入和支持

  2. 学习它需要了解哪些相关知识点?
    回答:
    云计算概念相关(restapi, 微服务,OpenStack)
    Linux 系统管理(软件包管理,用户管理,进程管理等)
    Linux 内核相关(Cgroup, namespace 等)
    Linux 文件系统和存储相关(AUFS,BRFS,devicemapper 等)
    Linux 网络(网桥,veth,iptables等)
    Linux安全相关(Appmor,Selinux 等)
    Linux进程管理(Supervisord,Systemd etc)
    Linux容器技术(LXC等)
    开发语言(Python, GO,Shell 等)


3.如何快速学习?
回答:个人体会最好有一个实际的需求或项目来边实践边学习,入门可以参考(第一本docker书)写的不错,非常适合入门。除此之外,阅读牛人的blog比如官方blog http://blog.docker.com/
最后,参与社区互动也是很好的学习方式。
  1. 该技术的使用场景是什么?
    回答:docker非常适用于dev/test CI/CD 场景,用完就扔。还有就是PasS了。


欢迎大家讨论。

西弗尔 - 要么牛逼,要么滚蛋

赞同来自: hellogirl


你好!我也是在校的学生,也在自己学习docker,多多交流啊!

田浩浩 - wizmacau developer

赞同来自:



https:// github.com /llitfkitfk/docker-tutorial-cn/
BTW: 熟读docker文档

tuxknight

赞同来自:


楼上各位说的都很好,我再补充一点:
找份相关的实习工作

lancer

赞同来自:


工作和研究是两个方向我个人认为,工作需要通过你的实际效能为企业带来经济效益,而研究的话可以专注某个点。但是研究离不开工作,因为工作可以让你更好的理会技术带来的价值,以及如何提供更好的服务,用户使用场景需要那些技术的突破。有了这些认识,然后更加专注的研究某个技术点,这样或许可以说技术和商业是分不开的。

绿剑色影

赞同来自:


docker现在十分火热,值得学习一下。

要回复问题请先登录注册