Docker-构成SQL Server数据库在主机重启后的数据持久化。

问题描述 投票:4回答:1

我的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

如你所见,我有一个卷映射到主机上的一个目录:homemsqql:varoptmssql。

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

服务器启动,我可以看到数据被写入hosts目录。/home/mssql/*.

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

如果我使用 docker stack rm [stack name],或因维护原因重新启动主机等。

当SQL Server再次启动时,虽然 /home/mssql/* 仍然包含服务器最初创建的文件,如果我连接到服务器,databasetablesdata就不见了。

当服务器重新启动时,我是否需要重新连接数据库,或者是我遗漏了什么?

谢谢你

sql-server docker-compose
1个回答
0
投票

我写了完整的指令 https:/www.ernestech.comarticlesdetailssolved!!!-docker-compose-sql-server-data-persist-data-after-host-restart727。我建议使用docker-compose的 "3.2 "版本,在volumes下:将你的volumes定义成

volumes:
  - type: bind
    source: /location/folder
    target: /target/location/inDockerContainer
© www.soinside.com 2019 - 2024. All rights reserved.