随着.Net Core迭代,大家也都用上了Linux用上了Docker。跟.Net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持运行在Docker上,也就说现在SQL Serer已经可以运行在Linux/Docker下了。
下来将演示SQL Server 2019运行在Docker下

  • 先决条件

  1. 任何受支持的 Linux 分发或用于 Mac/Windows 的 Docker 上的 Docker 引擎 1.8+。

  2. 有关详细信息,请参阅 Install Docker(安装 Docker)。 Docker overlay2 存储驱动程序。 这是大多数用户的默认设置。 如果发现自己未使用此存储提供程序并且需要进行更改,请参阅 docker 文档中有关配置 overlay2 的说明和警告。

  3. 至少 2 GB 的磁盘空间。

  4. 至少 2 GB 的 RAM。 Linux 上的 SQL Server 的系统要求。

  • 拉取并运行 2019 容器映像

Linux Docker 从 Microsoft 容器注册表中拉取 SQL Server 2019容器映像

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

Windows Docker Desktop下从 Microsoft 容器注册表中拉取 SQL Server 2019容器映像,以管理员身份运行CMD或PowerShell执行一下命令

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

待结束后,执行以下命令即可看到我们拉取成功的镜像

docker images   

要使用 Docker 运行容器映像,可以从 Bash Shell (Linux/macOS) 或提升的 PowerShell 命令提示符使用以下命令,Linux下使用sudo提升运行权限

docker run -v /d/MSSQL:/var/opt/mssql --name sqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=2019@123' -p 17951:1433 -d mcr.microsoft.com/mssql/server:2019-latest

如下图已运行成功

参数说明:

参数 说明
-e 'ACCEPT_EULA=Y' 设置此参数说明同意 SQL SERVER 使用条款 , 否则无法使用
-e 'SA_PASSWORD=密码' 此处设置 SQL SERVER 数据库 SA 账号的密码
-p 17951:1433 将宿主机 17951端口映射到容器的 1433 端口
--name sqlserver 设置容器名为 mssql
-v /d/MSSQL:/var/opt/mssql 将windnows宿主机目录D:\MSSQL 映射到容器 /var/opt/mssql , 方便备份数据
-d 在后台运行

查看 Docker 容器

docker ps -a

应会看到与以下屏幕截图类似的输出

连接到 SQL Server

使用客户端工具Microsoft SQL Server Management 连接

连接成功

我们在客户端Microsoft SQL Server Management 创建测试数据Test,可以在我们本地映射的目录D:\MSSQL\data看到

如需还原数据库我们可将xxx.bak,文件拷贝至D:\MSSQL\data在客户端工具中还原即可,如下图

使用命令在容器内部交互

使用 docker exec -it 命令在运行的容器内部交互,下来我们将结束通过命令在容器内部交互还原数据 /查询/备份等。

docker exec -it sqlserver bash

使用命令在内部连接,在容器内部使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P [数据库密码]

如果成功,应会显示 sqlcmd 命令提示符:1>

在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:

CREATE DATABASE MyDB

在下一行中,编写一个查询以返回服务器上所有数据库的名称

SELECT Name from sys.Databases

前两个命令并没有立即执行。 在新行中键入 GO 以执行以前的命令

GO      

插入数据

接下来创建一个新表 MyTable,然后插入两个新行。

在 sqlcmd 命令提示符中,将上下文切换到新的MyDB 数据库:

USE MyDB

创建名为 MyTable的新表:

CREATE TABLE MyTable (id INT, name NVARCHAR(50), quantity INT)

并为MyTable表插入数据

INSERT INTO MyTable VALUES (1, 'banana', 150); INSERT INTO MyTable VALUES (2, 'orange', 154);

要执行上述命令的类型 GO

GO 

在Microsoft SQL Server Management中查看数据

在容器内部查询数据

SELECT * FROM MyTable WHERE id =1;

执行以上命令

GO 

要结束 sqlcmd 会话,请键入 QUIT

今天就分享至此,感谢你的阅读。

