docker 安装sqlserver数据库并开启代理(保姆级)

系统管理员 2023-10-12 16:06 90阅读 0赞

-目录-

    • 一、安装docker
    • 二、安装sqlserver数据库
      • 2.1 从 Microsoft 容器注册表中请求 SQL Server 2022 (16.x) Linux 容器映像。
      • 2.2 要使用 Docker 运行 Linux 容器映像,可以从 Bash Shell 或提升的 PowerShell 命令提示符使用以下命令
      • 2.3 要查看 Docker 容器,请使用 docker ps 命令。
      • 2.4 如果 STATUS 列显示 Up 状态,则 SQL Server 正在容器中运行,并且在侦听 PORTS 列中指定的端口。
      • 2.5 最后一步,更改 SA 密码,因为 MSSQL_SA_PASSWORD 在 ps -eax 输出中可见,并存储在同名的环境变量中。 请参阅以下步骤
    • 三、连接到sqlserver数据库
      • 3.1 使用 docker exec -it 命令在运行的容器内部启动交互式 Bash Shell。 在下面的示例中,sql1 是在创建容器时由 —name 参数指定的名称。
      • 3.2 在容器内部使用完整路径通过 sqlcmd 进行本地连接。
      • 3.3 如果成功,应会显示 sqlcmd 命令提示符:1>。
    • 四、开启sqlserver数据库代理
      • 4.1 进入容器
      • 4.2 提升权限
      • 4.3 安装sudo
      • 4.4 第二种方式:使用root用户进入容器
      • 4.5 执行开启命令
      • 4.6 重启sqlserver

一、安装docker

任何受支持的 Linux 发行版上的 Docker 引擎 1.8 及更高版本。 有关详细信息,请参阅 Install Docker(安装 Docker)。

二、安装sqlserver数据库

2.1 从 Microsoft 容器注册表中请求 SQL Server 2022 (16.x) Linux 容器映像。

  1. sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
  1. 前一个命令请求最新的 SQL Server 2022 (16.x) Linux 容器映像。 如果想请求某个特定映像,需添加一个冒号和标记名称,如 mcr.microsoft.com/mssql/server:2022-GA-ubuntu。 若要查看所有可用映像,请参阅 mssql-server Docker hub 页。
  2. 对于本文中的 bash 命令,将使用 sudo。 如果不想使用 sudo 来运行 Docker,可以配置一个 docker
    组,并将用户添加到该组。 有关详细信息,请参阅 Post-installation steps for Linux(适用于 Linux
    的安装后步骤)。

2.2 要使用 Docker 运行 Linux 容器映像,可以从 Bash Shell 或提升的 PowerShell 命令提示符使用以下命令

SA_PASSWORD 环境变量已弃用。 请改用 MSSQL_SA_PASSWORD。

  1. sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
  2. -p 1433:1433 --name sql1 --hostname sql1 \
  3. -d \
  4. mcr.microsoft.com/mssql/server:2022-latest

在这里插入图片描述

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

  1. sudo docker ps -a

应该会看到与下面类似的输出:

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  2. d4a1999ef83e mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1

2.4 如果 STATUS 列显示 Up 状态,则 SQL Server 正在容器中运行,并且在侦听 PORTS 列中指定的端口。

如果 SQL Server 容器的 STATUS 列显示 Exited,请参阅配置指南的疑难解答部分。 一旦 SQL Server 错误日志显示以下消息,就可连接此服务器:SQL Server is now ready for client connections. This is an informational message; no user action is required。 可以使用以下命令查看容器内的 SQL Server 错误日志:

  1. docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection

2.5 最后一步,更改 SA 密码,因为 MSSQL_SA_PASSWORD 在 ps -eax 输出中可见,并存储在同名的环境变量中。 请参阅以下步骤

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

  1. 选择 SA 用户要使用的强密码。
  2. 使用 docker exec 运行sqlcmd,以使用 Transact-SQL 更改密码。 以下示例将从用户输入中读取旧密码和新密码。

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
    -S localhost -U SA \
    -P “$(read -sp “Enter current SA password: “; echo “${REPLY}”)” \
    -Q “ALTER LOGIN SA WITH PASSWORD=\”$(read -sp “Enter new SA password: “; echo “${REPLY}”)\””

三、连接到sqlserver数据库

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

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

sudo docker exec -it sql1 “bash”

3.2 在容器内部使用完整路径通过 sqlcmd 进行本地连接。

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

可以省略命令行上提示要输入的密码。 下面是一个示例:

  1. /opt/mssql-tools/bin/sqlcmd -S localhost -U SA

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

四、开启sqlserver数据库代理

4.1 进入容器

  1. docker exec -it xxx /bin/bash

4.2 提升权限

  1. su - root

4.3 安装sudo

apt-get update
apt-get install sudo
apt-get install systemctl

4.4 第二种方式:使用root用户进入容器

  1. docker exec -u root -it xxx /bin/bash

4.5 执行开启命令

  1. sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true

4.6 重启sqlserver

  1. docker restart xxx

发表评论

表情:
评论列表 (有 0 条评论,90人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL保姆安装配置

    1. MySQL概述 在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连 接。 1. 1. 数据库相关概念 在这一部分,