docker是当下是用的最多的虚拟化技术,那必须要学习一波。学习之前先搞清楚三个问题
- 什么是docker
- docker解决了工作中的那些问题
- 理清楚docker中的几个概念
什么是docker
先解决第一个问题,docker到底是个啥玩意。docker是一种虚拟化技术,通俗的讲,docker类似一个虚拟机,可以虚拟出一个主机。在docker中,每个容器相互隔离,容器内的程序不能跨容器直接交互。容器之间可以通过网络或者共享文件交互。但是docker不是虚拟机,docker与虚拟机相比,docker是轻量级的,可以做到秒级启动,docker占用的系统开销也是很低的。用过虚拟的都知道,虚拟机启动很慢,而且会占用宿主机很大的内存和cpu资源。使用docker,几乎感觉不到docker的存在。
docker解决了工作中的那些问题
docker解决了工作中的那些问题。很多时候,由于开发环境和线上环境是不同的,比如在windows下开发,程序最终部署到linux上。很多时候,会因为依赖库的问题,导致程序运行报错。java,php,C++等这些程序,在开发环境中是正常的。但是在运行环境中,由于缺失运行所依赖的库,导致程序报错或者无法运行。当你费劲九牛二虎之力配置好运行环境时,老板告诉你,还有100台服务器需要配置,你是不是瞬间就奔溃了。
使用docker就可以解决这个问题。只需要把要部署的程序打包成一个docker的镜像,然后在用docker把镜像生成容器,使用容器运行。再也不用配置运行环境了,不管有多少台机器,只需要把docker镜像导入,就可以非常简单的部署一台机器。docker为啥能做到呢,其实这个打包成镜像的过程,已经把运行程序必备的一些库,全都打包进镜像中了,当程序在容器中运行时,就不会因为环境的问题导致报错了。
docker中的几个概念
- 镜像(Images):镜像是一个文件,是用镜像文件可以创建容器。比如我们装系统时,会用到windows的系统镜像,一般是一个**.iso** 文件,docker中的镜像这就是一个类似的文件。
- 容器(Container): 容器是一个可以通过docker运行的实例,像我们装机完成后的系统一样。
- 仓库(Repository):仓库是一个存放docker镜像的网站,类似一个网盘,这里保存着很多镜像,可以通过网络下载这些镜像
- 主机(Host):一个物理机或者虚拟机,比如我们的电脑、云服务器。用于执行 Docker 守护进程和容器
- 客户端(CLient):Docker 客户端通过命令行与 Docker 的守护进程通信。就是我们操作docker的工具
总结一下,镜像可以看做是面向对象中的 类,容器就是 对象,同样的,一个镜像也可以创建多个容器
至于怎么安装docker,网上教程太多了,就不赘述了。建议在linux上安装docker,没有linux的可以在windows中装一个虚拟机,虚拟机装linux,然后在装docker。我就是这样弄的。