使用 Docker 运行 SQL Server 容器映像

拉取并运行 2019 容器映像

1.从 Microsoft 容器注册表中拉取 SQL Server 2019 Linux 容器映像。

sudo docker pull mcr.microsoft.com/mssql/server:2019-latest

2.要使用 Docker 运行容器映像,可以从 Bash Shell (Linux/macOS) 或提升的 PowerShell 命令提示符使用以下命令。

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \
   -p 1433:1433 --name sql1 -h sql1 \
   -d mcr.microsoft.com/mssql/server:2019-latest

下表对前一个 docker run 示例中的参数进行了说明:

参数说明
-e "ACCEPT_EULA=Y"将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
-e "SA_PASSWORD=<YourStrong@Passw0rd>"指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。
-p 1433:1433将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,并对主机上的端口 1433 公开。
--name sql1为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
-h sql1用于显式设置容器主机名,如果不指定它,则默认为容器 ID,该 ID 是随机生成的系统 GUID。
mcr.microsoft.com/mssql/server:2019-latestSQL Server 2019 Ubuntu Linux 容器映像。

3.要查看 Docker 容器,请使用 docker ps 命令。

sudo docker ps -a

应会看到与以下屏幕截图类似的输出:

Docker ps 命令输出

4.如果“状态”列显示“正常运行”,则 SQL Server 将在容器中运行,并侦听“端口”列中指定的端口 。 如果 SQL Server 容器的“状态”列显示“已退出”,请参阅 SQL Server Docker 容器故障排除 。

连接到 SQL Server

下列步骤在容器内部使用 SQL Server 命令行工具 sqlcmd 来连接 SQL Server。

1. 使用 docker exec -it 命令在运行的容器内部启动交互式 Bash Shell。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。

sudo docker exec -it sql1 "bash"

2. 在容器内部使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"

3.如果成功,应会显示 sqlcmd 命令提示符:1>

创建和查询数据

以下部分将引导你使用 sqlcmd 和 Transact-SQL 完成新建数据库、添加数据并运行查询的整个过程。

以下步骤创建一个名为 TestDB 的新数据库。

1.在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:

CREATE DATABASE TestDB

2.在下一行中,编写一个查询以返回服务器上所有数据库的名称:

SELECT Name from sys.Databases

3.前两个命令没有立即执行。 在新行中键入 GO 以执行以前的命令:

GO

插入数据

接下来创建一个新表 Inventory,然后插入两个新行。

1.在 sqlcmd 命令提示符中,将上下文切换到新的 TestDB 数据库:

USE TestDB

2.创建名为 Inventory 的新表:

CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

3.将数据插入新表:

INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);

4.要执行上述命令的类型 GO

GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值