docker介绍

  • docker介绍

docker 介绍

  • docker 是一个应用容器引擎, 可以打包应用及其依赖包到一个可移植的容器中, 然后发布到任何流行的 Linux 或 Windows 机器上, 也可以实现虚拟化.
  • 为什么会有 docker, 因为开发和运维经常遇到一类问题, 那就是应用在开发人员的环境上运行没有任何问题, 但在实际生产环境中却 bug 百出.
    • 程序的运行从硬件架构到操作系统, 再到应用程序, 这些都是不同的层次, 但是开发人员往往只关注应用程序的开发, 而忽略了其他层次的问题.
    • docker 的出现就是为了解决这个问题, 它将应用程序及其依赖, 打包在一个容器中, 这样就不用担心环境的问题了.
  • 同步开发和生产环境, 使开发人员可以在本地开发, 测试, 部署应用程序, 而不用担心环境的问题. 显著提升了开发和运维的效率, 代价是一点点资源的浪费.

我极力建议所有开发者都学会使用容器进行开发和部署, 它以相对很低的代价, 为你的应用程序提供一个稳定的运行环境, 从而提高开发和运维的效率.

使用一些通俗的语言来描述使用 docker 的一种工作流:

  1. 从零创建一个开发的环境, 包含了操作系统, 应用程序, 依赖包, 配置文件等等.
    • 环境可以在任何地方运行, 也可以在任何地方创建.
    • 环境对源码编译的结果稳定且可预测, 行为完全一致.
    • 环境中程序的运行不会产生任何歧义.
    • 最好是可以使用声明式的方式来创建环境(docker-compose), 进一步减少环境的隐藏差异, 环境的一切都已在声明里展示.
  2. 创建一个 commit, 创建镜像, 这相当于一个快照, 保存当前的环境, 以便以后使用.
  3. 分享镜像给其它开发和运维, 大家基于相同语境同步展开工作.
  4. 随着业务的发展需求, 修改镜像, 重新创建 commit, 重新创建镜像, 重新分发.

docker 的基本架构