ICE.ICE|

韩憨

园龄:4年7个月粉丝:42关注:47

Docker 安装部署Sql Server

先决条件

适用于支持的任一 Linux 分发版的 Docker 引擎 1.8 以上版本,或适用于 Mac/Windows 的 Docker。 有关详细信息,请参阅安装 Docker。

至少 4 GB 的磁盘空间

至少 4 GB 的 RAM

Linux 上的 SQL Server 的系统需求。

重要

 

Docker for Mac 和 Docker for Windows 的 Moby VM 默认大小为 2 GB,因此必须将其更改为 4 GB。如果你在 Mac 或 Windows 上运行,请使用以下过程来增加内存。

 

Docker 将内存增加为 4 GB (Mac)

以下步骤适用于为 4 GB 的 Mac for Docker 增加内存。

 

单击顶部状态栏上的 Docker 徽标。

选择首选项。

将内存指示器移到 4 GB 或以上。

单击重新启动在屏幕的按钮的按钮。

Docker 将内存增加为 4 GB (Windows)

以下步骤来增加为用于 Windows 的 Docker 为 4 GB 内存。

 

右键单击任务栏中的 Docker 图标。

单击设置该菜单下。

单击高级选项卡。

将内存指示器移到 4 GB 或以上。

单击应用按钮。

1.请求和运行容器映像

Docker Hub 中拉出 SQL Server 2017 Linux 容器映像。

 

bash复制

sudo docker pull microsoft/mssql-server-linux:2017-latest

PowerShell 复制

docker pull microsoft/mssql-server-linux:2017-latest

前一个命令中提取最新的 SQL Server 2017 容器映像。 如果你想要请求的特定映像,则添加冒号和标记名称 (例如, microsoft/mssql-server-linux:2017-GA)。 若要查看所有可用映像,请参阅mssql server linux Docker 中心页。

 

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

 

bash复制

sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \

   -p 1401:1433 --name sql1 \

   -d microsoft/mssql-server-linux:2017-latest

修改为

sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=CbA4321@' \

   -p 1401:1433 --name sql1 \

   -d microsoft/mssql-server-linux:2017-latest

 

