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 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通 ...
随机推荐
- javascript中的浮点数运算
解释一下下面代码的输出 console.log(0.1 + 0.2); //0.30000000000000004 console.log(0.1 + 0.2 == 0.3); //false Jav ...
- SQL Saturday 北京将于7月25日举办线下活动,欢迎参加
地点:北京微软(中国)有限公司[望京利星行],三层308室 报名地址:https://onedrive.live.com/redir?page=survey&resid=f ...
- 新年抢红包效果(New Year Red Packet)
新年抢红包效果(New Year Red Packet) 晓娜的文章(微信公众号:migufe) 2016即将过去,我们将迎来新的一年2017,这里小编提前祝大家新年快乐!万事如意!那我们新年最开心的 ...
- Python(五)模块
本章内容: 模块介绍 time & datetime random os sys json & picle hashlib XML requests ConfigParser logg ...
- 代码的坏味道(5)——数据泥团(Data Clumps)
坏味道--数据泥团(Data Clumps) 特征 有时,代码的不同部分包含相同的变量组(例如用于连接到数据库的参数).这些绑在一起出现的数据应该拥有自己的对象. 问题原因 通常,数据泥团的出现时因为 ...
- LinqToDB 源码分析——轻谈Linq查询
LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...
- 如何只用CSS做到完全居中
我们都知道 margin:0 auto; 的样式能让元素水平居中,而 margin: auto; 却不能做到垂直居中--直到现在.但是,请注意!想让元素绝对居中,只需要声明元素高度,并且附加以下样式, ...
- 记录软件工程课程项目开发时遇到的各种小问题(django)
1.python manage.py makemigrations 无效/无法检测出model的变化 在修改了models.py之后,我们想要更新数据库的表,使用了python manage.py m ...
- django入门之模板的用法
1.为什么要使用模板? 看下以前的代码 #-*- coding:utf-8 -*- from django.shortcuts import render from django.http impor ...
- android ImageView网络图片加载、动态设置尺寸、圆角..
封装了一个关于ImageView的辅助类,该类可以方便实现网络图片下载的同时,动态设置图片尺寸.圆角.....一系列连贯的操作,无样式表,java代码实现所有功能,使用很方便. package com ...