Docker中安装配置SqlServer

1. 下载 Sql Server 镜像

我这里安装的是 sqlsqlserver2019

docker pull mcr.microsoft.com/mssql/server:2019-latest

2. 创建挂载的文件并配置权限

1. 创建需要挂载的文件夹

# 创建要挂载的文件夹
mkdir -p /volume/sqlserver

2. 给文件夹配置权限

将目录的所有者更改为 mssql 用户(通常是用户 ID 10001)
sudo chown -R 10001:10001 /volume/sqlserver

确保 mssql 用户对目录有读写权限
sudo chmod -R 700 /volume/sqlserver

3. 启动容器

log 存储日志

backups 备份文件的目录

network 网络配置

docker run \
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=@ABC123456" \
-p 1433:1433 \
--name sqlserver2019 \
--hostname sqlserver2019 \
--network system-network \
--restart=always \
-v /volume/sqlserver/data:/var/opt/mssql/data \
-v /volume/sqlserver/log:/var/opt/mssql/log \
-v /volume/sqlserver/backups:/var/backups \
-d mcr.microsoft.com/mssql/server:2019-latest

4. 开放防火墙端口

ufw allow 1433/tcp
在使用 Docker Compose 安装 SQL Server 2017 时,需要确保系统已安装 DockerDocker Compose 环境,并进行相应的配置以满足数据库运行需求。以下是一个完整的配置指南。 ### 3.1 创建目录结构 为了保持目录结构的统一性和便于维护,可以按照以下方式创建目录: ```bash sudo mkdir -p /home/docker/mssql/{conf,data,logs} ``` - `conf`:用于存放 SQL Server 的配置文件。 - `data`:用于持久化数据库数据,避免容器删除后数据丢失。 - `logs`:用于存储 SQL Server 的运行日志和错误日志。 设置目录权限(防止容器权限问题): ```bash sudo chmod -R 777 /home/docker/mssql ``` ### 3.2 编写 `docker-compose.yml` 文件 在项目目录中创建 `docker-compose.yml` 文件,内容如下: ```yaml version: '3.8' services: mssql: image: mcr.microsoft.com/mssql/server:2017-latest container_name: mssql-server environment: - ACCEPT_EULA=Y - MSSQL_SA_PASSWORD=<YourStrong!Passw0rd> - MSSQL_PID=Standard ports: - "1433:1433" volumes: - ./mssql/data:/var/opt/mssql/data - ./mssql/logs:/var/opt/mssql/log - ./mssql/conf:/var/opt/mssql/conf restart: always ``` - `image`:使用 Microsoft 官方提供的 SQL Server 2017 镜像。 - `environment`: - `ACCEPT_EULA=Y`:接受许可协议。 - `MSSQL_SA_PASSWORD`:设置 SA 用户的密码(必须满足 SQL Server 密码策略)。 - `MSSQL_PID=Standard`:指定产品版本,可选值包括 `Express`、`Standard`、`Enterprise` 等。 - `ports`:将容器的 1433 端口映射到宿主机的 1433 端口,便于外部访问。 - `volumes`:将本地目录挂载到容器中,实现数据持久化。 - `restart`:设置容器重启策略,确保容器在系统重启后自动启动。 ### 3.3 启动容器 执行以下命令启动 SQL Server 容器: ```bash docker-compose -p mssql -f ./docker-compose.yml up -d ``` - `-p mssql`:指定项目名称,便于后续管理。 - `-f ./docker-compose.yml`:指定配置文件路径。 - `-d`:后台运行容器。 ### 3.4 验证 SQL Server 是否正常运行 可以通过以下命令查看容器日志,确认 SQL Server 是否成功启动: ```bash docker-compose -p mssql -f ./docker-compose.yml logs ``` 也可以使用 `sqlcmd` 工具进入容器执行 SQL 查询: ```bash docker exec -it mssql-server /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P "<YourStrong!Passw0rd>" ``` 在交互式命令行中输入以下命令查看数据库信息: ```sql SELECT @@VERSION; GO ``` ### 3.5 数据备份与恢复建议 为了确保数据安全,建议定期进行数据库备份,并将备份文件存储在持久化卷中。可以创建一个脚本文件 `backup.sh` 并挂载到容器中执行: ```bash #!/bin/bash /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourStrong!Passw0rd>" -Q "BACKUP DATABASE [YourDB] TO DISK = N'/var/opt/mssql/backup/YourDB.bak' WITH NOFORMAT, NOINIT, NAME = 'YourDB-backup', SKIP" ``` 挂载该脚本并在容器中执行: ```bash chmod +x backup.sh docker cp backup.sh mssql-server:/backup.sh docker exec -it mssql-server /bin/bash /backup.sh ``` ### 3.6 安全加固建议 - **密码策略**:确保 SA 密码足够复杂,符合 SQL Server 安全要求。 - **防火墙配置**:限制外部对 1433 端口的访问,仅允许授权 IP 访问。 - **定期更新**:定期检查并更新 SQL Server 镜像版本,确保安全补丁及时应用。 - **日志监控**:启用 SQL Server 的日志记录功能,并定期分析日志以检测异常行为。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你小子在看什么……

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值