上一篇介绍了在Bluemix Containers服务中使用docker hub镜像和container的高可用配置。接下来我们尝试如何在容器中使用持久存储。
在Bluemix的Containers服务中,文件共享(File Share)是持久的共享存储区域,每个docker容器的Volume都保存在File Share中。借用官网的一张图来说明Organization,Space,File Share, Volume和container之间的关系:
显然首先需要创建一个文件共享,但是通过web控制台创建文件共享的用户体验实在不咋地——隐藏的比较深。按图索骥吧。
管理组织:
查看详细组织信息:
编辑组织信息:
配额->容器->添加文件共享:
千辛万苦,终于找到了!
指定文件共享的名字,容量和IOPS。文件共享的容量与IOPS的比率最高只能达到1:4,即每GB容量最多对应4个IOPS(AWS可以做到1:30)。不过通常情况下我们不会使用容器来运行高IO吞吐量的应用。
文件共享是要单独收费的,这个相当于存储服务。Bluemix默认每月提供20GB容量、每GB容量对应0.25个IOPS的免费文件共享空间。例如:20GB容量、每GB容量对应2个IOPS每月7.40美刀,折合人民币差不多要50元。2.50元/GB/月的价格相比其他公有云产品来说的确是有些贵的。
文件共享创建完成后,就可以在上面创建volume并挂载给容器使用了。
在创建新的容器时...貌似又是一个隐蔽而不易发现的设置...
在前文创建完成的file share上新建一个volume:
也可以选择一个已经存在的volume:
指定volume在容器中的挂载路径,这里有一个大坑——挂载路径中只能包含目录符号("/"),字母和数字。如果出现其他的字符(例如:下划线),那么在容器启动后挂载路径是不存在的。不确定这是个bug还是by design。
容器创建完成,可以正常操作挂载后的volume:
总体来说Bluemix Containers服务的持久存储功能还是很容易上手的,只是比传统的docker多了一个file share。上述所有的操作步骤都可以通过命令行(cf ic ...)来实现。持久存储(file share)价格比较贵,使用web控制台操作的用户体验还有待改进。