zoukankan      html  css  js  c++  java
  • 【docker随笔系列】安装sqlserver

    先决条件

    • 任何受支持的 Linux 分发或用于 Mac/Windows 的 Docker 上的 Docker 引擎 1.8+。 有关详细信息,请参阅 Install Docker(安装 Docker)。
    • Docker overlay2 存储驱动程序。 这是大多数用户的默认设置。 如果发现自己未使用此存储提供程序并且需要进行更改,请参阅 docker 文档中有关配置 overlay2 的说明和警告。
    • 至少 2 GB 的磁盘空间。
    • 至少 2 GB 的 RAM。
    • Linux 上的 SQL Server 的系统要求

    拉取并运行容器映像

    在开始执行以下步骤之前,请确保已在本文顶部选择了首选的 shell(bash、PowerShell 或 cmd)。

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

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    1. 前一个命令请求最新的 SQL Server 2017 容器映像。 如果想请求某个特定映像,需添加一个冒号和标记名称(例如 mcr.microsoft.com/mssql/server:2017-GA-ubuntu。 若要查看所有可用映像,请参阅 mssql-server Docker hub 页

      对于本文中的 bash 命令,将使用 sudo。 在 MacOS 上,可能不需要 sudo。 在 Linux 上,如果不想使用 sudo 来运行 Docker,可以配置一个 docker 组,并将用户添加到该组。 有关详细信息,请参阅 Post-installation steps for Linux(适用于 Linux 的安装后步骤)。

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

    sudo docker run --restart always -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=password' -e 'MSSQL_PID=Developer' -p 1333:1433 --name sql2017 -v /data/sqlserver2017_data:/var/opt/mssql -d microsoft/mssql-server-linux

     备注

    密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码的长度必须至少为 8 个字符,并且必须包含以下四种字符中的三种:大写字母、小写字母、十进制数字和符号。 你可以通过执行 docker logs 命令检查错误日志。

     备注

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

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

    表 1
    参数说明
    -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 为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
    -d mcr.microsoft.com/mssql/server:2017-latest SQL Server 2017 Linux 容器映像。

    注:

    -v /data/sqlserver2017_data:/var/opt/mssql 表示将docker的/var/opt/mssql挂载到宿主机的/data/sqlserver2017_data目录

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

    sudo docker ps -a

    如果“状态”列显示“正常运行”,则 SQL Server 将在容器中运行,并侦听“端口”列中指定的端口 。 如果 SQL Server 容器的“状态”列显示“已退出”,则参阅配置指南的疑难解答部分 。

    连接到 SQL Server

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

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

    sudo docker exec -it sql2017 "bash"

    坑:

    一定要挂载/var/opt/mssql目录到宿主机,这样就可以使用SQL Server Management Studio连接数据库备份还原,否则各种权限坑。

    参考文档:

    https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash

  • 相关阅读:
    leetcode 1. 两数之和
    leetcode 671. 二叉树中第二小的节点
    leetcode 100. 相同的树
    leetcode 110. 平衡二叉树
    leetcode 144. 二叉树的前序遍历
    1066. Root of AVL Tree (25)
    leetcode 100 相同的树
    leeCode 515 在每个树行中找最大值
    LeetCode 31.下一个排列
    面向对象UML中类关系
  • 原文地址:https://www.cnblogs.com/zhunian/p/12603025.html
Copyright © 2011-2022 走看看