IBM Bluemix体验:Containers
国际版的Bluemix目前有三个region,US South,United Kingdom和Sydney。其中US South是功能最全的,UK其次,Sydney功能最少。Containers服务在US和UK两个region中都可以使用。
为了减少不必要的麻烦,我使用了一个在国外的安装了Ubuntu 16.04操作系统的虚拟机作为客户端,如果你想体验一把国内pull/push docker镜像的酸爽,同时还想测试一下在Windows 10自带的Linux环境中运行docker的话,那么可以放心大胆的在运行Windows 10的计算机上体验Bluemix的Containers服务。
经过实际测试,在国内访问US South的速度比UK好很多,因此这里我使用US South region来进行实验。总体来说,Bluemix的文档质量还是很高的,基本上没有什么错误。当然,现在看起来还只有英文版。
Bluemix的Containers可以使用三个来源的docker images:IBM Public,Docker Hub和自己制作的镜像。IBM Public的镜像现在还很少,只有可怜的3个。

如果要使用Docker Hub的image和上传自己的image,需要在客户端安装Bluemix CLI,Cloud Foundry CLI和ibm-containers插件。当然docker也是必须要在客户端安装的。看上去有些复杂...
Docker的安装比较简单,按照官方文档操作就可以完成。注意不同的Ubuntu版本操作略有不同。安装完成后,验证一下docker安装是否正常。
docker run hello-world
从这里下载Bluemix CLI,根据页面上的说明解压并执行安装命令。
wget http://public.dhe.ibm.com/cloud/bluemix/cli/bluemix-cli/Bluemix_CLI_0.4.1_amd64.tar.gz tar -xvf Bluemix_CLI_0..1_amd64.tar.gz cd Bluemix_CLI/ sudo ./install_bluemix_cli
从Github下载Cloud Foundry的CLI。下载Debian 64位的Installers,不要下载Binaries。
wget https://s3.amazonaws.com/go-cli/releases/v6.21.1/cf-cli-installer_6.21.1_x86-64.deb sudo dpkg -i cf-cli-installer_6..1_x86-.deb
安装完成后,执行“cf --help”应该正确显示cf的帮助说明。
安装ibm-containers插件,这是一个Cloud Foundry CLI的插件。
cf install-plugin https://static-ice.ng.bluemix.net/ibm-containers-linux_x64
安装完成后,执行“cf plugins”验证ibm-containers插件是否安装成功。
接下来我们在本地创建一个docker镜像,以下是Dockerfile示例(镜像中的内容仅供演示参考,实际操作时请用自己的镜像替代):
FROM ubuntu:goproxy-v1
EXPOSE
CMD ["/root/goproxy","-config","/root/config.json"]
这个镜像比较简单,执行“/root/goproxy”并传递2个参数:"-config"和"/root/config.json"。确保相应的文件已经copy到base镜像(ubuntu:goproxy-v1)中。把host上的文件copy到镜像中可以使用:“sudo docker cp”命令(使用sudo执行)。
构建镜像(注意命令行最后是个“.”)
docker build -t ubuntu:goproxy-v2 .
镜像构建完成后,在本地测试镜像是否能正常运行
docker run -p : ubuntu:goproxy-v2
镜像构建成功后,我们将本地构建的镜像push到私有库中。Bluemix Containers为用户在每个region各提供一个私有的docker repository。
登录到Bluemix,注意“-a”参数,这个用来指定api的endpoint,每个region的endpoint都是不一样的。
cf login -a api.ng.bluemix.net
输入用户名和密码登录,然后根据提示选择一个space:

使用ibm-containers插件登录到Containers服务(这个命令需要使用sudo执行,否则执行命令后没有任何反应就退出了):
sudo cf ic login
登录成功后出现以下提示:

将上图中3条黄色标记的命令依次复制并执行一遍,用于设置使用本地的docker客户端操作Bluemix Containers服务。每次登陆都要这样执行一次,的确有点烦...
如果是首次登录Containers服务,需要在当前region为Containers服务设置一个namespace,注意这个namespace不是前文中登录Bluemix选择的space。
# “htcn-us-south-”是namespace的名称。
# 记住namespace名称,后续步骤会用到。
sudo cf ic namespace set htcn-us-south-
设置完成后,本地的docker客户端就可以操作Bluemix的Containers服务了。
给本地的docker镜像打标签:
docker tag ubuntu:goproxy-v2 registry.ng.bluemix.net/htcn_us_south_1/ubuntu:goproxy-v2
这个命令看起来有些复杂:
- “ubuntu:goproxy-v2”是本地镜像名称和标签
- “registry.ng.bluemix.net/htcn_us_south_1/ubuntu:goproxy-v2”是远程repository的名称和标签
- 远程repository的名称和标签格式为:[Bluemix region URL]/[Containers的namespace]/[镜像名称]:[镜像标签]
如果已经熟悉并使用过其他的docker服务(CaaS),这个理解起来并不复杂。
推送本地镜像到Containers服务的私有repository中:
sudo docker push registry.ng.bluemix.net/htcn_us_south_1/ubuntu:goproxy-v2
登录到Bluemix的web控制台,选择region后进入Containers服务,在新建container页面中可以看到刚才上传的image。

