如何学习Docker

  1. 学习Docker,如果没有云计算的基本知识,以及内核的基本知识,那么学习并理解起来会稍吃力。作为容器,Docker容器的优势在哪,不足在哪,最好了解容器的实现是怎样的(简单了解);拥有镜像管理,Docker又该如何体现软件开发,集成,部署,发布,再迭代的软件生命周期管理优势。
  2. 关于学习资源,起码的硬件设施总是要有的。Docker及其生态的发展很快,不使用纯理论肯定收效甚微。另外,资源还包括Docker官方,各大电子媒体平台,技术论坛,开源社区等,往往大牛的观点能点破自己的困惑,或者让自己知道哪方面的认识还很欠缺,以及让自己少走很多的弯路。
  3. 个人兴趣的话,归结为强扭的瓜不甜。起码应该认同Docker的设计价值,以及Docker的未来潜力,当然有依据的批判Docker并带动大家的思考,也是深切关注的表现。
  4. 个人发展方向,个人认为如果需要把Docker当作软件生命周期管理工具的话,那用好Docker最为重要,API及命令的理解与使用是必需的。如果专注系统设计方面,那么除Docker以上的知识与经验之外,若有Docker源码的学习与理解,那么这些肯定会让你的Docker水平提高一个层次。

总结起来学习docker需要了解以下相关知识点:

  • 云计算概念相关(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 等)