部署方案对比
| 特性 | Docker 命令行方式 | Docker ***pose 方式 |
|---|---|---|
| 适用场景 | 快速测试、简单部署、临时使用 | 正式部署、复杂应用、多环境配置、需要版本控制 |
| 配置管理 | 单行命令,难以复用 | 声明式 YAML 文件,易于管理和版本控制 |
| 持久化 | 需手动指定主机绝对路径 | 支持命名卷和相对路径,管理更方便 |
| 安全性 | 密码在命令历史中可见 | 可通过 .env 文件隔离敏感信息 |
| 管理复杂度 | 简单 | 需要编写 YAML 文件 |
| 扩展性 | 较差 | 极佳,可轻松定义多服务应用 |
一、Docker 命令行方式
这种方式直接使用 docker run 命令,适合快速测试和简单部署
1. 拉取官方镜像
从 Microsoft Container Registry 拉取 SQL Server 2022 的最新 Linux 镜像
docker pull mcr.microsoft.***/mssql/server:2022-latest
-
注意:如需其他版本(如 2019),将标签改为
:2019-latest
2. 创建本地数据目录(用于持久化)
为了避免容器删除后数据丢失,需要在宿主机上创建一个目录来映射容器内的数据存储位置
mkdir -p /usr/local/docker/sqlserver/data
3. 运行容器命令(最关键的步骤)
docker run -d \
--name sql-server \
-e "A***EPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=sqlserver@7740" \
-e "MSSQL_PID=Developer" \
-p 1433:1433 \
-v /usr/local/docker/sqlserver/data:/var/opt/mssql \
--memory="4g" \
--restart unless-stopped \
--user root \
mcr.microsoft.***/mssql/server:2019-latest