【转载】Docker助你攻克数据库难题,原来数据库还可以这么操作!(附实操教程)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 如何在几秒钟内打开数据库容器并且学习如何把您的数据库对象制作成Docker 镜像?

写在前面

Microsoft SQL Server 2017首次应用于Windows、Linux 和Docker 容器中。如今在容器中,您的数据库只需要花费很短的时间就可以完成安装并且不再需要其它的安装环境,使用Docker 企业版(EE)会让你的数据库交付变得更具现代化。多年来IT人员和开发人员一直享受Docker 和容器化APP所带来的这种速度和效率的优势,现在,DBAs也可以体验到这种快感了。

开启挑战

尝试登录Docker SQL Server lab(实操教程链接:https://github.com/docker/labs/tree/master/windows/sql-server),见证如何在几秒钟内打开数据库容器并且学习如何把您的数据库对象制作成Docker 镜像吧!

如果您曾安装过一次SQL Server,那么你就一定明白为什么要说这是一件不可小觑的事了:SQL Server 需要一段时间进行设置,而且在同一主机上想要运行多个独立的SQL Server实例并不简单,这会使开发人员、测试人员和CI / CD系统的维护变得非常复杂,其中进行测试和试验都有可能破坏SQL Server实例。

现在,只要在Docker容器中使用SQL Server,那么上述的难题就能迎刃而解了。获取SQL Server就像运行“ docker image pull ”命令一样简单,您可以根据需要在同一主机上启动多个SQL Server实例,并且保证每一个都是独立、纯净的实例,当您使用完一个实例后可以对它随意处置,因为它不会影响到其他的SQL Server实例。

数据库引擎同其他服务器端应用程序一样:它们也在使用CPU和内存的进程中运行,将状态存储到硬盘,并通过网络为客户端提供服务。在容器中所有运作原理都是一样的,但是您也可以通过限制资源、用Volume插件管理状态和限制网络访问的手段来获取符合您需要的理想环境。

许多Docker客户已经在使用像Postgres这样的技术了,在容器中运行高可用性的生产数据库。现在,您可以通过Docker 企业版(EE)来使数据库变的更具有可移植性,安全性和高效性。

用Docker让你的数据库交付变得更具现代化

传统的数据库交付很难适应现代的CI / CD流水线,但Docker却让它变得非常容易。您可以使用Microsoft’s SQL Server 的 Docker镜像,并通过自动化程序把您自己的数据库对象打包在镜像的顶层。这样,所有人都能通过启动一个容器来运行任何版本的数据库对象了——他们甚至不需要在其机器上安装SQL Server。

下图是用Docker来实现数据库交付的工作流程图

image

  1. DBA将数据库对象更改后推送到源代码控制中;
  2. CI流程根据Microsoft发布的SQL Server基础镜像将数据库对象打包到一个Docker镜像中;
  3. CI流程使用从新镜像中创建的一个一次性的数据库容器运行测试套件;
  4. CD流程将测试环境中持续运行的数据库容器升级到新的镜像中;
  5. CD流程运行一个用于升级生产数据库的数据库容器,应用Diff脚本将Schema与新的镜像进行对齐;

打包、测试、分发和升级的整套流程都可以通过Docker来实现自动化部署。您可以在开发和测试环境中运行数据库容器,这些环境是高速的、独立的,并且具有完全相同的数据库对象版本。您可以继续使用您现有的生产数据库,但要使用测试的Docker镜像将更新部署到生产环境中。

支持与下载

Docker 企业版(EE)是一个支持 Linux 在生产环节中运行 SQL Server 的平台。SQL Server for Linux是一个经过认证的容器镜像,这意味着您可以从Microsoft和Docker处获取解决问题的支持。

在Windows Server和Windows 10上,您可以使用Docker在容器中运行SQL Server Express,从而让现有SQL Server部署的数据库交付过程变得更具现代化,并不需要您更改生产环境中的基础设施。

全新的SQL容器将于10月份在Docker Store中供您下载。目前,来自Docker Hub的SQL Server Preview版本已经有超过100万次的下载量。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
17天前
|
SQL 数据库连接 API
Perl 教程 之 Perl 数据库连接 7
Perl DBI教程讲解了如何连接数据库,它是与数据库交互的标准接口,提供平台无关的访问。支持事务处理,可通过设置`AutoCommit => 0`在连接时开始事务或使用`$dbh->begin_work()`。事务结束后,用`commit`提交或`rollback`回滚。完成工作后,用`$dbh->disconnect`断开连接。
18 1
|
18天前
|
SQL 数据库连接 API
Perl 教程 之 Perl 数据库连接 4
Perl的DBI模块提供数据库独立接口,用于连接和操作数据库。通过prepare()预处理SQL,execute()执行,finish()释放句柄,及commit()提交事务。
12 1
|
28天前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
30天前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
126 0
|
30天前
|
SQL 关系型数据库 MySQL
2024年阿里云数据库创建_数据库账号密码和连接教程
阿里云数据库怎么使用?阿里云百科整理阿里云数据库从购买到使用全流程,阿里云支持MySQL、SQL Server、PostgreSQL和MariaDB等数据库引擎,阿里云数据库具有高可用、高容灾特性,阿里云提供数据库备份、恢复、迁移全套解决方案。详细阿里云数据库购买和使用流程方法如下
|
1月前
|
Oracle 关系型数据库 数据库
|
26天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
366 3
|
1天前
|
SQL JavaScript API
❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)
【4月更文挑战第4天】❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)在Node.js中实现删除本地数据库记录的操作。首先尝试通过SQL删除ID为8的用户,然后编写`app.delete`路由处理程序,从请求体获取ID并执行删除。。最终成功删除用户并展示了数据库的更新结果。下一节将优化增删改查功能。
12 1
|
16天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
76 3
|
19天前
|
SQL 关系型数据库 数据库连接
Perl 教程 之 Perl 数据库连接 1
Perl教程:使用DBI模块实现数据库连接,DBI是数据库独立接口,适用于Oracle、MySQL等。它定义通用方法,通过API处理SQL,分配给驱动执行。常用变量如$dsn(数据库源),$dbh(数据库句柄),$sth(语句句柄),返回值用$rc和$rv,查询结果存入@ary或(rows)。文件操作用$fh,属性用%\attr。
143 2