使用 Docker 部署 Microsoft SQL Server (MSSQL) 指南

在现代开发中,Docker 是一个强大的工具,可以帮助我们快速部署和管理应用程序。在这篇文章中,我们将一起学习如何使用 Docker 来运行 Microsoft SQL Server (MSSQL)。无论您是新手还是经验丰富的开发者,掌握这一技能对于后续的数据库管理和开发都会大有裨益。

流程概览

在开始之前,我们先看一下整个流程的步骤:

步骤编号 步骤描述
1 安装 Docker
2 拉取 SQL Server 镜像
3 创建 SQL Server 容器
4 连接到 SQL Server
5 验证 SQL Server 是否正常运行

在接下来的部分,我们将逐步深入每一步。

步骤详解

第一步:安装 Docker

在安装 Docker 之前,请确保您的系统满足 [Docker 官方的安装要求]( Docker Desktop 的示例命令:

# 对于 Windows 和 macOS 用户,可以直接下载 Docker Desktop,安装完成后即可使用。

第二步:拉取 SQL Server 镜像

使用 Docker 拉取 Microsoft SQL Server 的 Docker 镜像。您可以选择不同版本的镜像,这里我们选择最新的 2019 版本:

# 拉取最新版本的 Microsoft SQL Server 镜像
docker pull mcr.microsoft.com/mssql/server:2019-latest

指令解释:

  • docker pull:用于从仓库下载 Docker 镜像。
  • mcr.microsoft.com/mssql/server:2019-latest:指定拉取的镜像版本。

第三步:创建 SQL Server 容器

使用以下命令来创建并启动 SQL Server 容器。这里设置了一个示例的 SA 密码。

# 创建并运行 SQL Server 容器
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrong!Passw0rd' \
-p 1433:1433 --name sql_server \
-d mcr.microsoft.com/mssql/server:2019-latest

指令解释:

  • -e 'ACCEPT_EULA=Y':同意许可协议。
  • -e 'SA_PASSWORD=YourStrong!Passw0rd':设置数据库的超级管理员SA用户的密码,密码必须符合复杂性要求。
  • -p 1433:1433:将容器的端口映射到主机端口。
  • --name sql_server:指定容器的名称。
  • -d:在后台运行容器。

第四步:连接到 SQL Server

您可以使用 SQL Server Management Studio(SSMS)或其他数据库客户端工具连接到 SQL Server。默认连接字符串如下:

  • 服务器名称: localhost
  • 数据库用户名: SA
  • 密码: YourStrong!Passw0rd

第五步:验证 SQL Server 是否正常运行

使用以下命令来查看 SQL Server 容器的状态:

# 查看正在运行的容器
docker ps

指令解释:

  • docker ps:列出所有正在运行的容器。确保您的 SQL Server 容器在列表中。

总结

恭喜您!通过以上步骤,您已经成功地在 Docker 中运行了 Microsoft SQL Server。Docker 使得环境的设置变得非常简单,可以快速切换和管理不同的数据库版本,极大地提高了开发和测试的效率。

下面是一个简单的序列图,展示了整个过程中您与 Docker 和 SQL Server 的交互:

sequenceDiagram
    participant User as 用户
    participant Docker as Docker
    participant MSSQL as SQL Server

    User->>Docker: 安装 Docker
    User->>Docker: 拉取 SQL Server 镜像
    Docker->>User: 镜像下载完成
    User->>Docker: 创建 SQL Server 容器
    Docker->>MSSQL: 启动 SQL Server
    User->>MSSQL: 连接到数据库
    MSSQL-->>User: 连接成功

希望这篇指南能够帮助您顺利在 Docker 中运行 Microsoft SQL Server。如果您有任何问题或需要进一步的帮助,请随时询问!