使用Docker运行SQL Server容器

在现代软件开发中,容器化技术已经成为一种趋势,它可以帮助开发者在不同的环境中保持一致性。Docker作为容器化技术的代表,提供了一种轻量级、可移植的解决方案。本文将介绍如何使用Docker来运行SQL Server容器,包括下载镜像、创建容器、设置数据持久化以及使用docker-compose进行管理。

首先,需要从容器仓库中下载SQL Server的Docker镜像。这可以通过以下命令完成:

docker pull mcr.microsoft.com/mssql/server

执行该命令后,将看到类似于以下输出:

[下载镜像的输出]

2. 运行容器

下载镜像后,接下来就是运行容器。需要指定一些参数来运行容器:

  • -e 或 --env:设置容器所需的环境变量
  • -p 或 --publish:将容器的端口发布到指定的主机端口
  • --name:设置容器的名称
  • -d 或 --detach:在后台(分离)模式下运行容器

SQL Server需要设置两个环境变量,首先是接受EULA协议,其次是设置SA密码。

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Sample123$" -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:latest

执行该命令后,将看到类似于以下输出:

[运行容器的输出]

3. 检查运行中的容器

要查看当前运行的容器,可以使用以下命令:

docker container ls

执行该命令后,将看到类似于以下输出:

[查看容器的输出]

4. 从SQL Server Management Studio连接到容器

现在,让使用SQL Server Management Studio连接到容器,并创建一些表。启动Management Studio,并连接到localhost,使用在docker run命令中设置的用户名sa和密码Sample123$。

连接成功后,可以继续添加数据库和表,并插入一些数据。但是,如果移除容器,然后再次运行容器,数据将会丢失。

5. 移除容器

要移除容器,首先必须停止容器,然后可以使用以下命令移除它:

docker container stop /sqlserver docker container rm /sqlserver

执行这些命令后,容器将被停止并移除。

6. 再次运行容器并检查数据是否丢失

现在可以再次运行与之前相同的docker run命令:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Sample123$" -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:latest

执行该命令后,使用以下命令检查它是否正在运行:

docker container ls

再次使用SQL ServerManagement Studio连接到数据库,将看到数据库已经消失。为了持久化数据,需要设置一个卷挂载点,并将容器指向该位置。

7. 创建卷挂载点以持久化数据

可以创建一个卷挂载点,这将使本地磁盘上的一个位置成为容器内部数据库文件的存储位置,这样每次移除容器时,都能够保留数据:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password123" -p 1433:1433 --name sqlserver -v C:\Users\Owen\DockerVolumes\sqlserver:/var/opt/mssql/data -d mcr.microsoft.com/mssql/server:latest

执行该命令后,数据将被持久化到指定的卷挂载点。

为了不必每次使用SQL数据库时都记住/输入所有这些参数,可以使用docker-compose.yaml文件来实现。这意味着只需要运行一个简单的命令,所有的参数都将包含在yaml文件中。

这实际上更方便,因为通常有太多的容器,不想记住每个容器的所有信息。

将以下代码保存为项目根目录下的docker-compose.yml:

version: '3.4' services: sqlserver: image: mcr.microsoft.com/mssql/server container_name: sqlserver environment: - ACCEPT_EULA=Y - SA_PASSWORD=Password123 ports: - "1433:1433" volumes: - C:\Users\Owen\DockerVolumes\sqlserver:/var/opt/mssql/data

现在,只需要输入以下命令:

docker-compose up
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485