在Docker容器中处理持久数据时,绑定挂载和卷之间有什么区别?
我想知道为什么我们有两个不同的选项来做同一件事,两者之间有什么区别。
回答:
对于持久性数据,我们基本上有3种类型的卷或装载:
绑定坐骑
命名卷
dockerfile中的卷
绑定挂载基本上只是从容器内的主机绑定某个目录或文件(docker run -v /hostdir:/containerdir IMAGE_NAME
)
命名卷是您使用手动创建的卷docker volume create
VOLUME_NAME。它们是在它们中创建的/var/lib/docker/volumes
,只能由它们的名称引用。假设您创建了一个名为“
mysql_data”的卷,您可以像这样引用它docker run -v mysql_data:/containerdir IMAGE_NAME
。
然后在dockerfiles中有由VOLUME
指令创建的卷。这些卷也以以下/var/lib/docker/volumes
名称创建,但没有特定名称。他们的“名字”仅仅是某种哈希。在运行容器时将创建该卷,并且无论您是否启动容器,该卷都可以方便地保存持久数据-v
。开发人员可以说出重要数据在哪里以及应该保留哪些数据。
您要使用的功能主要取决于首选项或您的管理。如果要将所有内容保留在“
docker区域”(/var/lib/docker
)中,则可以使用卷。如果要保留自己的目录结构,则可以使用绑定。
,因为卷是由docker创建和管理的,并且绑定具有更大的失败可能性(同样由于第8层问题)。
如果使用绑定并想在其他主机上传输容器/应用程序,则必须重建目录结构,因为每台主机上的卷都更加统一。
以上是 在Docker容器中处理持久数据时,绑定挂载和卷之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/426840.html