本文共 986 字,大约阅读时间需要 3 分钟。
Docker是基于 go 语言的云开源项目,其思想是“一次封装,处处运行”,这个是不是和 Java 的“一次编译,处处运行”很相似。所以 Java 的跨平台性很优秀,Docker 也一样,不过它是提高了整个项目的跨平台性。
生产中很现实的一个问题,开发给了运维一个完成的项目,但是运维那边的环境与开发的不一样,可能会出现“”我这里好好的怎么到你这就不行了”的问题。Docker 就是来解决这个问题,实现软件带环境安装解决了系统、配置、数据、代码等问题,在部署集群时不必再在一个个服务器上挨个安装 jdk、tomcat、Nginx 了,只用安装已经打包好的镜像即可轻松完成部署。
Docker 架构图:
Docker 共享宿主机内核、资源、网络和端口,有自己独立文件系统的一个轻量级的虚拟机,容器与容器之间是完全的沙箱操作,如果容器出问题,直接kill后rm完全不会影响到宿主机而且把主要文件夹(比如数据库的data目录和log目录)挂载到宿主机。
虚拟机:模拟一个完整的操作系统,包括硬件层面,启动时间是分钟级的。
Docker:只取精华不模拟硬件,高度浓缩版的 Linux系统,用宿主机内核,虚拟化技术。
什么是虚拟化可以参考这篇文章:
我们来理解一下仓库、镜像、容器这三个概念。
简单理解:
没有安装 Docker 的小伙伴可以看我这一篇博客:
转载地址:http://kzprn.baihongyu.com/