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

 

相关文章
|
2月前
|
物联网 数据处理 持续交付
Docker适合哪些场景
【10月更文挑战第18天】Docker适合哪些场景
|
25天前
|
安全 持续交付 Docker
Docker
Docker 是一种非常有前途的技术,它为应用程序的开发、部署和管理带来了极大的便利,相信在未来会发挥更加重要的作
|
4月前
|
存储 安全 数据安全/隐私保护
在Docker中,Docker安全么?
在Docker中,Docker安全么?
|
3月前
|
安全 Linux 虚拟化
Docker到底是什么?为什么它这么火!
如果你是数据中心或云计算IT圈子的人,这一年多来应该一直在听到普通的容器、尤其是Docker,关于它们的新闻从未间断过。
55 9
|
7月前
|
关系型数据库 MySQL Linux
初识 Docker
在这个快速发展的技术时代 , 我们经常面临着应用部署的复杂性、环境差异以及不同操作系统之间的兼容性问题 . 这些问题不仅消耗大量时间 , 还可能导致项目延期和成本增加 . Docker 的出现解决了我们在应用部署过程中遇到的障碍和挑战 . 通过将应用程序及其依赖环境封装在一个轻量级的、可移植的容器中 , Docker 不仅简化了开发和部署流程 , 还确保了不同环境间的无缝衔接和一致性 .
81 9
|
7月前
|
Linux 虚拟化 开发者
Docker(1)
Docker定义 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
|
运维 持续交付 开发者
Docker 的前世今生
Docker 的前世今生
74 0
|
Docker 容器 Kubernetes
docker
docker
128 0
|
JSON API 数据格式
docker详解
docker详解
99 0
|
Linux 虚拟化 开发者