1.什么是docker容器
Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包
他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了 docker
引擎的服务器上(包括流行的 Linux 机器、windows 机器),也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。
几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不
依赖于任何语言、框架包括系统。
2.容器与虚拟机
VM:传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,
在该系统上再运行所需应用进程。
Docker:容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,
而且也没有进行硬件虚拟。
Hypervisor 是虚拟机管理者,不但协调着硬件资源的访问,也同时在各虚拟
机之间施加防护。传统虚拟机的 Guest OS 层、Hypervisor 层在 docker 中被
docker engine 层所替代。
特性:
⚫ 更高效的利用系统资源
由于 Docker 工作在进程级别,不需要进行硬件虚拟以及运行完整操作系统
等额外开销,所以 Docker 对系统资源的利用率更高。相比虚拟机技术,一个相
同配置的主机,往往可以运行更多数量的应用。
⚫ 更快速的启动时间
传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由
于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫
秒级的启动时间。大大的节约了开发、测试、部署的时间。
⚫ 一致的运行环境
由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过
程中被发现。Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运
行环境一致性,从而不会再出现 “这段代码在我机器上没问题啊” 这类问题。
⚫ 更轻松的迁移
Docker 确保了执行环境的一致性,无论是物理机、虚拟机、公有云、私有
云,甚至是笔记本,其运行结果是一致的。因此可以很轻易迁移到任意上,而不
用担心运行环境的变化导致应用无法正常运行的情况。
⚫ 更轻松的维护和扩展
Docker 使用的分层存储以及镜像的技术,Docker 团队同各个开源项目团队
一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为
基础进一步定制

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