Docker之镜像、容器、数据卷关系
一个 Image(镜像)可以创建多个 Container(容器);Container 挂载 Volume(数据卷)后,数据可以在删除旧容器、创建新容器后继续使用。
| 概念 | 含义 | 类比 |
|---|---|---|
| Images(镜像) | 包含程序及其运行所需文件的包,用来创建容器 | 菜谱 |
| Containers(容器) | 根据镜像创建的、相互隔离的程序实例;可以启动、停止、删除 | 按菜谱做出的一道菜 |
| Volumes(数据卷) | 挂载给容器使用的持久化存储,用来保留需要长期保存的数据 | 单独存放食材和记录的储物柜 |
Images 管程序包,Containers 管运行实例,Volumes 管持久数据。尤其删除数据库容器时,要先确认它的数据是否放在 volume 中;删除 volume 则需要单独留意,因为那是你想保留的数据
镜像可以创建多个容器。容器运行时能写入文件;但如果文件只保存在容器自身,删除容器时这些改动也会丢失。把需要保留的数据放进 volume 后,可以删除旧容器、用同一个镜像创建新容器,再挂载原来的 volume 继续使用数据。停止或重启容器本身不等于删除数据。