首页 > 解决方案 > Docker-Compose SQL Server 数据库在主机重启后持久化数据

问题描述

我的 Docker-Compose.yml:

version: "3"
services:
 db:
  image: microsoft/mssql-server-linux:2017-CU8
  ports: 
    - 1433:1433
  deploy:
    mode: replicated
    replicas: 1 
  environment:
    - ACCEPT_EULA=Y
    - MSSQL_SA_PASSWORD=SuperStrongSqlAdminPassword)(*£)($£)
  volumes:
    - /home/mssql/:/var/opt/mssql/
    - /var/opt/mssql/data

如您所见,我有一个卷映射到主机上的目录:/home/mssql:/var/opt/mssql/

如果我这样做:docker stack deploy -c docker-compose.yml [stack name]

服务器启动,我可以看到数据已写入主机目录:/home/mssql/*.

然后我连接到服务器并创建一个数据库、表并添加一些数据。

如果我然后使用 杀死堆栈docker stack rm [stack name],或者出于维护原因重新启动主机等。

当 SQL Server 再次启动时,虽然它/home/mssql/*仍然包含服务器最初创建的文件,但如果我连接到服务器,数据库/表/数据就消失了。

当服务器以某种方式重新启动时,我是否必须重新附加数据库,或者我可能缺少其他东西?

谢谢

标签: sql-serverdocker-compose

解决方案


推荐阅读