win10,docker安装sqlServer2017,并导入备份数据bak

一、docker安装sqlServer2017

  1. 拉取镜像

    docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  2. 启动

    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=wade@123" -p 1433:1433 -v D:/database/data:/var/opt/mssql/data --name sqlserver -d mcr.microsoft.com/mssql/server:2017-latest
    

    *密码设置不能太简单,不然启动失败

    *挂载目录:D:/database/data

二、导入备份数据

  1. 将数据上传至容器

    docker cp 备份文件路径 sqlserver:/usr/local
    
  2. 进入容器

    docker exec -it sqlserver bash
    
  3. 输入对应账号密码进入

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "wade@123"
    
  4. 查询文件的逻辑名

    RESTORE FILELISTONLY FROM DISK = '/usr/local/备份文件.bak'
    
    • 结果(LogicalName):

      TeamUPDB_INSTALL_1 
      TeamUPDB_INSTALL_1_log 
      
  5. 使用RESTORE DATABASE命令还原数据库

    RESTORE DATABASE mytest
    FROM DISK = '/usr/local/备份文件.bak'
    WITH 
    MOVE 'TeamUPDB_INSTALL_1' TO '/var/opt/mssql/data/mytest.mdf',
    MOVE 'TeamUPDB_INSTALL_1_log' TO '/var/opt/mssql/data/mytest.ldf',
    NOUNLOAD, REPLACE
    GO
    
<think>好的,我现在需要帮助用户找到在Docker上部署SQL Server 2017安装配置指南。根据用户提供的引用内容,我需要整理出具体的步骤,确保遵循系统级指令的要求。 首先,查看用户提供的引用内容。引用[1]提到了拉取SQL Server 2017Docker镜像的命令:docker pull mcr.microsoft.com/mssql/server:2017-latest。引用[2]则详细说明了Docker部署SQL Server的基础步骤,包括准备工作、拉取镜像、配置和启动容器。引用[3]虽然主要讨论主从同步,但也提到了获取SQL Server镜像的命令,不过版本是2019的,但结构类似。 接下来,我需要将这些信息整合成一个清晰的步骤指南。首先确保用户已经安装Docker检查系统资源是否足够,比如内存至少2GB。然后按照拉取镜像、运行容器、验证安装的顺序来写。 在拉取镜像部分,要明确指出使用2017版本的镜像。运行容器时,需要设置环境变量,比如SA_PASSWORD、ACCEPT_EULA等,映射端口。用户可能需要知道如何进入容器内部执行命令,所以需要包括使用docker exec的例子。 验证安装部分,可以通过执行简单的SQL查询来测试连接。另外,用户可能需要持久化数据,所以需要提到使用卷挂载。最后,安全问题也很重要,比如强密码和防火墙设置。 还要注意LaTeX格式的要求,所有行内数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能用不上数学公式,但需要检查是否有地方需要用到。另外,生成相关问题,正确添加引用标识。 最后,确保回答结构清晰,分步骤说明,引用正确的来源。可能还需要检查是否有遗漏的步骤,比如Docker安装或常见问题处理。用户可能需要进一步的配置或优化建议,但根据现有引用,主要集中在基础部署步骤上。</think>### Docker 中部署 SQL Server 2017安装配置指南 #### **1. 准备工作** - **安装 Docker**:确保系统已安装 Docker 启动服务(Windows/macOS 需使用 Docker Desktop,Linux 使用对应发行版的 Docker 引擎)。 - **资源检查**:SQL Server 2017 至少需要 **2GB 内存**,建议分配 4GB 以确保稳定性[^2]。 #### **2. 拉取 SQL Server 2017 镜像** 执行以下命令从微软官方仓库拉取镜像: ```bash docker pull mcr.microsoft.com/mssql/server:2017-latest ``` 验证镜像是否成功下载: ```bash docker images | grep "mssql/server" ``` #### **3. 创建运行容器** 使用以下命令启动 SQL Server 2017 容器: ```bash docker run -d \ --name sqlserver2017 \ -e "ACCEPT_EULA=Y" \ -e "SA_PASSWORD=YourStrong@Passw0rd" \ -p 1433:1433 \ -v /host/path:/var/opt/mssql \ mcr.microsoft.com/mssql/server:2017-latest ``` - **参数说明**: - `-e "ACCEPT_EULA=Y"`:接受最终用户许可协议。 - `-e "SA_PASSWORD=...`:设置 SA 账户密码(需符合复杂度要求:至少 8 字符,包含大小写字母、数字和符号)。 - `-p 1433:1433`:将容器默认端口映射到主机。 - `-v /host/path:/var/opt/mssql`:挂载数据卷以实现持久化存储[^1]。 #### **4. 验证容器状态** 检查容器是否正常运行: ```bash docker ps -a | grep "sqlserver2017" ``` 若状态为 `Up` 表示启动成功。 #### **5. 连接数据库** 使用以下方式测试连接: - **命令行工具**: ```bash docker exec -it sqlserver2017 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P "YourStrong@Passw0rd" \ -Q "SELECT @@VERSION" ``` 成功执行会返回 SQL Server 版本信息。 - **客户端工具**:通过 SSMS (SQL Server Management Studio) 或 Azure Data Studio,使用以下配置连接: - 服务器地址:`localhost,1433` - 身份验证:`SQL Server Authentication` - 用户名:`SA` - 密码:`YourStrong@Passw0rd` #### **6. 持久化与备份** - **数据卷管理**:通过挂载的目录 `/host/path` 可手动备份或恢复数据库文件。 - **自动备份**:在容器内部使用 `mssql-conf` 工具配置备份策略,或通过外部脚本定期导出数据。 #### **7. 安全建议** - **密码策略**:避免使用默认密码,定期更换 SA 账户密码。 - **网络隔离**:在生产环境中建议将容器部署在内部网络,仅暴露必要端口[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值