Docker上安装MSSQL(SQL Server)

本文介绍了如何在MacOSX系统中通过Docker轻松安装和管理Microsoft的MSSQL Server数据库。首先,通过docker search mssql找到镜像,然后使用docker pull命令下载。接着,利用docker run命令创建并运行容器,设置复杂的SA_PASSWORD。随后,通过docker exec进入容器,并使用sqlcmd连接和执行SQL语句创建数据库。最后,演示了如何在Docker中还原数据库的步骤,包括将备份文件复制到容器内并执行RESTORE DATABASE命令。

Mac OS X ,想安装微软的mssql-server数据库有三种方式:

  • 第一种是在本机上安装MSSQL for Linux 版本。
  • 第二种是安装Windows虚拟机,然后在虚拟机里面使用ISO文件进行安装。
  • 第三种也就是我要讲的方式,就是使用Docker进行安装。

第一种方式和第二种方式缺点就是要自己找安装包,第三种方式直接通过Docker的命令docker search mssql就能搜索出来,然后拉取创建容器即可。

微软也提供了相应的帮助文档

镜像是微软官方的,但docker hub 奇怪的是并没有把其标示为OFFICIAL。

1.下载镜像

docker pull microsoft/mssql-server-linux

使用该命令就可以把数据库的docker镜像下载下来。

2.创建并运行容器

docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux

这个密码需要复杂密码,要有大小写和特殊符号,替换yourStrong(!)Password成你自己的密码就行。如果只Linux服务器,可以不用端口映射,直接使用宿主模式

docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' --net=host -d microsoft/mssql-server-linux

3.登入容器

docker exec -it '容器里数据库名' /bin/bash

4.连接到sqlcmd

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password'

5.执行SQL语句创建数据库

CREATE DATABASE testDB

go

如果只想创建数据库,已经可以完成了,用Navicat Premium就可以连接到数据库了。

6.还原数据库

在容器内先创建一个文件夹

mkdir /var/opt/mssql/backup

在宿主把.bak备份文件复制到容器

sudo docker cp /Users/front/Downloads/beifen.bak MSSQL_1433:/var/opt/mssql/backup

运行sqlcmd到逻辑文件名称和备份内的路径的列表容器内

sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost  -U SA -P 'yourStrong(!)Password'  -Q 'RESTORE FILELISTONLY FROM DISK =  "/var/opt/mssql/backup/beifen.bak"'  | tr -s ' ' | cut -d ' ' -f 1-2

运行结果

LogicalName PhysicalName

----------------------------------

beifen D:\Program

beifen_log D:\Program

还原数据库

sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'RESTOREDATABASE 数据库名 FROM DISK = "/var/opt/mssql/backup/beifen.bak" WITH MOVE "beifen" TO"/var/opt/mssql/data/beifen.mdf", MOVE "beifen_Log" TO "/var/opt/mssql/data/beifen.ldf"'

Done

​​​​​​​

 

要在麒麟系统的 Docker 环境下安装 SqlServer2022,可按以下步骤操作: ### 1. 确保主机服务器满足要求 主机服务器需是任何受支持的 Linux 分发版(这里是麒麟系统),装有 Docker 引擎 1.8 或更高版本,至少 2 GB 的内存以及 2 GB 的磁盘空间 [^1]。 ### 2. 部署 Docker(若未安装) - **查看系统架构**: ```bash uname -a uname -m ``` - **卸载旧版本 Docker**:若系统中存在旧版本 Docker,需要进行卸载 [^3]。 ### 3. 下载 SqlServer2022 镜像 可在 Docker 中下载 SqlServer2022 镜像。 ### 4. 启动运行容器 启动容器时,需要设置相关参数。在微软的 DockerSqlServer 中,有参数 `MSSQL_PID`,默认是开发版本,若未指定则为开发版 [^2]。示例命令如下: ```bash docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Pwd@123XXXX' -e 'MSSQL_PID=Developer' -p 1433:1433 --name sqlserver -v /home/docker/sqlserver/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest ``` 其中: - `-e 'ACCEPT_EULA=Y'`:表示接受最终用户许可协议。 - `-e 'MSSQL_SA_PASSWORD=Pwd@123XXXX'`:设置 SA 用户的密码。 - `-e 'MSSQL_PID=Developer'`:指定版本为开发版。 - `-p 1433:1433`:将主机的 1433 端口映射到容器的 1433 端口。 - `--name sqlserver`:为容器指定名称为 `sqlserver`。 - `-v /home/docker/sqlserver/mssql:/var/opt/mssql`:将主机的 `/home/docker/sqlserver/mssql` 目录挂载到容器的 `/var/opt/mssql` 目录。 - `-d mcr.microsoft.com/mssql/server:2022-latest`:使用 SqlServer2022 的最新镜像在后台运行容器。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值