PowerShell 复制

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" `

   -p 1401:1433 --name sql1 `

   -d microsoft/mssql-server-linux:2017-latest

修改为

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=CbA4321@" `

   -p 1401:1433 --name sql1 `

   -d microsoft/mssql-server-linux:2017-latest

 

3.备注

 

默认情况下,这将创建一个容器的 SQL Server 2017 开发人员版。 在容器中运行生产版本的过程是略有不同。 有关详细信息,请参阅运行容器映像的生产。

 

下表提供了参数在前面的说明docker run示例:

 

参数 Description

-e ACCEPT_EULA = Y 设置ACCEPT_EULA变量为任何值,以确认你接受最终用户许可协议。 SQL Server 映像的必需设置。

-e MSSQL_SA_PASSWORD =<YourStrong !Passw0rd> 指定你自己的强密码至少 8 个字符并达到SQL Server 密码要求。 SQL Server 映像的必需设置。

-p 1401:1433 建立主机环境(第一个值)上的 TCP 端口与容器(第二个值)中 TCP 端口的映射。 在此示例中,SQL Server 侦听 TCP 1433 容器中,并且这公开给端口 1401,主机上。

-名称 sql1 指定容器,而不是一个随机生成的自定义名称。 如果你运行多个容器,你无法重用此相同的名称。

microsoft/mssql-server-linux:2017-latest SQL Server 2017 Linux 容器映像。

4.若要查看你的 Docker 容器,请使用docker ps命令。

 

bash复制

sudo docker ps -a

PowerShell 复制

docker ps -a

将看到与如下屏幕截图相似的输出:

 

 

 

5.如果状态列显示的状态向上,然后在容器中运行 SQL Server 且在侦听端口指定端口列。 如果状态你 SQL 服务器容器显示的列Exited,请参阅故障排除部分中的配置指南。

 

-h (主机名) 参数也非常有用,但不是使用在本教程中为简单起见,它。 这会容器的内部名称更改为自定义值。 这是你将看到以下 TRANSACT-SQL 查询中返回的名称:

 

SQL复制

SELECT @@SERVERNAME,

    SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),

    SERVERPROPERTY('MachineName'),

    SERVERPROPERTY('ServerName')

设置-h--name为相同的值是一种好方法,可以轻松地识别目标容器。

 

更改 SA 密码

SA 帐户是安装过程中在 SQL Server 实例上创建的系统管理员。 创建 SQL Server 容器后,通过在容器中运行 echo $MSSQL_SA_PASSWORD,可发现指定的 MSSQL_SA_PASSWORD 环境变量。 出于安全考虑,请考虑更改 SA 密码。

1.选择 SA 用户要使用的强密码。

2.使用 docker exec 运行sqlcmd,以使用 Transact-SQL 更改密码。 

 <YourStrong!Passw0rd> 和 <YourNewStrong!Passw0rd> 替换为自己的密码值。

bash复制

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \

   -S localhost -U SA -P '<YourStrong!Passw0rd>' \

   -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong!Passw0rd>"'

PowerShell 复制

docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `

   -S localhost -U SA -P "<YourStrong!Passw0rd>" `

   -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong!Passw0rd>'"

 

连接到 SQL Server

下列步骤将使用 SQL Server 命令行工具, sqlcmd,要连接到 SQL Server 的容器内。

 

1.使用docker exec -it命令来启动交互式 bash shell 内你正在运行的容器。 在下面的示例sql1由指定名称--name参数创建容器时。

 

bash复制

sudo docker exec -it sql1 "bash"

PowerShell 复制

docker exec -it sql1 "bash"

 

2.一旦位于容器内部,使用 sqlcmd 进行本地连接。 Sqlcmd 不在默认情况下,路径因此你必须指定完整路径。

 

bash复制

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

提示

 

可以省略命令行上提示要输入的密码。

 

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

 

 

创建和查询数据

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

 

新建数据库

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

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

SQL复制

CREATE DATABASE TestDB

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

SQL复制

SELECT Name from sys.Databases

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

SQL复制

GO

 

 

插入数据

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

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

SQL复制

USE TestDB

创建名为 Inventory 的新表:

SQL复制

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

将数据插入新表:

SQL复制

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

要执行上述命令的类型 GO

SQL复制

GO

 

 

 

选择数据

现在,运行查询以从 Inventory 表返回数据。

通过 sqlcmd 命令提示符输入查询,以返回 Inventory 表中数量大于 152 的行:

SQL复制

SELECT * FROM Inventory WHERE quantity > 152;

执行命令:

SQL复制

GO

 

 

退出 sqlcmd 命令提示符

要结束 sqlcmd 会话,请键入 QUIT

SQL复制

Quit

若要退出容器中的交互式命令提示,请键入exit 退出交互式 Bash Shell 后,容器将继续运行。

从连接容器之外

你可以还连接到 SQL Server 实例在 Docker 上从任何外部的 Linux、 Windows 或 macOS 工具支持 SQL 连接。

以下步骤使用sqlcmd外部容器连接到在容器中运行的 SQL Server。 这些步骤假定你已在你的容器之外安装的 SQL Server 命令行工具。 相同的主体应用时使用其他工具,但连接的过程是唯一的每个工具。

查找承载你的容器的计算机的 IP 地址。 在 Linux 上,使用ifconfig或ip addr。在 Windows 上,使用ipconfig。

运行指定的 IP 地址和端口映射到容器中的端口 1433年的 sqlcmd。 在此示例中,这是端口 1401年主机计算机上。

bash复制

sqlcmd -S 10.3.2.4,1401 -U SA -P '<YourNewStrong!Passw0rd>'

PowerShell 复制

sqlcmd -S 10.3.2.4,1401 -U SA -P "<YourNewStrong!Passw0rd>"

运行 TRANSACT-SQL 命令。 完成后,键入QUIT。

若要连接到 SQL Server 其他常见工具包括:

Visual Studio 代码

Windows 上的 SQL Server Management Studio (SSMS)

删除容器

如果你想要删除 SQL Server 容器使用在本教程中,运行以下命令:

bash复制

sudo docker stop sql1

sudo docker rm sql1

PowerShell 复制

docker stop sql1

docker rm sql1

 

注意:

Navicat链接

 

 

本文作者:韩憨

本文链接:https://www.cnblogs.com/hanby/p/14172118.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   韩憨  阅读(1464)  评论(0编辑  收藏  举报
//看板娘

剑桥

评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 隔离 (Studio Live Duet) 陈凯咏,林家谦
  2. 2 明知做戏 吴雨霏
  3. 3 残酷游戏 卫兰
  4. 4 你,好不好? 周兴哲
  5. 5 我可以 蔡旻佑
  6. 6 云烟成雨 房东的猫
  7. 7 说散就散 JC 陈咏桐
  8. 8 我配不上你 夏天Alex
  9. 9 不再联系 夏天Alex
  10. 10 等我先说 夏天Alex
  11. 11 我知道他爱你 夏天Alex
  12. 12 多想在平庸的生活拥抱你 隔壁老樊
  13. 13 这一生关于你的风景 隔壁老樊
  14. 14 我曾 隔壁老樊
  15. 15 关于孤独我想说的话 隔壁老樊
  16. 16 过客 周思涵
  17. 17 备爱 周思涵
  18. 18 嚣张 en
  19. 19 海口 后弦
明知做戏 - 吴雨霏
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : Xia Zhi

作曲 : Fong Man Leung

编曲 : 吴国恩

监制 : Gary Chan

等你的汽水喝一半给你加片薄冰

等你的桌面满泻我总会打理重整

不想纯情 不够聪明

你未发现我的身影

得我帮你依照编码整理家里电影

得我帮你依照编码整理家里电影

只会得我一个帮你选购喜爱铃声

天天如常 估你心情

等一个眼神求证 一闪擦过如流星

怎么我为我做过的感到惊怕

就像爱吗我也不肯定恐怕

我以为存在吗 千变万化

从来不肯开口可相信吗 离谱吗

请你不要阻我喜欢你

明明是爱但你未说话你扮作闪避

这个沉默冷静的你毫无办法处理

其实我亦怕是错摸心理

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过仍然害羞的你

还是顾忌太不争气 明知做戏

即使你未太在意不感到惊讶

即使你未太在意不感到惊讶

现在要说爱你请准备招架

勇气还存在吗 不要害怕

随时真的胆敢亲手送花 离谱吗

请你不要阻我喜欢你

明明是爱但你未说话你扮作闪避

这个沉默冷静的你亳无办法处理

其实我亦怕是错摸心理

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过仍然害羞的你

还是顾忌太不争气 明知做戏

不过不要阻我紧张你

如何令你愉快让我办妥为你准备

喜爱沉默冷静的你还是自信的你

仍愿意为你造一些惊喜

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过途人目光不理

期待贴着你的手臂 无须做戏

等你喜爱等你不爱就凭摘毫验证

等你喜爱等你不爱就凭摘毫验证

想爱不爱偏爱不理亦同样难划清

天天如常 估你心情

不想扑索来求证 争取过趁还年青

终于你下决定来答应 太动听

点击右上角即可分享
微信分享提示