原来这个东西叫 Docker

2024-06-22 02:36
文章标签 docker 东西 原来

本文主要是介绍原来这个东西叫 Docker,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是徒手敲代码。

今天来聊聊 Docker

Docker Logo (PNG e SVG) Download Vetorial Transparente

三个时代的演变

首先要先了解 Docker 出现的背景。在计算机技术的发展历程中,我们经历了从物理机时代到虚拟机时代,再到容器化时代的演变。

物理机时代,应用程序直接运行在物理服务器上,每个应用程序需要独立的硬件资源。这种方式不仅成本高,而且资源利用率低,维护和管理也非常复杂。

为了提高资源利用率,虚拟化技术应运而生。虚拟机允许在同一物理服务器上,运行多个虚拟服务器,每个虚拟机都有自己的操作系统和应用程序。尽管虚拟化技术提高了资源利用率并简化了管理,但虚拟机仍然需要大量的系统资源,每个虚拟机的启动时间也相对较长。

后来,容器化技术的出现,解决了虚拟化技术的痛点。容器化技术允许在同一操作系统内核上运行多个隔离的用户空间实例,即容器。每个容器包含应用程序及其所有依赖项。容器化技术的出现解决了资源占用大、启动慢、管理复杂等问题。

Docker 的发展历程

2010年,在美国旧金山,一家名为 dotCloud 的初创企业诞生,它后来开发出了Docker这一革命性技术,引领了容器技术的风潮。

Docker 的前世今生 - 哈喽沃德先生的个人空间 - OSCHINA - 中文开源技术交流社区

Docker 的前世今生 - 哈喽沃德先生的个人空间 - OSCHINA - 中文开源技术交流社区

起初,Docker 是作为 dotCloud 内部的核心技术存在,但随后公司决定将其简化并标准化,冠以 “Docker” 之名,并配上标志性的鲸鱼图标向公众推出。

2013年,dotCloud 做出重大决策,将 Docker 开源,这一举动迅速吸引了全球工程师的目光,他们被 Docker 的高效与便捷所吸引,使其一跃成为最热门的开源项目之一。

Docker之所以能够迅速走红,核心在于它的轻量化特性。在此之前,虚拟机技术,尤其是 VMware 和 OpenStack,主导着市场。

虚拟机允许用户在一个操作系统内安装软件来创建多个独立运行环境,每个环境都能如同独立计算机一样运行应用程序。然而,虚拟机的缺点也很明显:资源消耗大、启动慢且需要较大的存储空间。

相比之下,Docker为代表的容器技术提供了轻量级的解决方案。它不需要复制整个操作系统,仅需创建一个小型、独立的运行环境(类似于沙盒),因此启动速度快、资源占用低,能够在单台主机上同时运行成千上万个容器。此外,Docker镜像体积小,通常仅为 MB 或 KB级别,远小于 GB 级别的虚拟机镜像。

Docker 的流行可以用两个核心理念来概括:“构建、运输、运行(Build, Ship and Run)”和“构建一次,到处运行(Build once,Run anywhere)”。具体来说:

  • 构建阶段,创建的是包含应用及其依赖、配置的不可变镜像,就像装载货物的标准化集装箱;

  • 运输则是指镜像可以在宿主机和镜像仓库(如Docker Hub这样的中央仓库)间便捷地传输;

  • 运行阶段,镜像被执行变为一个动态的容器,即应用的实际运行环境。

Docker 镜像本身是一种特殊的文件系统,它封装了应用程序运行所需的所有静态内容,确保了环境一致性。而 Docker Registry 服务则扮演着关键角色,负责存储和分发这些镜像,其中 Docker Hub 是最知名的公共镜像仓库,它维护着大量官方认证的高质量镜像,确保了镜像的安全性和可靠性。(国内使用 Docker 的话,就不要用 Docker Hub啦,用国内的镜像仓库吧)

简而言之,Docker通过其高效的构建、运输、运行模型,以及轻量级的容器化方案,彻底改变了软件开发和部署的格局,使得开发者能够更加灵活、高效地在不同环境中部署应用。

应用场景

Docker 的应用场景主要是以下这几个方面:

  1. 统一开发与生产环境:以往,开发、测试、生产环境的差异,比如应用服务端口在开发时为8080,生产环境却为80,可能导致配置错乱。Docker的引入确保了应用内部配置一致性,尽管容器外暴露端口可变,但这并不干扰应用的顺利部署与运行,加速了环境一致性的确立及部署流程。

  2. 缩减运营开销:传统部署伴随耗时的环境搭建与依赖问题。Docker利用镜像技术,将代码及其所需环境封装为单一镜像,仅需上传至容器即刻启动,大幅度缩短了软件部署周期。

  3. 增强PaaS平台效能:Docker使得单台物理服务器能够承载多份轻量级容器,这种架构显著提高了资源利用效率与运行速度。

  4. 环境隔离促进并行开发:借助Docker容器技术,开发者在同一硬件基础设施上能建立多个独立的运行环境,便于并行进行新应用的测试与开发,同时确保现有应用不受干扰,促进了开发和测试的高效协同。

  5. 自动化CI/CD流程:Docker容器无缝集成至持续集成(CI)与持续交付(CD)流程中,自动化这些关键环节,加速软件从开发到部署的每一步。

  6. 简化大规模部署与运维:凭借快速部署能力、可复制度及易管理性,Docker成为大规模应用部署与维护的理想工具,它使管理员能够高效管控复杂的应用群集。

这篇关于原来这个东西叫 Docker的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083044

相关文章

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke