我最近和集装箱公司合作了很多,为拉斯维加斯的teched准备了CAA309。在此之前,我使用容器的经验仅限于使用Jakub Filak的脚本在我的笔记本电脑上运行ABAP试用实例(顺便说一句,我刚刚发布了我自己的)
如果你想知道,容器是一组与其他进程隔离的进程,物联网断路器,因此它看起来几乎像它自己的虚拟机。使用更少的资源(空闲时,我的ABAP试用版使用大约1GB的RAM,而运行它的虚拟机使用4个或更多的RAM),而且启动/停止/创建/销毁/备份速度非常快
为什么
据我所知,SAP不支持在容器中运行netweaver,但确实可以工作,通过简单的命令行可以启动一个容器,它是上一个容器的精确副本拍摄快照的时间。在我的笔记本电脑上大约需要10/15分钟。
这有很多有趣的用例:
自动测试分布式开发,使用abapgit演示/培训
容器传统上是unix/linux的东西
我们现在确实有windows容器,但据我所知,在windows或mac上尝试使用容器有点像在linux上尝试使用office:基本上是可行的,但很痛苦。正如标题所说,我是一个新手,大数据时代是什么意思,可能错了
Docker images
一个容器总是基于一个图像创建的,就像您系统的蓝图一样。
例如,如果我有一个名为netweaver01的图像,一个命令如下:
将
创建一个随机名称的新容器,如preciouse\u linx在其中启动一个新的netweaver实例复制数据库或在运行时修改的任何其他文件
您可以根据需要重复此过程多次,直到内存耗尽。或有效的许可证。
这将获得一个动态ip地址,一个动态mac地址和一个动态硬件密钥(除了在我的aws实例上,因为某些原因我无法理解),所以您可能需要使用一些更复杂的东西,如
这将允许您访问这个实例,就好像它是在主机上运行一样,大数据支持,并提供一个稳定的容器名(netweaver\u 01)mac地址和硬件ID
然后您就可以开始,停止并从命令行中删除容器。
创建映像
docker环境中的最佳实践是在docker文件中编写整个映像创建的脚本
作为docker和SAP安装的新手,这高于我的工资水平,主要有两个原因:
Netweaver想要一个稳定的主机名,docker使用一个动态的主机名,而不能在安装过程中被强制(好吧,它可以,但只有一些相当丑陋的黑客)安装必须无人看管。我打赌如果你知道你在做什么就很容易了,但我是个笨蛋
所以我做的很差劲,但有一个很大的优势:它确实有效
正如所说的,这比最佳实践更需要手动操作。如果你能做得更好,就去吧。但请注意,除了最佳实践之外,还有可行的替代方法
持久化数据
容器应该是暂时的,许多工具会随意创建和销毁它们。
如前所述,默认情况下,返利助手,新容器将创建数据库的副本,然后在删除时将其删除。这对于许多用例(演示、测试)来说是非常好的,但对于其他用例(例如,您可能希望为很少使用的开发人员或培训系统使用容器)。
我们可以使用卷来实现这一点。卷是一种永久性存储,您可以将其装载到容器中,并且可以使用tar文件轻松地进行备份或还原。
如果您的数据需要持久化,请确保它位于卷中,红淘客,而不是容器中