为什么使用Docker
在我们日常开发中,如果环境不一致,代码跑出来的效果肯定有很多问题的。Docker 就可以达到统一运行环境的目的。Docker 的精髓就在于可以保证各个环境的一致性。当我们在本地开发后要把程序放到线上, 由于各种原因本地开发的机器可能要替换等等。那么开发环境一但改变, 就要重新为程序安装各种服务与扩展. 这些工作也许不难, 但是做为开发不应该做重复的事。使用docker后, 我们先把环境编排好后, 以后只要一条命令就可以完成环境的部署。
Docker与虚拟机的比较
- 虚拟机是虚拟了一个完整的系统,比如说我们可以在 Mac 电脑上启动一个 Windows 系统的虚拟机。虚拟机的优点是隔离性非常的强。缺点是因为是虚拟的完整的操作系统,所以性能损耗也比较大,也比较占用资源。
- Docker 则是使用了 linux 底层的 Namespace 和 Cgroups 。Namespace 主要是进行隔离,而 Cgroups 则是控制、限制资源比如说 CPU、内存等。 因此优缺点跟虚拟机相反;性能损耗非常小,但是隔离的没有虚拟机彻底。Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
Docker 三大核心概念
Docker的三大核心为:镜像、容器、仓库。
- 容器:仓库类似于 Github 。容器就是镜像的一个运行示例。 Docker容器类似一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
- 镜像:镜像类似于托管在 Github 上的 WordPress 源代码。镜像也是静态的。我要想得到一个容器我们就需要运行一个镜像。
- 仓库: