Docker是一个开源的容器技术,用于将应用程序及其依赖项打包成一个可移植的、自包含的容器,以便在各种环境中运行。
个人理解
开发了一个项目 可以在本机运行 但是如果版本更新 可能就会导致服务不可使用 后期我们维护起来就很繁琐 因为对于每一个机器 我们都得进行环境的部署呀 配置
比如: 我在window系统下开发了一个项目(jar+redis+ES+Kafka+...) 但是我现在准备部署到服务器上去 因为不能夸平台 所以我还得重新去按照配置环境什么的 但是docker 就可以让我们 直接将项目打包然后部署上线了 不用一个个单独去维护。
虚拟机技术:
通过 软件 模拟的具有完整 硬件 系统功能的、运行在一个完全 隔离 环境中的完整 计算机系统
虚拟机的缺点:
资源占用多、冗余步骤多、启动慢
容器技术:
容器化技术不是模拟的一个完整的操作系统
新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导
Docker有着比虚拟机更少的抽象层。
docker利用的是宿主机的内核,vm需要是Guest OS
Docker和虚拟机技术的区别:
容器(Container)
镜像(Image)
Docker Hub
Docker 是一个Client-Server结构的系统,Docker的守护进程运行在主机上。
通过Socket从客户端访问!
DockerServer 接收到Docker-Client的指令,就会执行这个命令!