You need to enable JavaScript to run this app. Mac下Docker部署MSSQL时保存容器数据的最佳方式是什么?
优惠活动
大模型
产品
解决方案
定价
更多

Mac下Docker部署MSSQL时保存容器数据的最佳方式是什么?

MSSQL Docker 容器数据持久化最佳实现方案

优先用 Docker 命名卷 挂载MSSQL数据目录,这是Mac环境下兼容性最好、操作最简便的方案,不会出现文件权限、文件系统兼容性这类绑定挂载常见的问题。

具体操作步骤

  • 第一步:创建专属命名卷,专门用来存储MSSQL的所有数据、日志、备份文件
    执行命令:
    docker volume create mssql_test_data
  • 第二步:启动容器时挂载该卷到MSSQL Linux镜像的默认数据存储路径/var/opt/mssql
    完整启动命令示例:
    docker run -d \
      -e "ACCEPT_EULA=Y" \
      -e "SA_PASSWORD=你设置的强密码(需满足MSSQL规则:至少8位,包含大小写字母、数字、特殊字符)" \
      -p 1433:1433 \
      --name mssql_test \
      --mount source=mssql_test_data,target=/var/opt/mssql \
      mcr.microsoft.com/mssql/server:latest
    
  • 第三步:验证持久化效果
    首次启动后用DataGrip连接127.0.0.1的1433端口,创建测试库、插入测试数据后,执行docker rm -f mssql_test删除容器,再重新执行上面的启动命令创建新容器,重新连接就能看到之前的所有数据都完整保留。

额外注意事项

  • 不建议直接把Mac本地目录挂载到容器的/var/opt/mssql路径,Mac的APFS文件系统和Linux的权限模型不兼容,非常容易出现MSSQL进程无权限读写目录的报错,排查成本很高。
  • 如果需要备份整个数据库的数据,可以直接导出命名卷的内容到本地:
    docker run --rm --volumes-from mssql_test -v $(pwd):/backup ubuntu tar cvf /backup/mssql_data_backup.tar /var/opt/mssql
  • 只要不手动删除mssql_test_data这个命名卷,不管你删多少次容器、重启多少次Docker,数据都不会丢失。

内容的提问来源于stack exchange,提问作者Mahdi Amrollahi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 01:36:03