问题描述
在服务器上部署一个应用的运行环境,要安装各种软件,非常耗时间。假如我们要将应用迁移到另一台服务器上,需要重新搭建环境,即便使用相同的配置文件和软件版本,也可能发生意想不到的状况,更何况从Window系统上迁移到Linux系统这种跨平台。
Docker是什么
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker的作用
- 轻盈高效:Docker运用容器虚拟化技术,将应用程序及其所有依赖项打包于独立容器中。与传统虚拟机相比,容器的启动速度更快,资源占用更少,使应用程序能够以更高效的方式运行。
- 可移植灵活:Docker容器化的应用程序可在支持Docker的任意环境中运行,不受底层操作系统、硬件的限制。这种可移植性方便开发人员将应用程序部署至不同环境,避免因环境差异引起的兼容性问题。
- 快速部署:借助Docker镜像机制,开发人员可将应用程序及其依赖打包成镜像,部署时只需运行该镜像,极大简化了部署过程,节省时间和精力。
- 灵活扩展:Docker允许用户通过创建多个容器实例进行横向扩展,以满足不同负载和流量需求。同时,Docker支持容器间互联通信,使应用程序能以微服务方式组织,提高系统的灵活性和可扩展性。
名词解释
名词 | 说明 |
---|---|
仓库(Repository) | 仓库可以理解为是一个代码控制中心,里面包含了很多常用的镜像 |
镜像(Image) | 镜像是用于创建docker容器的模版,是一种特殊的文件系统,它不仅包含了容器运行所需的程序、库、资源和配置文件,还包含了一些为运行时设置的配置参数。镜像中不包含动态的数据,其内容在构建之后也不会改变 |
容器(Container) | 镜像和容器就像是面向对象程序设计中的类与示例一样。镜像是静态的定义,容器是镜像运行起来的实体。容器之间彼此隔离,不会相互影响,一个镜像可以对应多个容器。 |