2019-06-01

Docker解决的主要问题

有过后台开发经验的同学,一定遇到过下面这些问题:

程序在开发环境跑得好好的,但是部署到生产环境,却状况频出;

假设某个程序要在客户的环境上进行部署,虽然在自己的环境上部署、验证成功,但始终担心客户的环境上缺少某些必要的库文件,或者某些文件的版本不符合要求;

那么,有了docker,这些问题都将不复存在。

什么是Docker

Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开发了一个网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。

如果不好理解,我们再拿集装箱打个比方。

集装箱解决了什么问题呢?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

docker也是类似的理念。我们可以在一台机器上跑多个互相毫无关联的docker容器,每一个容器就相当于一个集装箱。

Docker里的几个基本概念

镜像

镜像可以理解为一堆静态的文件

容器

容器则是镜像run起来之后的一个实例。镜像之于容器就好比面向对象编程里的class之于object。

仓库

镜像需要地方保存,这个地方就是仓库。

你可能感兴趣的:(2019-06-01)