Docker 中部署 SQL Server
要在 Docker 中部署 SQL Server,可以使用微软提供的官方 Docker 映像。以下是一个部署 SQL Server 的基础步骤,包括拉取镜像、配置并启动容器的详细指南。
1. 准备工作
- 确保 Docker 已安装并正在运行。
- 检查你的系统是否有足够的资源,因为 SQL Server 需要大约 2GB 内存。
2. 拉取 SQL Server 官方 Docker 镜像
首先从 Docker Hub 拉取 SQL Server 的镜像:
docker pull mcr.microsoft.com/mssql/server:2022-latest
- 这里
2022-latest
表示 SQL Server 2022 的最新版本;你可以根据需求选择特定的版本,例如2019-latest
。
3. 运行 SQL Server 容器
运行 SQL Server 容器时,需设置环境变量来指定管理员密码以及其他配置。以下是一个示例:
docker run -e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=YourStrong!Passw0rd" \
-p 1433:1433 \
--name sql_server_container \
-d mcr.microsoft.com/mssql/server:2022-latest
参数说明:
-e ACCEPT_EULA=Y
:接受 Microsoft 的 SQL Server 使用条款。-e MSSQL_SA_PASSWORD=YourStrong!Passw0rd
:设置sa
用户的密码,要求密码必须符合复杂性(至少 8 个字符,包含大小写、数字及符号)。-p 1433:1433
:将容器的 1433 端口映射到主机的 1433 端口。--name sql_server_container
:设置容器名称为sql_server_container
。-d
:让容器在后台运行。
4. 验证容器是否启动成功
检查 SQL Server 容器是否启动:
docker ps -a
如果容器状态为 Up
,则表示成功启动。否则可以查看日志:
docker logs sql_server_container
5. 连接到 SQL Server
你可以使用 SQL Server Management Studio (SSMS)、Azure Data Studio 或 sqlcmd
工具来连接到数据库。默认连接信息如下:
- 服务器地址:
localhost,1433
(或127.0.0.1,1433
) - 用户名:
sa
- 密码:在第 3 步中指定的
MSSQL_SA_PASSWORD
。
使用 sqlcmd
工具连接的示例如下:
docker exec -it sql_server_container /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "YourStrong!Passw0rd"
6. 数据持久化(可选)
为了确保数据库数据在容器停止或删除后不会丢失,可以使用挂载卷的方式持久化数据。
docker run -e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=YourStrong!Passw0rd" \
-p 1433:1433 \
--name sql_server_container \
-v sql_data:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2022-latest
-v sql_data:/var/opt/mssql
:将 SQL Server 数据库文件挂载到主机的sql_data
目录中。
7. 停止和启动容器
停止 SQL Server 容器:
docker stop sql_server_container
再次启动 SQL Server 容器:
docker start sql_server_container
8. 删除容器和数据卷(可选)
如果不再需要,可以删除容器和数据卷。
docker rm sql_server_container
docker volume rm sql_data
以上步骤将帮助你通过 Docker 部署 SQL Server,并让其运行在独立的容器环境中。