认识Docker

简介: 认识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 容器的机器环境,可以是物理机或者虚拟机。

 

相关文章
|
Linux 虚拟化 开发者
docker介绍之一
docker介绍之一
55 1
|
6月前
|
存储 运维 持续交付
|
3月前
|
运维 持续交付 Docker
在Docker中,Docker可以用来做什么?
在Docker中,Docker可以用来做什么?
|
5月前
|
存储 API 持续交付
Docker介绍(一)
Docker是开源的应用容器引擎,让开发者打包应用及依赖到可移植容器中,可在任何环境一致运行。它提供快速启动、高效资源利用、轻松迁移和维护,适用于开发、测试和生产。Docker由客户端、守护进程、REST API组成,支持镜像存储在仓库如Docker Hub。容器是隔离的执行环境,能在同一主机上互不影响地运行多个容器。
|
6月前
|
运维 Java 虚拟化
[Docker] Docker为什么出现
[Docker] Docker为什么出现
|
数据可视化 应用服务中间件 nginx
|
关系型数据库 MySQL 应用服务中间件
Docker
Docker 是一个开源的应用容器引擎,基于 Go语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
234 0
|
消息中间件 JavaScript 小程序
Docker 认错了!
Docker 认错了!
|
Ubuntu NoSQL Linux
了解和理解Docker的使用
Docker背景 Docker技术是基于Linux容器 虚拟容器技术的 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的
160 0
了解和理解Docker的使用
|
关系型数据库 Linux KVM
Docker是什么,有什么用?
Docker是什么,有什么用?
9486 0
Docker是什么,有什么用?