Docker 运行 SQL Server 容器映像的更多相关文章

  1. 使用Docker运行SQL Server

    现在.net core已经跨平台了,大家也都用上了linux用上了docker.跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始 ...

  2. 开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs

    原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...

  3. 关于解决Mac使用docker安装SQL server for Linux 中文乱码问题

    本人是Mac的追随者,无奈本学期数据库课要求使用Microsoft的SQL server.但是Microsoft并没有发布SQL server for Mac ,笔者使用Google搜索后, 发现可以 ...

  4. cmd运行sql server安装

    cmd运行sql server安装 SQL2012非群集安装_更新到最新版本.bat setup.exe /UpdateSource=.\hotfix\Latest /ACTION="Ins ...

  5. 运行sql server profiler所需的权限

    ********运行Sql Server Profiler所需的权限(performance)*********/ --EG. -- 使用TRACE帐户(Performancetest)跟踪Sql S ...

  6. 初识Docker和Windows Server容器

    概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器.它集成了Docker对Windows S ...

  7. [Docker] - 安装 SQL Server 2019,使用 SSMS 进行登录

    镜像仓库 https://hub.docker.com/_/microsoft-mssql-server 拉取镜像并进行安装(以 SQL Server 2019 CTP 3.2 为例) docker ...

  8. Docker windows nano server容器中安装ssh实现远程登录管理

    [问题] 使用ServiceMonitor.exe作为前台进程运行起来的容器无法attach. 无法远程连接到运行中的容器中进行管理. [解决方法] 在container中新建管理员用户,通过SSH实 ...

  9. 在Win8.1系统下如何安装运行SQL Server 2005 (以及安装SQL Server 2005 Express打补丁)

    在Win8.1系统下SQL Server 2005 安装失败怎么办? 需要替换两个文件及打sqlserver sp4补丁. 以下是操作过程. 按正常情况,在Win8/Win8.1系统下安装微软的SQL ...

随机推荐

  1. 这就是小学生也会用的四则计算练习APP吗?- by软工结对编程项目作业

    结对编程项目 软件工程 这就是链接 作业要求 这就是链接 作业目标 熟悉在未结对情况下如何结对开发项目 Github与合作者 合作者(学号): 区德明:318005422 虚左以待 Github链接: ...

  2. LiteOS-任务篇-源码分析-任务调度函数

    目录 前言 笔录草稿 核心源码分析 osTaskSchedule函数源码分析 osPendSV函数源码分析 TaskSwitch函数源码分析 调度上层源码分析 osSchedule函数源码分析 LOS ...

  3. Oracle体系结构概述与SQL解析剖析

    Oracle服务器 是一个数据库管理系统,它提供了一种全面.开放.集成的方法来管理信息. Oracle服务器由Oracle数据库和Oracle实例组成. oracle数据库软件和Oracle数据库软件 ...

  4. 迅雷bt种子的制作

    BT是目前最热门的下载方式之一,它的全称为"BitTorrent"简称"BT",中文全称"比特流",但很多朋友将它戏称为"变态下载 ...

  5. Consul 学习笔记—服务发现

    前言: 上一篇文章简单实用Consul试下服务注册,本篇继续学习Consul中的另外特性:服务发现.KV操作 :以及对上篇文章中存在的问题进行解决 问题解决 在上一篇文章中,注册服务提示检查失败. 通 ...

  6. 服务器同一个tomcat部署2两个相同的项目

    项目A,B(B 是A 的复制) 若把A,B工程同时部署到tomcat下,会发生只能访问A,B工程中的其中一个,而另一个会出现404错误(或者无法访问),此时可参照如下方法解决: 步骤1:找到工程下的w ...

  7. jmeter环境变量配置

    参考博客:超全 https://blog.csdn.net/qq_39720249/article/details/80721777

  8. Anderson《空气动力学基础》5th读书笔记 第0记——白金汉PI定理

    目录 量纲分析:白金汉PI定理 相似参数 量纲分析:白金汉PI定理 在空气动力学中,飞机的空气动力主要由自由来流的密度ρ∞,自由来流数V∞,翼弦长度c,自由来流的粘性系数μ∞以及音速a∞,所以假设我们 ...

  9. docker 启动容器restart 策略

    docker 运行容器时使用--restart 参数可以指定一个restart策略,来指定容器应该如何重启,或不应该重启,当容器启用restart策略时,将会载docker ps 显示up 或者res ...

  10. 浅谈DevOps

    DevOps: Development和Operations的组合,是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控. 可以把DevOps看作系统开发 ...