选择这个image,开始创建container。

按提示输入container的名称,选择container的大小,指定公网IP地址。然后点击“Create”按钮开始创建container。
运行中的container:

总体来说IBM Bluemix Containers服务的使用过程还是很流畅的,CLI和web控制台操作起来都比较容易上手。文档完整清晰,没有明显的差错。如果要说缺点的话,那就是在国内的访问速度的确不咋地(但这个也是并非IBM能力范围内可以快速解决的问题)。期待由世纪互联运营的IBM Bluemix中文公众版尽快上线吧!
最后提醒一个“小坑”,Containers服务目前只能对外开放:22,80,443,9080,9443几个端口,详细信息请参考这里。
IBM Bluemix体验:Containers的更多相关文章
- IBM Bluemix体验:Containers持久存储
上一篇介绍了在Bluemix Containers服务中使用docker hub镜像和container的高可用配置.接下来我们尝试如何在容器中使用持久存储. 在Bluemix的Containers服 ...
- IBM Bluemix体验:Containers进阶
上一篇中介绍了Bluemix的Containers服务以及如何使用自定义的docker image创建一个容器实例并对外提供服务.除了自定义镜像之外,Bluemix Containers还可以使用Do ...
- 在IBM Bluemix上部署Hyperledger应用
简介 IBM Bluemix (http://www.ibm.com/bluemix)是一个基于cloud的应用开发和部署平台,提供包括多种服务和运行环境的支持.对Hyperledger应用开发者而 ...
- 基于IBM Bluemix的数据缓存应用实例
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:IBM® Data Cache for Bluemix 是快速缓存服务.支持 Web 和 ...
- Eclipse上开发IBM Bluemix应用程序
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要解说了怎样使用安装EclipseIBM Bluemix插件.并在Eclipse ...
- 第一部分:IBM量子体验
(一)量子世界 今天的计算机使用标准的(或用物理学家的话来说,“经典的”)计算模型来执行计算与处理信息,此计算模型要追溯到图灵(Turing)和冯・诺伊曼(Von Neumann)时期.在此模型 ...
- IBM Cognos 10.2 最新体验之旅
IBM Cognos Data Manager 数据集市的构建利器 本文详细的介绍了 Cognos 最新版本 10.2 的数据集市构建器 Data Manager 的使用,对于希望系统了解 Cogno ...
- 【云计算】IBM开放云架构
IBM 的开放云架构 通过改变业务和社会运行的方式,云计算开启了丰富的创新途径.开发人员现在正将记录系统与参与性系统相结合,一种新的基于云的应用程序风格正在出现:交互系统.这些应用程序要可持续发展,云 ...
- 使用 Socket 通信实现 FTP 客户端程序(来自IBM)
FTP 客户端如 FlashFXP,File Zilla 被广泛应用,原理上都是用底层的 Socket 来实现.FTP 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通 ...
随机推荐
- C#制作、打包、签名、发布Activex全过程
一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现.由于本人主要擅长C#,自然本文给出了用C#实现的范例 ...
- web标准之道——笔记
字体设置 sans和sans-serif为通用字体,具体哪个字体被最终应用由浏览器决定,通用字体只有在其他字体都无效时才会被当作代替方案.通用字体应该放在最后面 sans衬线字体 容易阅读,一般使用在 ...
- 前端开发面试题收集(js部分)
1.问:js中"1"+2+"3"+4 运算结果是? 答: js中,字符串和数值相加,得到的还是字符串,这里的结果1234也是字符串. 2.问:4+3+2+&qu ...
- Java 快速排序两种实现
快速排序,只要学习过编程的人肯定都听说过这个名词,但是有时候写的时候还真蒙住了,网上搜罗了下以及查阅了"introduction to algorithm",暂时找到两种实现快排的 ...
- Cesium原理篇:Material
Shader 首先,在本文开始前,我们先普及一下材质的概念,这里推荐材质,普及材质的内容都是截取自该网站,我觉得他写的已经够好了.在开始普及概念前,推荐一首我此刻想到的歌<光---陈粒>. ...
- 安卓Design包之TabLayout控件的简单使用
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...
- scikit-learn预处理实例之一:使用FunctionTransformer选择列
本例展示怎样在一个管道中使用FunctionTransformer.如果你知道你的数据集的第一主成分与分类任务无关,你可以使用FunctionTransformer选取除PCA转化的数据的第一列之外的 ...
- 扩展方法解决LinqToSql Contains超过2100行报错问题
1.扩展方法 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...
- JAVA 入门第二章 (面对对象)
本渣渣鸽了一个月终于有时间更新.因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装 ...
- Tomcat数据源(DataSource)简介
JDBC2.0提供了javax.sql.DataSource接口,它负责建立与数据库的连接,在应用程序中访问数据库时不必编写连接数据库的代码,可以直接从数据源获得数据库连接 1.数据库和连接池 在Da ...