Существует множество способов выполнить задачу восстановления. Если ваша резервная копия находится на подключенном томе, вы можете восстановить, используя sqlcmd, например:
run docker exec -it db /opt/mssql-tools/bin/sqlcmd -Usa -P<password> -Q"RESTORE DATABASE YourDatabase FROM DISK='/var/opt/mssql/backup/your-backup.bak';"
Вы также можете скопировать резервную копию в контейнер, используя docker cp
, и восстановить ее оттуда.
Если ваша цель - восстанавливать базу данных из подключенного тома при каждом запуске контейнера, вы можете создать собственный образ SQL Server с помощью команды RESTORE
(которая может быть инкапсулирована в сценарий оболочки). Ниже приведен пример dockerfile
:
FROM mcr.microsoft.com/mssql/server:2017-latest
CMD /opt/mssql-tools/bin/sqlcmd -U 'sa' -P $MSSQL_SA_PASSWORD -Q"RESTORE DATABASE YourDatabase FROM DISK='/var/opt/mssql/backup/your-backup.bak';" & /opt/mssql/bin/sqlservr