Docker
Docker 现在已经是互联网公司的标配了,我们通过这篇文章来了解一下 Docker 的相关概念。
原理
对于 Docker 的最简单但是有一定错误的认知是 Docker 是一种性能非常好的虚拟机。
Docker 比传统的虚拟机技术来说先进了不少,具体表现在 Docker 不是在主机上虚拟出一套硬件后再虚拟出一个操作系统,而是让 Docker 容器里面的进程直接运行在宿主机上(Docker 会做文件,网络的隔离)。这样一来,Docker 会体积更轻,跑的更快,同宿主下可创建的个数更多。
Docker 有三个核心概念:
- Image:镜像,Docker 中的镜像是分层的,可复制的。
- Container:容器是镜像运行时的一个载体。依托 Docker 的虚拟化技术,给容器创建了独立的端口,进程,文件等空间。Container 就是一个与宿主机器隔离的容器,可以与宿主机器进行 port,volumes,network 等的通信。
- Repository:Docker 的仓库与 git 类似。在本地构建镜像之后,可以通过仓库进行镜像的分发。
Docker 能做什么
-
多环境的部署切换
业务开发中往往需要区分开发环境与线上环境,利用 Docker 能原封不动的将开发环境中的代码与环境迁移到线上,配合一定的自动化流程即可实现自动的发布。
-
复杂环境一键配置
-
持续集成单元测试
-
同应用多版本隔离,文件隔离。