Docker 中的 SQL Server
在软件开发和数据管理领域,数据库是不可或缺的一部分。SQL Server 是一种流行的关系型数据库管理系统,由 Microsoft 开发和维护。而 Docker 是一个开源的容器化平台,能够轻松地构建、部署和管理应用程序。本文将介绍如何在 Docker 中使用 SQL Server,并提供相应的代码示例。
Docker 简介
Docker 是一个用于开发、交付和运行应用程序的开源平台。它通过容器化技术,将应用程序及其所有依赖项打包在一起,形成一个可移植的容器。这个容器可以在任何环境中运行,无论是开发人员的笔记本电脑、测试服务器还是生产环境。
使用 Docker 可以实现快速、可重复的部署,提供了更高的灵活性和可扩展性。它还能够优化资源利用,减少部署成本。因此,越来越多的组织和开发者选择使用 Docker 来构建和管理他们的应用程序。
在 Docker 中运行 SQL Server
要在 Docker 中运行 SQL Server,首先需要安装 Docker 并确保其正常运行。接下来,需要从 Docker Hub 下载 SQL Server 的镜像。可以通过以下命令来下载 SQL Server 2019 的镜像:
docker pull mcr.microsoft.com/mssql/server:2019-latest
下载完成后,可以使用以下命令来运行 SQL Server 容器:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 --name sql_server_container -d mcr.microsoft.com/mssql/server:2019-latest
上述命令中的 ACCEPT_EULA
和 SA_PASSWORD
分别用于接受 SQL Server 的使用协议和设置管理员密码。将 SA_PASSWORD
替换为您自己的密码。
一旦容器启动成功,就可以使用 SQL Server Management Studio 或其他 SQL Server 客户端工具连接到容器中的 SQL Server 实例。连接字符串如下所示:
Server=127.0.0.1,1433;Database=<YourDatabase>;User Id=sa;Password=<YourStrong!Passw0rd>
示例代码
下面是一个简单的示例代码,演示如何使用 Docker 中的 SQL Server。首先,我们需要安装 pyodbc
包,这是一个用于连接到 SQL Server 的 Python 包。
pip install pyodbc
接下来,我们可以使用以下代码连接到 SQL Server 数据库并执行一些基本操作:
import pyodbc
# 连接到 SQL Server 数据库
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=127.0.0.1,1433;DATABASE=TestDB;UID=sa;PWD=<YourStrong!Passw0rd>')
# 创建游标
cursor = cnxn.cursor()
# 创建表
cursor.execute('CREATE TABLE Employees (Id INT, Name VARCHAR(255))')
cnxn.commit()
# 插入数据
cursor.execute("INSERT INTO Employees (Id, Name) VALUES (?, ?)", 1, 'John Doe')
cnxn.commit()
# 查询数据
cursor.execute("SELECT * FROM Employees")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
cursor.close()
cnxn.close()
上述代码首先连接到 SQL Server 数据库,然后创建了一个名为 Employees
的表,并插入了一条数据。接下来,使用 SELECT
语句查询数据,并打印出结果。最后,关闭连接。
类图
下面是一个简单的类图示例,演示了连接到 SQL Server 数据库的类结构:
classDiagram
class SqlConnection {
+ connect(connectionString: str): None
+ close(): None
+ cursor(): Cursor
}
class Cursor {
+ execute(query: str, *args: Any): None
+ fetchall(): List[Tuple[Any, ...]]
+ commit(): None
+ close(): None
}
SqlConnection --> Cursor
在上述类图中,SqlConnection
类表示与 SQL Server 数据库的连接。它具有 connect
方法用于连接数据库,close
方法用于关闭连接,