Docker卷挂载与绑定挂载的区别小结

 更新时间:2025年10月09日 10:36:40   作者:你的人类朋友  
本文主要介绍了Docker卷挂载与绑定挂载的区别小结,卷挂载由Docker统一管理,适合生产环境数据持久化;绑定挂载需手动指定路径,便于开发调试和文件修改,下面就来具体了解一下

前言

我最开始接触 Docker 的时候,遇到 mysql 这样的容器,我一般使用卷挂载。它的好处就是将挂载的位置交给 Docker 管理,我们规定卷的名字即可,不需要关心挂载的位置。我感觉这样很方便,所以后面我基本一遇到挂载就用卷挂载。

但是最近,我慢慢地开始喜欢上绑定挂载了。特别是要部署一个什么环境之类的【如 n8n、redis】,都会优先使用绑定挂载。这个挂载方式会让我更有一种掌控感。

今天就来总结这两种挂载方式的相关知识。

正文

一、什么是 Docker 数据挂载?

在 Docker 中,数据挂载就是将宿主机(你的电脑)的目录或文件与容器内部的目录或文件进行关联。

这样做的目的是为了持久化保存数据,即使容器被删除,数据也不会丢失。

两种挂载方式

1. 卷挂载(Volume Mount)

卷挂载是 Docker 推荐的数据持久化方式。Docker 会在宿主机上创建一个特定的目录来管理这些卷,我们只需要指定卷的名称即可。

优点:

  • 由 Docker 统一管理,位置固定
  • 备份和迁移比较方便
  • 适合生产环境使用

docker-compose 示例:

services:
    mysql:
        image: mysql:8.0
        volumes:
            - mysql_data:/var/lib/mysql # 注意,直接写名称,mysql_data的前面没有./
        environment:
            MYSQL_ROOT_PASSWORD: changeme

volumes:
    mysql_data:

2. 绑定挂载(Bind Mount)

绑定挂载是将宿主机上的任意目录直接映射到容器中。你可以完全控制数据存储的位置。

优点:

  • 直观明了,知道数据具体存在哪里
  • 方便开发和调试,修改文件立即生效
  • 适合开发环境使用

docker-compose 示例:

version: '3.8'
services:
    nginx:
        image: nginx:alpine
        volumes:
            - ./nginx.conf:/etc/nginx/nginx.conf # 注意前方有个./
            - ./html:/usr/share/nginx/html # 注意前方有个./
        ports:
            - '80:80'

如何选择?

  • 卷挂载:适合数据库、应用数据等不需要经常【手动修改】的内容
  • 绑定挂载:适合配置文件、代码文件等需要频繁修改的内容

最后

两种挂载方式各有优势,选择哪种主要取决于你的使用场景:

  • 想要简单省心,让 Docker 管理数据位置 → 选择卷挂载
  • 想要完全掌控,知道数据具体在哪里 → 选择绑定挂载

关于如何选择的问题,总结如下:

卷挂载适合数据库、日志等让 Docker 自动管理的场景,你只需起个名字;

绑定挂载适合代码、配置等需要【频繁修改】的文件,你能【直接找到并编辑它们】。

再再再简单地说:数据交给 Docker 管用卷,自己要动手改就用绑定挂载。

到此这篇关于Docker卷挂载与绑定挂载的区别小结的文章就介绍到这了,更多相关Docker卷挂载与绑定挂载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker的镜像制作方法详解

    Docker的镜像制作方法详解

    这篇文章主要介绍了Docker的镜像制作方法的相关资料,文章讲解了Docker镜像的基本原理、结构和制作方式,镜像是创建Docker容器的基础,需要的朋友可以参考下
    2024-10-10
  • docker compose部署cassandra集群的操作代码

    docker compose部署cassandra集群的操作代码

    这篇文章主要介绍了docker compose部署cassandra集群的操作代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • 使用Docker快速搭建Redis主从复制的完整步骤

    使用Docker快速搭建Redis主从复制的完整步骤

    在现代应用程序中,Redis凭借其高性能和简便的数据结构被广泛使用,为了提高数据的可用性和可靠性,很多时候我们需要在Redis中配置主从架构,这篇文章主要介绍了使用Docker快速搭建Redis主从复制的完整步骤,需要的朋友可以参考下
    2026-01-01
  • 查看Docker停止容器占用的内存的实现方法小结

    查看Docker停止容器占用的内存的实现方法小结

    要查看 Docker 停止的容器占用的内存,可以通过以下几种方法来实现,Docker 提供了一些命令和工具来帮助你管理和监控容器的资源使用情况,需要的朋友可以参考下
    2024-11-11
  • Docker之阿里云服务安装Docker实践

    Docker之阿里云服务安装Docker实践

    这篇文章主要介绍了Docker之阿里云服务安装Docker实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • docker swarm 集群创建过程

    docker swarm 集群创建过程

    通过docker swarm 工具将一台或者多台安装了docker的服务器组成一个完整的集群,该集群中的node节点可以通过Leader节点管理,这篇文章主要介绍了docker swarm 集群创建,需要的朋友可以参考下
    2024-03-03
  • 安装Docker GPU版本的过程及遇到坑的解决

    安装Docker GPU版本的过程及遇到坑的解决

    本文主要介绍了安装Docker GPU版本的过程及遇到坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Docker Desktop启动后容器自启动关闭指南

    Docker Desktop启动后容器自启动关闭指南

    在使用 Docker Desktop 的时候,有些容器会在每次启动 Docker Desktop 后自动启动,但是这个服务我并不是每次都需要用,所以希望它不要跟随 Docker Desktop 自动启动,而是在需要的时候手动启动,所以本文给大家介绍了Docker Desktop启动后容器自启动关闭方法
    2026-06-06
  • Docker使用、容器迁移的方案详解

    Docker使用、容器迁移的方案详解

    Docker 是一个开源的容器化平台,用于打包、部署和运行应用程序及其依赖环境,本文给大家介绍Docker使用、容器迁移的方案,感兴趣的朋友一起看看吧
    2025-04-04
  • 完美卸载Docker的详细步骤

    完美卸载Docker的详细步骤

    Docker是一种流行的容器化平台,但是有时候我们可能需要卸载Docker,无论是因为需要重新安装版本,还是因为不再需要使用Docker,无论何种原因,正确地卸载Docker是很重要的,以确保系统的干净和稳定,下面跟大家详细介绍如何彻底卸载Docker的方法,让你能够轻松地清理干净
    2023-11-11

最新评论