You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器如何挂载外部SQL Server存储文件及迁移备份数据

挂载外部存储到SQL Server容器

操作分为两步:先将Fortress/云存储挂载到Docker宿主机,再将挂载目录绑定到SQL Server容器内的存储路径。

  1. 挂载外部存储到宿主机
    如果是SMB协议的Fortress存储,在Linux宿主机上先安装cifs-utils,再执行挂载命令,注意要给SQL Server默认运行用户(UID/GID为10001)开放目录权限:
sudo apt install cifs-utils
sudo mount -t cifs //192.168.10.101/你的共享目录名 /mnt/sql-external-data -o username=共享账号,password=共享密码,uid=10001,gid=10001

如果是云厂商提供的NAS/对象存储挂载服务,直接按照对应云厂商的官方文档将存储挂载到宿主机/mnt/sql-external-data路径即可。
2. 绑定目录到SQL Server容器

  • 如果你还未创建容器,启动时直接加-v参数绑定目录:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=你的SA密码" \
-p 1433:1433 --name sqlserver \
-v /mnt/sql-external-data:/var/opt/mssql/data \
-d mcr.microsoft.com/mssql/server:latest
  • 如果你已经有正在运行的容器,先将容器内的现有数据库文件迁移到外部存储再重新挂载:
    • 停止容器:docker stop sqlserver
    • 拷贝容器内的数据库文件到外部存储目录:docker cp sqlserver:/var/opt/mssql/data/. /mnt/sql-external-data/
    • 确认文件权限:sudo chown -R 10001:10001 /mnt/sql-external-data
    • 用上面带-v参数的启动命令重新创建容器即可。

注意:如果容器和外部存储部署在不同网络环境,需要保障两端网络延迟低于20ms,否则会严重影响SQL Server读写性能

迁移备份文件到Windows设备

有两种常用方案:

  1. 中转拷贝方案
  • 先将备份文件从容器拷贝到Docker宿主机:docker cp sqlserver:/var/opt/mssql/data/xxxx.bak /宿主机本地路径/
  • 再从宿主机传输到Windows:如果是Linux宿主机可以用smbclient直接传到Windows共享目录,也可以在Windows端用scp命令拉取文件:
    scp 宿主机用户名@宿主机IP:/宿主机本地路径/xxxx.bak D:\你要存放的本地路径\
    
  1. 直接存储方案
    备份数据库时直接指定备份路径到已经挂载的外部共享目录,备份完成后直接从Fortress/云存储拷贝到Windows即可,无需经过容器中转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:06:03