You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在已运行的Docker容器中启用SQL Server Agent且不丢失现有配置

运行中Docker SQL Server容器启用SQL Server Agent方案

报错原因说明

你之前执行的sp_configure开启Agent XPs仅为数据库层面的配置开关,Docker版SQL Server默认在容器系统层面禁用了SQL Server Agent服务的启动权限,底层服务未实际运行,因此单纯修改数据库配置会触发22022、1053报错。

前置操作(必做)

操作前先备份核心数据,避免意外丢失:

# 也可以直接执行数据库备份命令导出bak文件,二选一即可
docker commit <你的SQL Server容器ID/名称> mssql-backup:$(date +%Y%m%d)

方案1:直接修改现有容器配置(无需创建新容器)

该方案仅需要重启现有容器,不会丢失任何已有数据库和配置:

  1. 以root身份进入运行中的容器终端
docker exec -it --user root <你的SQL Server容器ID/名称> bash
  1. 执行官方配置命令开启SQL Server Agent开关
/opt/mssql/bin/mssql-conf set sqlagent.enabled true
  1. 退出容器终端,重启现有容器生效
docker restart <你的SQL Server容器ID/名称>
  1. 验证配置生效
    容器启动完成后登录SQL Server执行以下命令,确认run_value为1即配置成功:
exec sp_configure 'Agent XPs'

方案2:提交镜像启动新容器(适合需要保留历史版本场景)

如果需要留存当前容器的完整状态,可选择该方案:

  1. 将现有容器提交为自定义镜像,所有数据库、配置都会保留在镜像中
docker commit <你的SQL Server容器ID/名称> mssql-custom:v1
  1. 基于自定义镜像启动新容器,传入Agent启用的环境变量,所有原有端口、密码、卷挂载配置和旧容器保持一致即可
docker run -d \
-p 1433:1433 \
-e "MSSQL_AGENT_ENABLED=true" \
-e "SA_PASSWORD=<你的原有SA密码>" \
-v <原有数据卷名称>:/var/opt/mssql \
--name mssql-new \
mssql-custom:v1
  1. 验证新容器内所有数据库、配置正常后,可按需删除旧容器。

内容的提问来源于stack exchange,提问作者Miguel Bustamante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:57:01