docker部署sqlserver(mssql)数据库

一、拉取镜像

docker pull exoplatform/sqlserver

二、启动镜像

最简单密码、端口运行容器:
docker run -d -e SA_PASSWORD='feifei!@#123' -p 1433:1433 exoplatform/sqlserver

设置更多自动重启、挂载卷、数据库、添加账户等可选参数运行:
docker run --name sqlserver --restart always  -v  /opt/netcore/mssql:/var/opt/mssql -d -e 'ACCEPT_EULA=Y'  -e SA_PASSWORD='feifei!@#123' -e SQLSERVER_DATABASE=demo -e SQLSERVER_USER=xiaofei -e SQLSERVER_PASSWORD='feifei!@#123' -p 1433:1433 exoplatform/sqlserver

--name sqlserver :设置运行容器名称
--restart always   :设置容器自动重新启
-v /opt/netcore/mssql:/var/opt/mssql  挂在目录,把容器数据库挂在到自定义目录
-e 'ACCEPT_EULA=Y'  :提示您接受最终用户许可协议。如果您不同意,安装将不会继续
-e SA_PASSWORD='feifei!@#123' :设置管理员SA用户和密码(必填参数,密码大于八位,并包含特殊符号)
-e SQLSERVER_DATABASE=demo :创建一个叫“demo”的数据库
-e SQLSERVER_USER=xiao
<think>好的,我需要帮助用户解决在Docker部署SQL Server的问题。首先,我要回顾用户提供的引用内容,这些引用包括不同的部署步骤和注意事项。用户可能已经看到不同的方法,但需要整合成一个清晰的指南。 首先,根据引用[1],微软提供了官方镜像,所以应该推荐用户使用官方的Docker镜像,而不是第三方修改版,以确保安全和稳定性。然后,检查用户提到的密码复杂度要求,引用[3]和[4]都提到了密码需要符合策略,比如大写字母、数字和符号的组合,这点很重要,需要强调。 接下来,用户可能对端口映射和持久化存储有疑问。引用[4]中提到了使用-v参数挂载卷,这样可以保证数据持久化,避免容器删除后数据丢失,这应该包含在步骤中。同时,端口映射都是1433,需要确认是否正确。 然后,用户可能关心环境变量的设置,比如ACCEPT_EULA和MSSQL_PID,引用[3]中提到了设置版本为Enterprise,但如果是开发或测试,可能使用Developer版本更合适,因为免费。需要说明不同版本的区别。 另外,引用[2]中的第三方镜像可能存在风险,应该提醒用户优先使用官方镜像。同时,引用[3]提到安装SQL Server Management Studio (SSMS),用户可能需要连接数据库,所以在部署后可能需要安装SSMS或使用其他客户端工具。 最后,要确保步骤清晰,分点说明,包括拉取镜像、启动容器、验证部署和持久化数据。同时,在常见问题中,需要涵盖密码错误、端口冲突、性能调优等,参考引用中的问题可能出现的地方。 现在需要整合这些信息,生成一个结构化的回答,确保符合用户的中文要求,使用正确的LaTeX格式,并且生成相关问题。需要检查是否有遗漏的步骤,比如检查Docker是否安装,内存是否足够,这些在引用[1]中有提到,需要包含在准备工作中。 总结步骤:准备工作、拉取镜像、启动容器、验证连接、数据持久化。每个步骤详细说明,并附上代码块。常见问题解答部分需要覆盖用户可能遇到的典型问题,如密码不符合要求、端口占用、性能问题等。 生成的相关问题需要围绕Docker部署SQL Server的其他方面,比如版本选择、配置优化、备份恢复和监控方法,这些能帮助用户进一步探索。</think>### 分步指南:在 Docker部署 SQL Server #### 准备工作 1. 确保已安装 Docker 并启动服务(Windows/macOS 使用 Docker Desktop,Linux 使用 `systemctl start docker`) 2. 检查系统资源:SQL Server 至少需要 2GB 内存[^1] 3. 开放主机端口 `1433`(默认 SQL Server 端口) #### 步骤 1:拉取官方镜像 ```bash docker pull mcr.microsoft.com/mssql/server:2022-latest ``` > 注意:`2022-latest` 表示最新版本,可替换为 `2019-latest` 等特定版本[^3] #### 步骤 2:启动容器 ```bash docker run -d --name sqlserver \ -e "ACCEPT_EULA=Y" \ -e "MSSQL_SA_PASSWORD=MyStr0ngP@ssw0rd!" \ -e "MSSQL_PID=Developer" \ -p 1433:1433 \ -v /path/on/host:/var/opt/mssql \ mcr.microsoft.com/mssql/server:2022-latest ``` **参数说明**: - `ACCEPT_EULA=Y`:接受最终用户许可协议[^3] - `MSSQL_SA_PASSWORD`:必须包含大写字母、数字和符号,长度 ≥ 8[^4] - `MSSQL_PID`:版本标识(`Developer`免费/`Express`/`Enterprise`)[^3] - `-v`:数据持久化存储(推荐必须配置) #### 步骤 3:验证部署 ```bash docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P "MyStr0ngP@ssw0rd!" \ -Q "SELECT @@VERSION" ``` 成功执行将返回 SQL Server 版本信息。 #### 步骤 4:连接数据库 使用客户端工具连接: - 服务器地址:`localhost,1433` - 身份验证:`SQL Server Authentication` - 用户名:`SA` - 密码:`MyStr0ngP@ssw0rd!` --- ### 常见问题解决 1. **密码不符合复杂度要求** > 错误提示:`ERROR: Unable to set system administrator password` > 解决方案:密码必须包含至少 3 种字符类型(大写、数字、符号),例如:`P@ssw0rd123`[^4] 2. **端口 1433 被占用** ```bash # 查看端口占用 netstat -ano | findstr :1433 # 修改映射端口(示例改为 51433) docker run -p 51433:1433 ... ``` 3. **性能调优建议** - 添加内存限制:`--memory 4g` - 设置 CPU 核心:`--cpus 2` - 日志管理:`-e MSSQL_ERRORLOG_SIZE=100` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值