【Docker】说说卷挂载与绑定挂载

前言

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

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

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

正文

一、什么是 Docker 数据挂载?

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

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

两种挂载方式

1. 卷挂载(Volume Mount)

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

优点:

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

docker-compose 示例:

yaml 复制代码
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 示例:

yaml 复制代码
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 管用卷,自己要动手改就用绑定挂载。 2.【Docker】说说卷挂载与绑定挂载2.【Docker】说说卷挂载与绑定挂载

相关推荐
serendipity_hky2 分钟前
【go语言 | 第4篇】goroutine模型和调度策略
后端·性能优化·golang
狂炫冰美式12 分钟前
《预言市场进化论:从罗马斗兽场,到 Polymarket 的 K 线图》
前端·后端
hahjee27 分钟前
Go编写的ANSI终端颜色和样式控制库在OpenHarmony PC上的完整适配实战
开发语言·后端·鸿蒙
小火锅啊1 小时前
java实现生成PDF文件
后端
老华带你飞1 小时前
健身房预约|基于springboot 健身房预约小程序系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·小程序
paopaokaka_luck1 小时前
基于SpringBoot+Uniapp的自习室预约小程序(腾讯地图API、Echarts图形化分析、二维码识别)
vue.js·spring boot·后端·spring·echarts
树洞RoBot1 小时前
Spring框架深度解析:从核心原理到企业级实战
后端
..过云雨1 小时前
15-2.【Linux系统编程】进程信号 - 信号保存(信号处理流程的三种状态:未决、阻塞、递达,信号保存由未决表完成、sigset_t信号集类型及相关函数)
linux·c++·后端·信号处理
喵个咪1 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:Makefile 在后端开发中的应用与 Windows 环境配置
后端·go
LaoZhangAI1 小时前
Gemini图像生成宽高比教程:10种比例完整配置指南【2025】
前端·后端