-目录-
一、安装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 容器映像。
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。
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \ -p 1433:1433 --name sql1 --hostname sql1 \ -d \ mcr.microsoft.com/mssql/server:2022-latest
2.3 要查看 Docker 容器,请使用 docker ps 命令。
sudo docker ps -a
应该会看到与下面类似的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm..." 2 minute
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 错误日志:
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”
可以省略命令行上提示要输入的密码。 下面是一个示例:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA
3.3 如果成功,应会显示 sqlcmd 命令提示符:1>。
四、开启sqlserver数据库代理
4.1 进入容器
docker exec -it xxx /bin/bash
4.2 提升权限
su - root
4.3 安装sudo
apt-get update
apt-get install sudo
apt-get install systemctl
4.4 第二种方式:使用root用户进入容器
docker exec -u root -it xxx /bin/bash
4.5 执行开启命令
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
4.6 重启sqlserver
docker restart xxx