成为Docker Commiter需要具备哪些技术能力?


RT,除了学习Go语言以外,是不是需要对linux kernel有很深入的了解呢?
另外,docker的源码是否很难读懂呢?
已邀请:

苦逼少侠 - 去哪儿网互联网研发工程师,docker爱好

赞同来自: w00194035


只针对读docker源码回答一下。
可以去infoQ看一下宏亮的Docker源码分析系列。Docker的主体结构都有,剩下的就是细节了。

小璐 - 云雀科技市场,Container技术日报运营。

赞同来自: w00194035


Docker在GitHub上给出了Contributing to Docker的指南,以及Contributor Guide

最重要的,玩开源最好还是有个mentor带着你,可以通过以下各种方式多跟他们交流,寻找Mentor

屏幕快照_2015-04-13_上午11.43_.38_.png


最后再告诉你DockerOne里就有一位Docker Commiter,我才不会告诉你他叫肖德时。

xds2000 - 数人科技CTO

赞同来自: w00194035


参与顶级项目,技能肯定能获得提升。可以先从文档,源码看起。一步一个脚印的获得自己的成就。

xiaolunsanguo - 京东商城-南京研发中心-JDOS团队

赞同来自: w00194035


Docker的源码没一般想象的那么难。如果能懂Golang的话,并且理解Docker的一些相关技术如namespace、cgroup等,对于读代码是大有裨益的。

读代码,知道Docker是怎样工作的,这只是第一层。

如果想要贡献,那么你还需要更多:

首先,你要想一个issue。就是现有docker代码中有没有bug,或者你想给他丰富什么样的功能。可以首先在GitHub上提出你的issue。https://github.com/docker/docker/issues

然后,对于这个issue,你如果想到了解决,那是最好不过的了。你可以fork一下Docker的代码,然后在自己的Docker库里修改。

注意,关键点来喽!修改完,别着急提交pull request。你要先把你的代码格式化,规范一下。这个比较容易,用gofmt一下就好了。然后要自测。Docker内部有集成的自动化测试。直接make test一下就可以了。这些都通过了,自查没问题了。好了,你可以提交pull request。

GitHub的社区人员很活跃,一般会在一两天内就处理你的pull request。根据社区的讨论和反馈,再做修改,直到merge。

一上来不要想着就能给社区贡献一个很NB的功能。最好从一小点,比如一个小错误做起,慢慢尝试。希望与楼主共同进步!

要回复问题请先登录注册