docker快速启动sqlserver实例并自动测试shell脚本

注:自备网络环境

bash 复制代码
#!/bin/bash
# ============================================================
# Docker 一键部署 SQL Server 2022 + 自动测试
# ============================================================

SA_PASSWORD="YourStrong@Passw0rd"
CONTAINER_NAME="sqlserver-test"
PORT=1433
IMAGE="mcr.microsoft.com/mssql/server:2022-latest"

echo "==> [1/4] 拉取 SQL Server 镜像..."
docker pull $IMAGE

echo "==> [2/4] 启动容器..."
docker run -d \
  --name $CONTAINER_NAME \
  -e "ACCEPT_EULA=Y" \
  -e "SA_PASSWORD=$SA_PASSWORD" \
  -e "MSSQL_PID=Developer" \
  -p $PORT:1433 \
  --memory="2g" \
  --restart unless-stopped \
  $IMAGE

echo "==> [3/4] 等待 SQL Server 就绪(最多 60 秒)..."
for i in $(seq 1 12); do
  sleep 5
  STATUS=$(docker exec $CONTAINER_NAME \
    /opt/mssql-tools18/bin/sqlcmd \
    -S localhost -U sa -P "$SA_PASSWORD" \
    -Q "SELECT 1" -No 2>/dev/null)
  if [ $? -eq 0 ]; then
    echo "    SQL Server 已就绪!"
    break
  fi
  echo "    等待中...($((i*5))s)"
done

echo "==> [4/4] 执行基础测试..."
docker exec $CONTAINER_NAME \
  /opt/mssql-tools18/bin/sqlcmd \
  -S localhost -U sa -P "$SA_PASSWORD" -No \
  -Q "
-- 建库
CREATE DATABASE TestDB;
GO

USE TestDB;
GO

-- 建表
CREATE TABLE Users (
  Id    INT IDENTITY(1,1) PRIMARY KEY,
  Name  NVARCHAR(100) NOT NULL,
  Email NVARCHAR(200),
  CreatedAt DATETIME DEFAULT GETDATE()
);
GO

-- 插入数据
INSERT INTO Users (Name, Email) VALUES
  (N'张三', 'zhangsan@example.com'),
  (N'李四', 'lisi@example.com'),
  (N'王五', 'wangwu@example.com');
GO

-- 查询
SELECT * FROM Users;
GO

-- 统计
SELECT COUNT(*) AS TotalUsers FROM Users;
GO
"

echo ""
echo "=============================="
echo " 部署完成!连接信息:"
echo "  主机: localhost:$PORT"
echo "  用户: sa"
echo "  密码: $SA_PASSWORD"
echo "=============================="

停止并删除实例:

bash 复制代码
docker stop sqlserver-test && docker rm sqlserver-test
相关推荐
米高梅狮子11 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
比特森林探险记11 小时前
context 在 gRPC / Gin / K8s 中的实战
容器·kubernetes·gin
米高梅狮子12 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github
代码熬夜敲Q13 小时前
Docker基础
运维·docker·容器
亚空间仓鼠13 小时前
Docker容器化高可用架构部署方案(十四)
docker·容器·架构
日取其半万世不竭13 小时前
OpenCost:Kubernetes 成本监控,开源的云资源费用分析
容器·kubernetes·开源
万里侯14 小时前
Ansible自动化运维实战:从入门到生产级应用
微服务·容器·k8s
Cat_Rocky14 小时前
k8s zabbix7学习-设置告警
学习·容器·kubernetes
容器魔方15 小时前
华为云云容器引擎CCE 2026-Q1优化升级,全面进化您的云原生体验!
大数据·分布式·云原生·容器·云计算
Zhu75815 小时前
【配置优化】docker29及以上版本配置优化。
docker