【转载】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
目录
相关文章
|
23天前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
111 18
|
4月前
|
关系型数据库 MySQL 数据库连接
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
667 82
|
9月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
688 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
4月前
|
SQL 数据库 Docker
【赵渝强老师】在Docker中运行达梦数据库
本文介绍了在Docker容器中部署达梦数据库(DM 8)的具体步骤,包括创建文件夹、下载安装包、导入镜像、启动容器、登录数据库及查看状态等操作。同时,通过视频讲解辅助理解。文中还分析了将数据库服务容器化的潜在问题,如数据安全性、硬件资源争用、网络带宽占用和额外隔离带来的挑战,指出数据库服务在生产环境中可能不适合容器化的原因。
197 4
【赵渝强老师】在Docker中运行达梦数据库
|
4月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
227 30
|
6月前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
533 79
|
5月前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
470 42
|
5月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
139 19
|
5月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
144 20
|
5月前
|
存储 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 8 数据库生态
PolarDB是一款开源的云原生分布式数据库,源自阿里云商业产品。为降低使用门槛,PolarDB携手伙伴打造了完整的开源生态,涵盖操作系统、芯片、存储、集成管控、监控、审计、开发者工具、数据同步、超融合计算、ISV软件、开源插件、人才培养、社区合作及大型用户合作等领域。通过这些合作伙伴,PolarDB提供了丰富的功能和服务,支持多种硬件和软件环境,满足不同用户的需求。更多信息请访问[PolarDB开源官方网站](https://openpolardb.com/home)。
224 4