原来这个东西叫 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运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

Windows与linux中docker的安装与使用

windos中安装使用docker 下载Docker_Desktop 安装包进入docker官网下载Docker_Desktop: https://www.docker.com/ 启用wsl 我们搜索“启用或关闭Windows功能”,打开后勾选适用于Linux的Windows 子系统 Docker_Desktop设置 出现Docker Engine stopped的解决

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom

docker学习系列(三)docker使用

紧接着之前的博客,这一篇主要写如何使用docker 系列1:docker简介:http://blog.csdn.net/u013469562/article/details/72864323 系列2: docker安装:http://blog.csdn.net/u013469562/article/details/72865167 一、docker镜像的获取 1.1搜索可用镜像

docker学习系列(二)docker安装

接着之前的博客http://blog.csdn.net/u013469562/article/details/72864323,今天写一下docker的安装和使用 1.1docker的安装前置需求 首先docker目前的版本已经到了v17.03 本文采用centos6.6版本安装docker,其他操作系统可以参考其他博客,首先docker对于centos的需求如下 C