容器 & Docker & Docker镜像 & Docker容器的关系和区别

最近在学docker,算是炒冷饭,之前接触过docker的一些基础内容,但没有系统深入学习,这次会比较系统的学习docker的基础知识和基本操作。挖个坑,会产出两篇博客,一片介绍docker关键基础概念,一篇介绍docker相关的实操。
这一篇会介绍docker相关的重要概念,一个是容器,一个是镜像。

容器

容器是虚拟技术的一种,其主要作用是提供给应用程序一个可以运行的环境和相关依赖。说到虚拟技术,当然会想到虚拟机,那让我们来看一下容器与虚拟机的区别。
图一
如上图所示,虚拟机和容器结构主要区别在于中间两层,虚拟机自带了操作系统,这个操作系统可以和宿主机一样,也可以不一样,而容器是和宿主机共享一个操作系统。我们知道,操作系统的内容是很多的,就像我们自己电脑上的操作系统一样,占用的内存很多,启停很慢,而且如果虚拟机安装的操作系统有更新,那更新也很麻烦,而且购买正版操作系统也是一笔不小的费用。而容器则没有这些烦恼,所以容器相对于虚拟机而言,既可以提供独立的软件运行环境,占用内存也小,启停速度快,操作更简单,更轻量级。

Docker

Docker不等同于容器,它是基于容器技术开发的一个应用,docker包含了运行一个应用程序所需要的所有东西,包括:代码、运行时、各种依赖和配置。那么这里面的代码、依赖、配置就是docker镜像包含的内容,而运行镜像里的内容则是容器做的事情,也就是运行时。

Docker镜像

Docker镜像是一个文件系统,上文提到,其中包含了应用程序运行时所需的源代码、依赖、配置等。我们自身的应用代码可以根据dockerfile构建出一个镜像,然后上传到镜像仓库。docker提供了公有镜像仓库docker hub,这里面的镜像可以供所有人下载使用。可以将镜像理解为软件安装包,下载之后就开箱即用。Docker容器里的镜像是可以层层叠加的,比如运行我们的应用程序,需要使用mysql数据库,需要python运行环境,那么docker容器里只要要有mysql镜像、python镜像、我们自己的应用程序镜像。Docker镜像是静态的,像软件安装包一样,没有运行环境是不可以运行的,那么docker容器就提供了这样一个运行环境。

Docker容器

Docker容器就是容器,在docker里,提供了运行docker镜像的运行时环境。运行容器时,在镜像层上面增加了一个读写层,可以对运行的容器做一些更改,但这些更改不会对镜像产生影响,如果关闭或删除容器后,这些更改也不会保存。那么如果保存运行时的一些数据,进行持久化存储,那就是卷(volume)做的事情,这是docker里的另一个概念,这里不做详述。

镜像和容器的关系

由上文描述可见,Docker容器和docker镜像都是docker系统的一部分,密切相关。镜像可以独立于容器存在,但容器得依赖于镜像,容器利用镜像来构建一个运行时环境以此运行一个应用程序。利用docker运行应用程序的过程一般如下:编写应用程序–》编写dockerfile–》根据dockerfile构建镜像–》上传镜像到镜像仓库–》使用docker容器运行该镜像。

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Docker 容器是运行在 Docker 上的一个进程,而 Docker 镜像则是容器运行所需的文件系统。容器镜像的实例,镜像容器的模板。容器是在镜像的基础上运行的,可以对镜像进行修改而不影响原镜像。 ### 回答2: Docker容器Docker镜像Docker技术中两个重要的概念。 Docker镜像是一个可执行的软件包,它包含了运行特定应用程序所需的一切,包括代码、运行时环境、系统工具、库文件等。它类似于一个模板,可以被用来创建多个相同的容器Docker镜像通常是通过Dockerfile文件定义的,其中包含了构建镜像所需的指令。 Docker容器是由Docker镜像创建而来的实例,可以看作是一个独立运行的应用。容器在运行时,会利用镜像中的文件系统以及其他必要资源启动应用,使其能够独立运行。容器是可随时创建、启动、停止、删除的,可以在不同的主机之间迁移。每个容器都是相互隔离的,拥有独立的进程、网络和文件系统空间。 可以将Docker镜像比作一个模板,而Docker容器则是由模板创建的实例。通过Docker镜像,可以创建多个具有相同配置和环境的容器镜像可以通过拉取远程镜像仓库的方式获取,也可以通过本地仓库的方式进行创建和管理。容器可以基于现有的镜像创建,也可以通过修改容器的配置和修改镜像内的内容来个性化定制。 总结来说,Docker容器是通过Docker镜像创建而来的独立运行的实例。镜像容器的基础,是用来创建和管理容器的模板。容器的创建和删除不会影响镜像,而镜像的修改和更新也不会影响已经创建的容器。 ### 回答3: Docker容器Docker镜像Docker技术中的两个基本概念。Docker镜像Docker构建和部署应用程序的基础,它是一个静态的文件,包含了运行应用程序所需的一切依赖项。镜像是由多个图层(layer)组成,每个图层都是镜像的一部分,包括操作系统、软件包、应用程序等。镜像是只读的,可以从Docker Hub或者其他镜像仓库获取,也可以通过Dockerfile文件或者Docker命令自行构建。 Docker容器是基于Docker镜像创建的一个可执行实例,是一个轻量级的、独立部署的运行环境。容器可以被启动、停止、删除和重新启动,容器中的应用程序可以以进程的形式在其中运行。容器通过对镜像进行读写,可以保存在文件系统中的任何更改,但并不修改原始的镜像。因此,容器是可移植的,可以在不同的环境中进行部署。 容器可以通过Docker命令运行,可以指定要使用的镜像、网络设置、外部设备的映射等参数。容器拥有自己的文件系统、网络空间和进程空间,它们之间相互隔离,互不干扰。容器可以快速启动和停止,可以根据需要进行扩展和管理。多个容器可以在同一个宿主机上运行,它们之间共享宿主机的资源。 总结来说,Docker镜像是一个静态的、只读的文件,提供了构建和部署应用程序所需的所有依赖项。Docker容器是基于Docker镜像创建的一个可执行实例,提供了独立的、轻量级的运行环境。容器可以快速启动、停止和管理,并可以共享宿主机的资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值