小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
听说 Docker 好久了,昨天听同事说,我们测试环境的 linux 都不是物理机,都是 Docker,记得之前微信收藏了一篇介绍 Docker 的文章,便翻出来看了一下,有输入就要有输出,所以写篇小文,记下基本知识,本文只涉及 Docker 介绍,如果想详细了解,请阅读参考文章。
一.啥是 Docker
虚拟机 -> Linux 容器 -> Docker
- 虚拟机(virtual machine)
就是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统,比如在 Windows 系统里面运行 Linux 系统。
- Linux 容器 不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。
- Docker
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。
二.为啥使用 Docker
1.合作开发的时候,在本机可以跑,别人的电脑跑不起来。- 崩溃 2.服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了。- 倒霉 3.公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器。- 搞死
三.Docker 用途
Docker 的主要用途,目前有三大类。
(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
三.基本概念
- 镜像 Docker 把应用程序及其依赖,打包在 image 文件里面
- 仓库 存放 image
- 容器 运行 image