Docker
是一个开源的应用容器引擎,基于Go
语言 并遵从 Apache2.0
协议开源。
Docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux
机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone
的 app
),更重要的是容器性能开销极低。
Redis
, ES
,Hadoop
等)非常的费时和费力.war
),需要Redis
,MySql
,JDK
,ES
等等,要是能够和环境一起打包,就会大大的减轻我们日常的开发部署难度。对于这两个问题,Docker都给了我们解决方案。
理解Docker可以从集装箱来形象理解,集装箱,最主要的作用就是隔离,Docker也是如此。
Docker核心思想就是把:环境打包封箱,隔离,每个箱子都是相互隔离的。
虚拟机:在window中安装一个windows,通过这个软件我们可以虚拟出来一台或者是多台电脑,非常的笨重。
虚拟机也属于是虚拟化技术,docker容器技术,也是一种虚拟化技术,
vm: linux centos (原生镜像,相当于就是一台电脑)隔离,需要开启多个虚拟机的时候,是非常大的,需要几十个g
docker: 隔离,镜像(最核心的环境,4m + jdk + mysql)十分的小巧,运行镜像就可以了,几个m kb 秒级启动。
虚拟机缺点:
容器技术:容器技术不是模拟的一个完整的操作系统
参考:
https://blog.csdn.net/weixin_46665411/article/details/125199737
https://www.runoob.com/docker/docker-tutorial.html
https://www.bilibili.com/video/BV1og4y1q7M4/?vd_source=606645816f49ad91794e7ab8f5e1dcd5