我的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就不见了。
当服务器重新启动时,我是否需要重新连接数据库,或者是我遗漏了什么?
谢谢你
我写了完整的指令 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