Docker最全教程——数据库容器化(十)

终于按时完成第二篇。本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续——数据库容器化。本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容器化实践,中间再穿插一些知识点和实践细节。在编写的过程中,我一直处于一种矛盾的心理,是一笔带过呢?还是尽可能的将实践细节全部讲到位呢?最后,我选择了后者,虽然要花费更多的精力,但是既然开始了本次教程,就尽量写到位吧。

 

目录

Docker最全教程——数据库容器化(十)

 

数据库容器化 什么是数据库?

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。因此,所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

目前主流的数据库分为关系型数据库和非关系型数据库(NoSQL)。

 

关系型数据库和非关系型数据库对比

Docker最全教程——数据库容器化(十)

主流的数据库 关系型数据库:

· Microsoft SQL Server(Microsoft)

· MySQL(开源)

· Oracle(甲骨文)

· MariaDB(MySQL的代替品)

· PostgreSQL(开源)

· DB2(IBM)

 

非关系型数据库:

· MongoDB(面向文档)

· CouchDB(面向文档,Apache基金会)

· Redis(键值对数据库)

· MemcacheDB(键值对数据库)

· Hypertable

· Hadoop HBase

 

数据库容器化

随着Docker的流行,主流的数据库厂商均提供了相关的Docker镜像,因此我们能够非常方便的将数据库托管到容器之中,用于测试和开发环境(现阶段)

注意,现阶段我们不推荐在容器中托管正式环境的数据库,目前数据库容器化还存在一些问题、不适应性以及质疑,并且还缺乏成熟的案例和方案(已经有很多厂商在做这块的探索了,包括阿里、京东)。

数据库容器化绝不是一个伪命题,数据库容器化是值得我们来探索的一个方向,而且应是一种必然的趋势。在本篇中,我们不做过多探讨。

Docker最全教程——数据库容器化(十)

接下来,笔者将逐步和大家分享如何将主流的数据库托管到容器之中。

 

Sql Server容器化

SQL Server是由Microsoft开发和推广的关系数据库,其在操作数据库管理系统 (ODBMS) 领域处于领先水平,目前已经提供SQL Server 2019预览版。其中,SQL Server 2017 跨出了重要的一步,它力求通过将 SQL Server 的强大功能引入 Linux、基于 Linux 的 Docker 容器和 Windows,使用户可以在 SQL Server 平台上选择开发语言、数据类型、本地开发或云端开发,以及操作系统开发。

因此,在本篇教程中,我们将使用SQL Server 2017来进行演示。

Docker最全教程——数据库容器化(十)

 

镜像说明

官方镜像分为Windows版本和Linux版本,官方镜像说明页为:

https://hub.docker.com/r/microsoft/mssql-server

这里我们主要介绍Linux版本的镜像。

环境要求

· Docker Engine 1.8+。

· Docker overlay2存储驱动程序。

· 至少2 GB的磁盘空间。

· 至少2 GB 的 RAM。如果您在Docker for Mac或Windows上运行,请确保为Docker VM分配足够的内存。

· Linux 上的 SQL Server 的系统要求。

 

环境变量

必填项:

· ACCEPT_EULA = Y(表示接受最终用户许可协议,否则无法启动)

· SA_PASSWORD = <强密码> (密码必须符合复杂密码要求,包含大小写字母以及数字或特殊符号,长度不能少于8个字符,否则无法启动)

 

注意项:

· MSSQL_PID = <your_product_id | edition_name>(用于设置产品ID(PID)或版本,默认值:Developer)

值范围支持Developer、Express、Standard 、Enterprise、EnterpriseCore、产品密钥 ,一般情况下,我们使用Developer即可,即开发版本,其包含企业版所有的功能,足够我们用于开发和测试。

其他:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxpyd.html