Exploring IBM Bluemix – Part 6: Containers

0.00 avg. rating (0% score) - 0 votes

This article, the last entry in my IBM Bluemix series for beginners, will provide you with a brief overview on using Bluemix containers, which are basically just virtual collections of software applications packaged as images running as isolated processes on the host operating system helping you build high-quality apps more efficiently while enjoying the benefits of resource isolations.

To get started, click on Containers > Create a Container on your dashboard and you will see the following:

private registry

Enter a name for your private container registry to proceed – this name will be needed to access your list of container images later. Next, select an image to be used for your newly created container:

add image

Two default images are provided, ibmliberty and imbnode for WebSphere Liberty and Node.js application server respectively. For now, just select any of them to proceed to the next step. You will be prompted to select an existing Bluemix app that will bind to, e.g. make use of, this containter:

select app to deploy

The user interface also allows you to select a storage volume that the container can use. However, as you may have noticed, the list is greyed out. This is because volumes can only be created from the CloudFoundry command line at the moment and we have not yet created any. For now, just check the settings and click Deploy. After a while the container will appear in the list with its associated IP:

container entry

Interestingly, there is also another list of containers inside the Cloud Management Dashboard which is still empty. Much like the virtual machine list, probably these two lists are not in sync:

container in openstack

At this point, the container is created. But what can you actually do with it? Unfortunately the dashboard does not provide many options to play with, only the container usage overview and options to view the logs:

container details

To do something useful with it, you need to resort to the CloudFoundry command line. Install the IBM Container Extension (ICE) following the documentation and log in to your Bluemix account from ICE:

$ ice login
API endpoint: https://api.ng.bluemix.net
Email> ******
Password> ********
API endpoint:   https://api.ng.bluemix.net (API version: 2.19.0)
User:           test@toughdev.com
Org:            toughdev
Space:          toughdev
Authentication with container cloud service at https://api-ice.ng.bluemix.net/v2/containers completed successfully
You can issue commands now to the container service
Proceeding to authenticate with the container cloud registry at registry-ice.ng.bluemix.net
Login Succeeded

After that run the following, replacing the private registry name with the name you have chosen earlier:

$ ice --local run registry-ice.ng.bluemix.net/mrtoughdev echo "hello world"

You will see the following output of the echo command:

Target is local host. Invoking docker with the given arguments...
hello world 

The maching powering the container runs on Linux, so you can try other bash commands as normal.

To find out the list of images currently available on your registry, use ice image:

$ ice images
Image Id                             Created              Image Name
d0feae99-b91d-4ce3-bcb4-6128886f6968 Mar 23 10:44:59 2015 registry-ice.ng.bluemix.net/ibmliberty:latest
74831680-1c9c-424e-b8ea-ceede4aa0e40 Mar 23 10:41:24 2015 registry-ice.ng.bluemix.net/ibmnode:latest

The default settings come with just the Liberty and Node.js images, but you can download more images from the public registry of Docker, the platform that powers Bluemix containers.

For other interesting stuff that you can do with containers, including installing the iputils-ping package so that you can ping other machines from your container, refer to this tutorial. There is even a simulator on that page allowing you to practice ICE commands without having to install it locally.

This article concludes my basic IBM Bluemix series. I hope the information provided in the last few articles have been useful for those who want to learn more about IBM Bluemix. In the next few articles I will be writing more about advanced features that you can use on Bluemix, for example using IBM Watson for facial recognition and other artcifical intelligence tasks. Stay tuned for more updates!

0.00 avg. rating (0% score) - 0 votes


A tough developer who likes to work on just about anything, from software development to electronics, and share his knowledge with the rest of the world.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>