认识Docker

Docker 是世界领先的软件容器平台,所以想要搞懂 Docker 的概念我们必须先从容器开始说起。

1.1 什么是容器?

先来看看容器较为官方

一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。

容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。

容器化软件适用于基于 Linux 和 Windows 的应用,在任何环境中都能够始终如一地运行。

容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

#再来看看容器较为通俗的解释

如果需要通俗地描述容器的话,我觉得容器就是一个存放东西的地方,就像书包可以装各种文具、衣柜可以放各种衣服、鞋架可以放各种鞋子一样。我们现在所说的容器存放的东西可能更偏向于应用比如网站、程序甚至是系统环境。

1.2 图解物理机,虚拟机与容器

关于虚拟机与容器的对比在后面会详细介绍到,这里只是通过网上的图片加深大家对于物理机、虚拟机与容器这三者的理解(下面的图片来源于网络)。

物理机:

虚拟机:

容器:

通过上面这三张抽象图,我们可以大概通过类比概括出:容器虚拟化的是操作系统而不是硬件,容器之间是共享同一套操作系统资源的。虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统。因此容器的隔离级别会稍低一些。

什么是 Docker?

Docker 是一种开源的应用容器引擎,它可以让开发者将应用程序以及所有依赖项打包到一个可移植的容器中,然后发布到任何运行 Docker 的机器上。Docker 使用容器来隔离应用程序及其依赖项,实现了真正的资源隔离,使得应用程序在容器内运行时与主机系统完全隔离。

Docker的思想来自于集装箱,一个以容器的形式将应用程序及其所有依赖项打包在一起的平台。它使用容器使应用程序的创建、部署和运行变得更加容易。Docker在容器内绑定应用程序及其依赖项。容器允许开发人员将应用程序及其所需的所有部分(例如库和其他依赖项)打包在一起,然后将其作为一个包发送出去。

Docker 容器具有以下特点:

  1. 轻量级:容器与主机共享同一个操作系统,无需启动额外的操作系统,因此容器比虚拟机更加轻量级,启动速度更快。
  2. 可移植性:容器可以在任何运行 Docker 的机器上运行,无论是 Linux 还是 Windows,无论是服务器还是桌面环境。
  3. 隔离性:每个容器都有自己的文件系统、进程、网络等,相互之间完全隔离,保证了应用程序之间的互不影响。
  4. 可扩展性:容器可以很方便地进行扩展,只需简单地启动多个容器实例即可。
  5. 快速部署:由于容器包含了应用程序及其所有依赖项,因此可以快速部署到目标环境中。

使用 Docker 有以下原因:

  1. 简化部署:Docker 容器使得应用程序的部署变得更加简单,无需考虑不同环境之间的差异,只需将容器部署到目标环境即可。
  2. 提高资源利用率:Docker 容器共享宿主操作系统的内核,因此可以充分利用系统资源,提高资源利用率。
  3. 便于持续交付和部署:使用 Docker 可以快速构建和测试环境,并且可以在任何地方将其部署到任何环境中,实现快速部署和持续交付。
  4. 跨平台性:由于 Docker 容器内包含了应用程序及其所有依赖项,因此可以在不同的操作系统和平台上运行,实现了真正的跨平台性。
  5. 可扩展性:Docker 容器可以很方便地进行扩展,只需简单地启动多个容器实例即可,使得应用程序能够轻松地应对高并发和高流量的访问。
  6. 便于容器化管理:使用 Docker 可以很方便地进行容器化管理,例如启动、停止、重启、删除等操作都可以通过简单的命令实现。
  7. 便于监控和管理:使用 Docker 可以很方便地对容器进行监控和管理,例如查看容器的资源使用情况、日志等。

Docker 的基本概念包括以下几个:

  1. Docker 镜像(Image):Docker 镜像是用于创建 Docker 容器的模板,包含了运行应用程序所需的所有文件和依赖项。
  2. Docker 容器(Container):Docker 容器是运行应用程序的实际环境,由 Docker 镜像创建而来。每个容器都是相互隔离的运行环境。
  3. Docker 仓库(Repository):Docker 仓库是用于存储和管理 Docker 镜像的地方。可以将 Docker 镜像上传到公共仓库或者私有仓库中进行管理和分发。
  4. Dockerfile:Dockerfile 是用于定义 Docker 镜像构建过程的文本文件。它包含了用于构建 Docker 镜像的所有指令和配置信息。
  5. Docker Host:Docker Host 是运行 Docker 容器的机器环境,可以是物理机或者虚拟机。
相关推荐
迪康coolmu7 分钟前
迪康Defender网络准入控制系统落地实战:部署、配置与问题排查记录
运维·开发语言·网络·经验分享·php
Dovis(誓平步青云)7 分钟前
一年1956亿行:智能电表场景下的时序数据存储实践
运维·前端·自动化·音视频·prometheus
不停喝水17 分钟前
【前端转全栈java速通课】 项目实战④12-14节 拦截器过滤器和全局配置-cors跨域设置-token体系-利用session做验证码
java·开发语言·前端·ai·容器
小白鸽i17 分钟前
【linux】麒麟桌面版安装人大金仓V8
linux·运维
Ruiery22 分钟前
Linux 6.6内核内存管理深度解析(三):页表与缺页处理 — 虚拟地址怎么按需映射到物理页
linux·运维·服务器
研发小能23 分钟前
DevOps 流水线怎么选?自研、开源拼装还是企业级平台
运维·开源·devops·嘉为蓝鲸
迪康Defender30 分钟前
终端安全行为分析:审计日志如何转化为业务报表?落地实践与避坑指南
运维·经验分享·安全·信息可视化·自动化·安全威胁分析·运维开发
专注API从业者42 分钟前
告别手工盯盘:用 Open‑Claw 搭建电商商品自动化监控与数据分析实战
运维·数据结构·数据挖掘·数据分析·自动化
大盛供应链·卢生43 分钟前
集成电路出口金额增长的原因有哪些
容器·新浪微博
Rebecca_aLi44 分钟前
码匠教育:从手工表格到脚本自动化,Python 改造工作流的思路
运维·python·自动化