Docker 简介
Docker 是一个开源的应用容器 Container 引擎, 其可以让开发者将应用及应用运行的 环境打包到一个轻量级、可移植的镜像中,然后发布到任何流行的 Linux、Windows 机器上。
Docker 原本是由一个 PaaS 提供商 dotCloud 公司的创始人 Solomon Hykes 发起的一个内 部项目,是基于其多年云服务技术的一次革新,使用 Go 语言开发。2013 年 3 月开源,并 在 GitHub 上进行维护。后由于 Docker 项目的火爆,2013 年底,dotCloud 公司更名为 Docker, 公司域名也变更为了https://docker.com。
云计算中的服务包括三个层次: IaaS 、PaaS 、SaaS。 |
学习Docker推荐大家可以看动力哥的视频,课程适合零基础、技术提升乃至所有编程语言开发者;课程对应包含含基础篇、提升篇与高级篇,共计十二大章节。
课程主要学习知识点:“7个深度/3个全面”;针对Docker的知识体系,无需再查找任何其它资料。
课程中的源码、资料、工具、文档、作业分享给大家
动力节点Docker入门到进阶教程,docker全家桶实战攻略_哔哩哔哩_bilibili
Docker 的用途
1. 提供统一的运行环境
在生产环境中, 很多时候的开发、测试及上线环境都是不一样的, 从而导致项目(war 或 jar)在不同阶段出现很多其它阶段所不存在的奇怪的问题。
Docker 容器除了可以提供相同的应用外, 还提供了该应用的统一运行环境, 确保在任 何宿主机 HOST 上都可以跑出相同的结果。即 Docker = jar/war + 环境。
2. 便捷的应用迁移
由于 Docker 确保了统一的运行环境, 使得应用的迁移更加便捷。无论是物理机、虚拟 机、公有云、私有云,Docker 镜像的运行结果都是相同的。用户可以很方便地将一个平台 上运行的应用, 迁移到另一个平台上,而无需担心运行环境的变化导致应用无法正常运行。
3. 超快的启动时间
传统的虚拟机技术启动应用一般需要数分钟:首先需要启动虚拟机,然后再加载虚拟机 操作系统, 最后还需要再手工启动应用。而 Docker 容器应用, 由于直接运行于宿主机系统 中,无需启动操作系统, 因此可以做到秒级、甚至毫秒级的启动。
4. 更轻松的维护和扩展
Docker 公司及各个开源项目团队一起维护了一大批高质量的官方镜像, 既可以直接在 生产环境使用, 又可以作为基础进一步定制, 大大的降低了应用服务的镜像制作成本。
Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应 用的维护更新更加简单, 基于基础镜像进一步扩展镜像也变得非常简单。
容器与虚拟机的区别
Docker 容器的本质就是通过容器虚拟技术虚拟出的一台主机, 就像虚拟机一样。可以 将应用及其运行环境部署在这台虚拟出的主机上运行。但容器与虚拟机又有着本质的不同。
1. 普通系统中的程序运行原理
程序是一个对计算机硬件资源调度使用的指令序列。
编辑
2. 传统虚拟技术
编辑
传统的虚拟技术是在物理机的操作系统之上安装一个虚拟机管理程序,例如 VMware、 VirtualBox 等。在其管理下可以创建很多个虚拟机。每个虚拟机需要安装自己独立的操作系 统,而应用就是安装在虚拟机操作系统之上的程序,应用程序通过调用各种命令或库函数来 使用其需要的各种系统资源。
对于完全相同的两个应用,其若需要运行在两个虚拟机中,则就需要两套完全相同的虚 拟机操作系统与 bins/libs ,存在大量的资源占用冗余。形成资源浪费。
3. 容器虚拟化技术
Docker 容器运行在 Docker 引擎之上, 所有 Docker 容器共享同一个 Docker 引擎,但它 们的运行又是相互隔离、互不干扰的。由于 Docker 容器不需要进行虚拟硬件及操作系统,
而是共享的宿主机的硬件与操作系统,所以 Docker 容器对系统资源的占用很少,其仅包含 运行时必须的一些资源。所有 Docker 容器对于系统资源的使用都是由 Docker 引擎统一进行 管理, 所以对系统资源的利用率很高。无论是应用执行速度、内存损耗或者文件存储速度, 都要比传统虚拟机技术更高效。
标签:容器,教程,入门,虚拟机,应用,镜像,Docker,运行 From: https://www.cnblogs.com/javayyds12345/p/17192450.html