net-mssql:20251120,集成了MSSQL 2022、ASP.NET Core 6.0 Runtime、Redis,仅支持amd64
5.6K
基于x64位Ubuntu 22.04的企业级容器化通用解决方案,集成了Microsoft SQL Server 2022、ASP.NET Core 6.0 Runtime、Redis缓存和自动化定时任务管理。使用s6-overlay进行服务生命周期管理,支持自动数据库备份、配置文件生成和服务状态监控。
项目地址:https://github.com/DoTheBetter/docker/tree/master/net-mssql
数据库服务: Microsoft SQL Server 2022
应用运行环境: ASP.NET Core 6.0 Runtime
缓存服务: Redis
任务调度: Cron
容器首次启动时会自动执行以下初始化步骤:
initdb.* 开头的初始化文件(如果存在)initdb. 为前缀的名称(例如:initdb.mydb.bak);/data/mssql/initdb/ 目录中;import-initdb-file.sh 脚本,在其中添加相应的数据库导入命令。容器启动时会自动执行该脚本,完成数据导入。
注意:在导入前,系统会自动对同名数据库进行备份,备份文件命名格式为:
[update]backup_<DBName>_<YYYYMMDD_HHMMSS>.bak(例如:[update]backup_mydb_20251119_143022.bak)。
/data/app目录放入.NET应用程序文件及相应配置文件/data/mssql/backup/[cron]backup_DBName_YYYYMMDD_HHMMSS.bak下面是可用于自定义安装的可用选项的完整列表。
| 变量名 | 是否必须 | 默认值 | 说明 |
|---|---|---|---|
TZ | 可选 | Asia/Shanghai | 设置时区 |
WEB_URLS | 必需 | 无 | Web页面访问地址,例: http://192.168.10.200:8083或https://www.123.com |
MSSQL_SA_PASSWORD | 必需 | YourStrong@Pass123 | SQL Server管理员密码,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符 |
MSSQL_DB_NAME | 必需 | YZY | .NET应用程序数据库名称 |
DOTNET_INDEX_NAME | 必需 | HLP_BusinessWebUI.dll | .NET应用程序启动文件 |
MSSQL_PID | 可选 | Developer | SQL Server版本(Developer/Express/Standard/Enterprise) |
MSSQL_COLLATION | 可选 | Chinese_PRC_CI_AS | 数据库排序规则 |
ENABLE_CRON | 可选 | true | 启用定时任务备份,true为开,false为关 |
CRON_SCHEDULE | 可选(ENABLE_CRON=true时必需) | 2 0 */7 * * | 备份任务时间表达式(每7天凌晨执行) |
CRON_RETAIN_RECENT_DAYS | 可选(ENABLE_CRON=true时必需) | 60 | 近期备份保留天数,单位:天 |
CRON_RETAIN_MONTHLY_MONTHS | 可选(ENABLE_CRON=true时必需) | 6 | 月度备份保留月数,单位:月 |
DOTNET_UID | 可选 | 1000 | .NET应用程序用户UID |
DOTNET_GID | 可选 | 1000 | .NET应用程序用户GID |
| 端口 | 协议 | 描述 |
|---|---|---|
1433 | TCP | SQL Server默认端口 |
8080 | TCP | .NET应用程序端口 |
下面的目录用于配置,并且可以映射为持久存储。
| 目录 | 描述 | 权限要求 |
|---|---|---|
/data/mssql | SQL Server数据文件和备份存储 | mssql用户读写权限 |
/data/redis | Redis持久化数据和配置文件 | redis用户读写权限 |
/data/app | .NET应用程序文件和依赖 | dotnetuser用户读写权限 |
本镜像在 docker hub,ghcr.io 及 aliyuncs同步推送,docker hub 不能使用时可使用其他仓库
docker run -d \
--name net-mssql \
--restart on-failure:3 \
--privileged \
-e WEB_URLS=https://www.123.com:8080 \
-e MSSQL_SA_PASSWORD=YourStrong@Pass123 \
-e MSSQL_DB_NAME=YZY \
-e DOTNET_INDEX_NAME=HLP_BusinessWebUI.dll \
-e DOTNET_UID=1000 \
-e DOTNET_GID=1000 \
-e "CRON_SCHEDULE=2 0 */7 * *" \
-p 8080:8080 \
-v /docker/net-mssql:/data \
dothebetter/net-mssql:20251120
#ghcr.io/dothebetter/net-mssql:20251120
#registry.cn-hangzhou.aliyuncs.com/dothebetter/net-mssql:20251120
version: '3'
services:
net-mssql:
image: dothebetter/net-mssql:20251120
#ghcr.io/dothebetter/net-mssql:20251120
#registry.cn-hangzhou.aliyuncs.com/dothebetter/net-mssql:20251120
container_name: net-mssql
restart: on-failure:3
privileged: true
environment:
- WEB_URLS=https://www.123.com:8080
- MSSQL_SA_PASSWORD=YourStrong@Pass123
- MSSQL_DB_NAME=YZY
- DOTNET_INDEX_NAME=HLP_BusinessWebUI.dll
- DOTNET_UID=1000
- DOTNET_GID=1000
- CRON_SCHEDULE=2 0 */7 * *
ports:
- 8080:8080
volumes:
- /docker/net-mssql:/data
version: '3'
services:
net-mssql:
image: dothebetter/net-mssql:20251120
container_name: net-mssql-prod
restart: on-failure:3
privileged: true
environment:
- TZ=Asia/Shanghai
- WEB_URLS=https://www.123.com:8080
- MSSQL_SA_PASSWORD=YourStrong@Pass123
- MSSQL_DB_NAME=YZY
- MSSQL_COLLATION=Chinese_PRC_CI_AS
- MSSQL_PID=Express
- DOTNET_INDEX_NAME=HLP_BusinessWebUI.dll
- DOTNET_UID=1000
- DOTNET_GID=1000
- ENABLE_CRON=true
- CRON_SCHEDULE=2 0 */7 * * # 每周凌晨2点
- CRON_RETAIN_RECENT_DAYS=90 # 保留近期备份90天
- CRON_RETAIN_MONTHLY_MONTHS=12 # 保留月度备份12个月
ports:
- 1433:1433
- 8080:8080
volumes:
- /docker/net-mssql:/data
Content type
Image
Digest
sha256:78ffef454…
Size
587.1 MB
Last updated
10 months ago
docker pull dothebetter/net-mssql:20251120