跳转至

docker-compose 启动 sqlserver2017

compose.yaml

services:
  sql-server-db:
    container_name: sql-server-db
    image: mcr.microsoft.com/mssql/server:2017-latest
    ports:
      - "1433:1433"
    environment:
      MSSQL_SA_PASSWORD: "sasadadsadah4xA!sds"
      TZ: Asia/Shanghai
      ACCEPT_EULA: "Y"
    volumes:
      - ./data:/var/opt/mssql/data
      - ./log:/var/opt/mssql/log
      - ./secrets:/var/opt/mssql/secrets

docker compose up -d

数据迁移

查看信息

docker exec -it sql-server-db /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U SA -P 'sasadadsadah4xA!sds' \
-Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/autoed_instance_58001_luming_2023_05_24011342.bak"' | tr -s ' ' | cut -d ' ' -f 1-2

# 输出示例如下:
luming D:\gamedb\58001\\luming_958.mdf
luming_log D:\gamedb\58001\\luming_958_log.ldf

执行迁移命令

docker exec -it  sql-server-db /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA -P 'sasadadsadah4xA!sds' \ 
-Q 'RESTORE DATABASE luming FROM DISK = "/var/opt/mssql/backup/autoed_instance_58001_luming_2023_05_24011342.bak" WITH MOVE "luming" TO "/var/opt/mssql/data/luming.mdf", MOVE "luming_log" TO "/var/opt/mssql/data/luming.ldf"'
官方链接