zoukankan      html  css  js  c++  java
  • 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链接

     

    纵有白头俱老意,奈何缘浅路芊芊.
  • 相关阅读:
    Json
    JQuery的validate不起作用的情况
    ajax的同步异步
    Bootstrap--switch
    Bootstrap--multiselect
    ArcGIS地图打印那些事
    openlayers调用瓦片地图分析
    多种在线地图综合对比,Google,必应,arcgis Online...
    map的infowindow的show事件(ArcGIS API for JS)
    在ArcGIS中导出现有mxd的style文件
  • 原文地址:https://www.cnblogs.com/hanby/p/14172118.html
Copyright © 2011-2022 走看看