# 前言
本篇时间为 2023 年 9 月,主要记录 MSSQL 部署过程及遇到的问题,后续官方可能发布了新的版本以支持 Ubuntu22.04。微软的 MSSQL 截止目前仅支持到 ubuntu20.04,如果使用 ubuntu22.04 安装则会出现依赖报错的情况,因此在 ubuntu22.04 仅能使用 docker 上的 dev 版本的 MSSQL 作为平替。
# 部署 MSSQL
编写 docker-compose.yml
version: '3'
services:
mssql-server:
image: mcr.microsoft.com/mssql/server:2022-latest
environment:
SA_PASSWORD: {your password}
ACCEPT_EULA: y
ports:
- "1433:1433"
volumes:
- ./data:/var/opt/mssql
修改
{your password}
部分为sa
账户的初始密码。启动运行
docker compose up -d
# docker-compose up -d # 旧版本命令
# 遇到的问题
无法创建目录
由于 docker 镜像里使用的用户 Id 是 10001(linux 系统的识别的是用户的 Id,用户名只是别名)这个用户,如果本地目录.data 所属的用户其 id 不是 10001 则 docker 内部的容器无权限操作。而解决的方法也很简单:
sudo chown 10001 ./data
密码强度不够
ERROR: Unable to set system administrator password: Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..
该版本要求 sa 的密码必须包含大写字母、小写字母、数字或者符号中的三种,且必须大于 8 个字符,不符合条件时容器会自动停止运行。