Docker定义
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
基于Docker定义的理解
1、Docker是开源的。
2、Docker可以把服务器分隔成多个容器,这些容器是互相隔离的(沙箱机制)。
3、Docker可以把服务器的配置及已安装的应用进行整体备份为一个镜像,以方便再次部署应用。
沙盒,军事术语,做军事作战演练、模拟与指挥之用,用一定的比例制作地形模型以及放置代表军队与武器布置的模型或图案。现在随着电脑技术的发展,大多以电脑来实现。
沙盒(英语:sandbox,又译为沙箱),计算机专业术语,在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。
Docker结构图
Docker Daemon守护进程
Docker Image镜像
Docker容器是用镜像创建的运行实例
Docker优点
1、docker环境统一了操作系统环境
开发和运维可以各自使用任意型号的linux系统,如redhat、ubuntu。
但docker要求linux的内核在3.8以上,所以centos6除外。另外,windows虽然也可以安装docker,但不建议使用。
2、docker镜像统一了程序打包方式
无论使用java、python、nodejs还是其它语言开发的程序,都统一地封装为docker镜像
开发人员把编写的jar包+Redis+Mysql+JDK打包成docker镜像来发布
3、docker容器统一了程序部署方式
java -jar xxx --> docker run ...
python xxx.py runserver --> docker run ...
npm run dev --> docker run ...
Dockers缺点
单机使用,无法有效集群
随着生产上容器数量的上升,管理成本攀升
...
Docker容器编排工具
K8S