Docker 安装 SQLserver

CentOS 下安装 SQLserver2017 并导入 bak 备份

Posted by xtong on October 9, 2022

在 Linux 服务器上安装运行 SQLserver2017,并导入 bak 格式备份。

CentOS 安装 docker

使用官方脚本自动安装

1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

启动服务

1
service docker start

docker 安装 SQLserver2017

从 Microsoft 容器注册表中请求 SQL Server 2017 (14.x) Linux 容器映像。

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

查看镜像

1
docker images

运行容器

1
2
3
4
5
6
7
# 示例
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2017-latest

# 密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。   

可以不使用后台运行,使用screen,只在用的时候打开它。

1
2
3
4
screen -S mssql

vim mssql.sh

编写脚本

1
2
3
#!/bin/bash
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<密码>" -p <端口号>:1433 --name sql1 --hostname sql1 mcr.microsoft.com/mssql/server:2017-latest
# 密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。  

给予执行权限

1
2
3
4
5
chmod +x mssql.sh

./mssql.sh

ctrl + a, ctrl + d

关闭 SQLserver

1
2
3
4
5
screen -r mssql

ctrl + c, ctrl + a, ctrl + d

或者直接 ctrl + c, ctrl + d

连接到 SQLserver

1
2
3
4
5
docker exec -it sql1 "bash"

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<密码>"
# 或者
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA

创建数据库

1
2
3
CREATE DATABASE TestDB;
SELECT Name from sys.databases;
GO

还原 bak

服务器

  • CentOS 7.6 2c4g

参考资料