引言

当你犹豫到底要不要学Docker的时候,你发现GitHub中,很多开源项目都有dockerfile.yml,docker-compose.yml等文件的时候,于是你幡然悔悟:是时候学习docker了。

为什么要学Docker?

我学Docker的初衷主要有以下几个:

  1. 很多意向的Go后端岗位(互联网稍大一点规模的公司)需要具备Docker&K8S技能,面试过一家游戏公司,可能就是因为这一块被刷了。
  2. 自己的开源项目是分布式微服务架构,依赖mysql、redis等。要让别人快速体验,非常麻烦。
  3. ……
    还有一点就是云计算的火爆,比如各种XX云,他们背后的技术就是使用了Docker。
    但是归根结底,我认为是兴趣以及好奇,为什么Docker的出现,催生了云计算行业。让原来普通开发者要仰望的云服务器变得触手可及,一台公网服务器再也不用花几千上万,只需要几百就能用上一年。

哪些人要学Docker?

如果你:

  • 对Docker感兴趣
  • 对K8S感兴趣,一定要先学好Docker
  • 运维人员:特别从事和DevOps(持续集成)、CI/CD平台开发相关的。
  • 后端开发人员:会Docker将会是你的加分项。不管是Java/Go/Php/NodeJs等,都建议学习。
  • 前端开发人员:如果你的工作用到了node.js且你对docker感兴趣,建议你学。官方甚至为node.js准备了对应的入门教程!
  • 跳槽:如果你正准备跳槽,打算学一些新的东西给自己加分。恰好岗位需要掌握Docker,那还犹豫什么?从现在开始吧!

本教程和其他的有什么不同?

  • 我们不会面面俱到的介绍Docker,而是给你指引方向,告诉你哪里有好的资源,你应该先去看一看。看完了回来,然后给你一些进阶的内容(如何写Dockerfile,实践技巧,二阶段提交是什么,Docker Compose如何和Dockerfile结合,常用的Mysql、Redis如何集成到Docker Compose中)。
  • 虽然标题是7天入门,但可能你学完第一天的内容就初步会使用Docker了。第二天就会写Dockerfile了,后面的就是不断实践加深理解了!
  • 我经历最困难的一点就是:我花了2年时间在思考要不要学Docker,从哪里开始入门,最后,终于踏出第一步,没想到一周不到就初步掌握了!

所以,我总结一下和其他教程的不同:

  • 保持短小精悍
  • 一定要动手实践,通过触觉+视觉锻炼形成记忆,而不是一个视频看完了就完了,过去几天又忘记了。
  • 要有干货,要把平常常用的命令、实践技巧等放在附录里,以作为参考。可能一段时间过去了,花一点时间重温一下,又能快速回忆起。

学完本教程,你将获得什么?

  • 掌握Docker的基本使用,包括拉取镜像、容器、网络和映射、数据卷等等
  • 掌握Dockerfile和dockerfile.yml的编写,针对Go项目,推荐合适的基础镜像,以及运用多阶段提交,大幅度减下镜像体积
  • 掌握Docker Compose和docker-compose.yml的编写
  • 利用Docker Compose实现单机环境下的容器编排,包括
    • 如何从源码编译镜像,实时看效果
    • 内部容器之间如何进行网络通信,特别是依赖Mysql、Redis等的服务
    • 如何集成Mysql,实现创建用户(非root)、授权、初始化数据(执行SQL)
    • 如何集成Redis等等

持续更新中…

受限于公众号1天只能发一篇的限制,后续7篇交叉会陆续发布,敬请期待。预计内容如下:

  • 7天docker入门:第1天 getting-started
  • 7天docker入门:第2天 特定语言指南(Go)
  • 7天docker入门:第3天 Dockerfile实战
  • 7天docker入门:第4天 Docker Compose容器编排实战
  • 7天docker入门:第5天 Docker Compose接入MySQL
  • 7天docker入门:第6天 Docker Compose接入Redis
  • 7天docker入门:第7天 Docker Compose网络和运行
    请添加图片描述
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