Docker上安装MSSQL(SQL Server)
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
最新文章
- Code::Blocks如何支持C++11特性
- WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
- svn 强制用户添加注释 和 允许用户修改注释
- hdu----(2222)Keywords Search(ac自动机)
- 【转】数据库范式(1NF 2NF 3NF BCNF)详解一
- RHadoop教程翻译系列 _Mapreduce(1)_第一个Mapreduce任务
- .c和.h文件的区别(头文件与之实现文件的的关系~ )
- 注解配置 ssh
- SDCard助手类
- AES加密 C++调用Crypto++加密库 样例
- Android开发Tips-1
- EasyUI内容页Tabs。
- Linux服务器断电导致挂载及xfs文件损坏的修复方法
- 暖春许愿季丨i春秋给你送福利
- 使用Ant Build时提示错误: 编码GBK的不可映射字符
- 实现判断条件中有in的判断
- 『TensorFlow』slim模块常用API
- 顺藤摸瓜:一个专黑建筑行业的QQ黏虫团伙现形记
- 从零开始学 Web 之 Ajax(一)服务器相关概念
- Rancher的简单部署和使用
热门文章
- 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介
- elasticsearch之search template
- LeetCode-343. 整数拆分 - 题解分析
- 浅谈Pytest中的warning处理
- MySQL-多表查询的两种方法、Navicat、python操作MySQL
- IDEA启动报错 NoClassDefFound
- 滴水 10/13号完成 打印出DOS PE头 节表 开源
- js中的Object.keys、array.map、groupBy、call、apply总结分享
- 自动化测试如此容易!多语言自动化测试框架 Selenium 编程(C#篇)
- Linux服务器数据备份恢复