在讲解Docker之前,我想请问大家,我们是如何给手机安装App的?
我想大家一定会说,这也需要考吗?这太简单了,直接在AppStore搜索你想要的软件,然后点击安装呀。
没错 !接着我想请大家回忆下,尤其是80后、70后,在PC时代,尤其是360软件管家
出现之前大家是如何安装软件的?那时候可不像现在这样“一站式”的,那时候很费劲,大概会有这么几个步骤:
- 百度搜索: 在百度搜索我们需要的软件名。
- 跳转软件网站: 接着跳转到中关村在线或者是下载天空等软件下载类网站。
- 迅雷下载: 为了加速下载,往往会弹出迅雷,几分钟后,软件下载到本地了。
- 手动安装: 在迅雷的下载目录,找到要刚才的软件,点击安装。然后输入若干信息,比如安装目录和数据目录等。如果遇到写注册表的,还需要输入机器密码等。
- 开始菜单: 最后在“开始”里找到刚安装的软件,点击运行。当然有的软件安装后,会提示是否直接运行。
- 更糟糕的: 如果这个软件是.Net或Java开发的,运行的时候,还会报错,提示我们得先下载.Net Framework或JRE,否则无法运行。
辛亏如今一切变得那么顺畅。然而,如果我们把视线从客户端App,转移到服务端看一看呢?程序员们安装服务器软件,多数公司还处在PC时代安装软件一样。研发人员需要把软件打包给运维人员,复杂点的,还可能需要附带一个安装手册,里面可能包含如何链接到数据库、如何做数据初始化、如何设置对其他服务的依赖等。我们就会想,难道服务端程序的部署就不能像AppStore那样吗?搜索,点安装,两步完成了。甚至更简单,程序写完了就自动部署?
的确可以,这就是今天要说的Docker
。在Docker的世界里,要求程序员把程序打包成一个叫做镜像
的东西,英文叫Docker Image
。接着把这个镜像,上传到镜像的AppStore,也就是术语里说的Docker Hub
镜像中心。最后其他人员(包括运维,甚至其他网友)都可以一键“点击部署/运行”。