Docker简介

前言

本文由网络搜索提炼整理而出

优势

  1. 更高效的利用系统资源;

docker对系统资源的利用率更高,无论是应用执行速度,内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机往往可以运行更多数量的应用。

  1. 更快速的启动时间;

传统的虚拟机技术启动应用服务往往需要数分钟,而docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级,甚至毫秒级的启动时间,大大的节约了开发测试,部署的时间。

  1. 一致的运行环境;

开发过程中常见的一个问题是环境一致问题,由于开发环境,测试环境,生产环境不一致,导致有些bug并未在开发过程中发现。而docker的镜像提供了除内核外完整的运行时环境,确保环境一致性,从而不会在出现“这段代码在我机器上没问题”这类问题。

  1. 持续支付和部署;

对开发和运维人员来说,最希望就是一次创建和部署,可以在任意的地方运行。(定制应用镜像来实现集成、持续支付、部署。开发人员可以通过dockerfile来进行镜像构建,并结合持续集成系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署)。而且使用dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

  1. 更轻松的迁移;

由于docker确保了执行环境的一致性,使得应用的迁移更加的容易。docker可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云、甚至是笔记本、其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

  1. 更轻松的维护和拓展。

docker使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得十分简单。此外,docker团队同各个开源项目团队一起维护了一大批高质量的官网镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

概述

    在传统的虚拟化方案中,使用虚拟机来实现资源的隔离和共享,但这种方式效率较低,因为每个虚拟机需要独立占用一部分硬件资源,包括操作系统。而Docker 采取了一种不同的方式,利用操作系统级虚拟化技术来实现资源的隔离与共享。
    在 Docker 中,主机上运行一个 Docker 守护进程,也称为 Docker 引擎。Docker引警负责管理 Docker 容器的生命周期、创建和销毁容器等操作。而每个 Docker 容器都是一个独立的运行环境,包含了应用程序、所需的库以及运行所需的操作系统内核。
    Docker 容器与主机之间的资源共享是通过将主机上的文件系统挂载到容器内部实现的。这样一来,容器内的应用程序能够直接访问主机上的文件,并能够共享主机上的资源。这种共享机制使得容器可以高效地利用主机上的资源,避免了资源的几余。
    同时,Docker 也提供了一种灵活的网络模式,实现容器与主机之间的网络隔离在Docker 中,每个容器都有自己的IP地址,可以与其他容器或主机进行通信。这种网络隔离机制使得容器之间的通信更为简单和安全,并且可以轻松地在多个主机之间进行容器迁移。
    另外,Docker 还为容器提供了资源限制的功能,即通过限制容器使用的 CPU内存、磁盘等资源来实现隔离。这样一来,每个容器都只能使用分配给它的一部分资源,不会对其他容器或主机造成干扰。通过合理地配置资源限制,可以保证每个容器都能够得到足够的计算能力,并提高系统的整体稳定性和可靠性。
    值得一提的是,Docker还支持通过命名空间和控制组等 Linux内核特性来实现资源的隔离。命名空间可以将容器中的进程与宿主机上的其他进程隔离开来,从而避免了进程间的冲突。控制组则可以限制容器使用的系统资源,如 CPU、内存、磁盘等。通过这些技术手段,Docker 能够实现对容器的精细化控制和隔离。
    综上所述,Docker 容器与主机之间的资源共享和隔离机制是其备受青睐的一个重要原因。通过文件系统的挂载、网络隔离、资源限制以及 Linux 内核特性的利用Docker 实现了高效的资源利用和隔离,使得容器化成为了软件开发和部署的首选方案。对于开发者和运维人员来说,深入理解和灵活运用这些机制,将能够更好地利用 Docker 的优势,提高系统的可靠性和效率。

你可能感兴趣的:(云原生,docker,容器,运维)