国际版的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的更多相关文章

  1. IBM Bluemix体验:Containers持久存储

    上一篇介绍了在Bluemix Containers服务中使用docker hub镜像和container的高可用配置.接下来我们尝试如何在容器中使用持久存储. 在Bluemix的Containers服 ...

  2. IBM Bluemix体验:Containers进阶

    上一篇中介绍了Bluemix的Containers服务以及如何使用自定义的docker image创建一个容器实例并对外提供服务.除了自定义镜像之外,Bluemix Containers还可以使用Do ...

  3. 在IBM Bluemix上部署Hyperledger应用

    简介 IBM Bluemix (http://www.ibm.com/bluemix‎)是一个基于cloud的应用开发和部署平台,提供包括多种服务和运行环境的支持.对Hyperledger应用开发者而 ...

  4. 基于IBM Bluemix的数据缓存应用实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:IBM® Data Cache for Bluemix 是快速缓存服务.支持 Web 和 ...

  5. Eclipse上开发IBM Bluemix应用程序

    林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要解说了怎样使用安装EclipseIBM Bluemix插件.并在Eclipse ...

  6. 第一部分:IBM量子体验

    (一)量子世界    今天的计算机使用标准的(或用物理学家的话来说,“经典的”)计算模型来执行计算与处理信息,此计算模型要追溯到图灵(Turing)和冯・诺伊曼(Von Neumann)时期.在此模型 ...

  7. IBM Cognos 10.2 最新体验之旅

    IBM Cognos Data Manager 数据集市的构建利器 本文详细的介绍了 Cognos 最新版本 10.2 的数据集市构建器 Data Manager 的使用,对于希望系统了解 Cogno ...

  8. 【云计算】IBM开放云架构

    IBM 的开放云架构 通过改变业务和社会运行的方式,云计算开启了丰富的创新途径.开发人员现在正将记录系统与参与性系统相结合,一种新的基于云的应用程序风格正在出现:交互系统.这些应用程序要可持续发展,云 ...

  9. 使用 Socket 通信实现 FTP 客户端程序(来自IBM)

    FTP 客户端如 FlashFXP,File Zilla 被广泛应用,原理上都是用底层的 Socket 来实现.FTP 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通 ...

随机推荐

  1. Log4net入门(ASP.NET MVC 5篇)

    在前4篇Log4net入门文章中,我们讲述了log4net的一些简单用法,在这一篇中我们主要讲述如何在ASP.NET MVC 5项目中将日志信息写入SQL Server数据库中. 一.创建最简单的AS ...

  2. Java Collection开发技巧

    Java Collection(集合) 集合中的一些技巧: 通过Collections类的静态方法,可以对集合进行一些操作 1 java.util.List<Integer> number ...

  3. 计算机程序的思维逻辑 (41) - 剖析HashSet

    上节介绍了HashMap,提到了Set接口,Map接口的两个方法keySet和entrySet返回的都是Set,本节,我们来看Set接口的一个重要实现类HashSet. 与HashMap类似,字面上看 ...

  4. 谈谈枚举的新用法——java

    问题的由来 前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了! 事情是这样的,做过游戏的都知道,buff,需要分类型 ...

  5. Linux系统修改PATH环境变量方法

    在Linux安装一些软件通常要添加路径环境变量PATH.PATH环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就 ...

  6. .Net语言 APP开发平台——Smobiler学习日志:如何实现离线声音文件上传

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...

  7. C# ShellExcute与Process

    C#运行外部程序的两种方法 ShellExecute using System.Runtime.InteropServices; public enum ShowWindowCommands : in ...

  8. 运用<div>布局页面练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Servlet数据缓存

    缓存是提高数据访问能力,降低服务器压力的一种必要的方式,今天我要说的数据缓存方式有两种,1-->session对单个数据访问接口页面的数据进行缓存,2-->单例模式对整个servlet页面 ...

  10. Delphi_04_Delphi_Object_Pascal_基本语法_02

    这里简单的描述Object的语法中的基本内容,数据类型.因为代码是自描述的所以不废话,直接贴代码. { 用户自定义类型 1.数组 2.动态数组 3.记录 4.集合 } program UserDefi ...