 So essentially today, how many of you know that Bloemix actually supports Docker, right? Wow, a lot of you, great. So I've been recently just playing around with Docker because Bloemix on Docker just recently went out of beta and I'm new to Docker, so please, you know, spare me anything and teach me old senseis. Please teach me how to do Docker, but I'm going to show you very quickly on how to just deploy something on Docker in Bloemix. And maybe you guys can tell me a little bit more about how to do more things on Docker and some of your best practices and deployment techniques and I think the next topic is DevOps, using Docker, so I'll be learning something from there. So anyway, so I think the first things first, is in order to get set up with Docker, you have to have the Bloemix account and all that, I assume you're going to, you know, if you want to play around with it, just do the registration and everything. So the first things first, is you need to install two command line tools, okay? Can you introduce yourself? Oh yeah, sorry, sorry. I forgot, I'm Justin Lee, I'm from IBM, I'm one of the cloud technical evangelist for IBM Cloud essentially, so that's me. Thank you very much, sorry about that. So there are two tools that you need to install on your Linux machine, yes sir. What is Bloemix? So Bloemix is a platform as a service that allows you to host you know, your code and your Docker containers and pretty much... Oh hi, yes! Actually, very similar to AWS, more similar to the Beanstalk, AWS Beanstalk, so that's what Bloemix is. Very much more similar to Azure platform as a service, okay? So, but it's, you know, one of the things that with Bloemix is it's trying to bring in virtual machines, Docker containers and all that stuff, right? Expending its scope from your platform as a service, right? Okay? So, coming back, I apologize, coming back. So there are two tools that you need to install. One is the Cloud Foundry CLI, CF Command Line. And within the CF Command Line, after you've installed, it's quite simple. You can just do a brew or on Linux, it's just a, you know, app get. And after you've installed the CF, the next thing that you need to install is the IC tool. So essentially it's a plugin, let's see, install plugin and all this URL and everything is in the documentation, all the plugin for CF. In the documentation, there's actually another CLI for you which is ICE, IBM Container's Extensions. The ICE file or other CLI is going to be deprecated in favor for this plugin. So this is something to know. So you just install this plugin and very simply just do a CF login. Assume that you've already installed Docker because you need Docker to do all of this stuff. And CFIC is basically a wrapper around Docker. As simple as that. So first things first, you just have to to CF login with an endpoint api.ng.bluemix.net. CF is just a common open source platform, Cloud Foundry. Bluemix is just one of the implementations of the Cloud Foundry. So I'm just going to do ibm.com, my password which I hope I remember. And you just log in. And one of the things that you need to do to take note of is when you actually create a Docker container, you have to take note that there is only one space that you can create your Docker images, repository and Docker containers, everything in a single space. So if you are already in one space and when you create the Docker environment within Bluemix you are stuck there in that space. So that's one small little caveat. A space is essentially an area of development work where all your instances reside in. So the one thing that I created accidentally created which I because I didn't know about this caveat but I should have done it in production. That's something I learned while doing this. So the other thing after I've logged in to Bluemix, I need to log in to my container environment which is CFIC Login. And essentially what it's doing is just getting the client certification and everything in order to connect to the Docker registry and repository there. This is the basic setup in order for me to get Docker images into Bluemix. This is not the central repository. From a registry perspective, this is the URL for all the registries that are hosted under Bluemix. Then when you actually connect to the registry you have to create a namespace, so similar to what you do with Hub Docker and stuff like that you have to create a namespace and whatnot. So while it's authenticated this is fun. So what's happening is authenticating and everything and I don't. So essentially a lot of the Docker CLI commands is available and it's wrapped under CFIC whatever. So I can do the same thing CFICPS minus A to see all my running containers which I have one running container over there I can do a CFIC images to see all my images. So very quickly I'm just going to get an image or rather copy an image on the Hub Docker Is it called Docker Hub or Hub Docker? Docker Hub. So I'm going to copy something from there and put it in my repository So very simply CFIC CPI copy images I'm going to copy HTTPD is it? Into my registry. ng.bloomix.net slash ht123 is my namespace. By the way in another caveat once you selected the namespace you cannot change the namespace. So that's the namespace HTTPD I'm going to do that it's sending the build context over it's copying directly from the Docker Hub repository into my repository under ht123 So far so good I've already done it because there is a few images already in there So it's already in there so I'll just do a CFIC images and I should see the HTTPD over there So I want to deploy it very quickly CFIC run minus P for the port registry.ng.bloomix.net slash ht123 slash HTTPD and very simply it's just a docker run anything that's docker just replace it with CFIC Alright this might take some time but let it run in the meantime there are various other repositories available directly on the Bloomix as you can see there is the IBM Node Liberty the Liberty Web Sphere Mobile First Starter but I usually don't use any of that I just directly create or rather copy from the Hub and create my own instance So let's take a look at the instance CFICPS minus A it's over there it's running and under the ports I haven't gotten an IP address yet so it's open and a port 80 slash TCP I haven't got an IP address so the next thing I need to do when you do this image is to do an ICPS IP let's take a look at what I have IP list so I already have 2 IP addresses in Bloomix the limitation is you can only have up to 2 IP addresses within the Bloomix container environment so that's in caveat number 3 2 IP addresses if you need more you need to request for more and pay for the IP addresses so in order to request for the IP address it's IP CFIC request and also to release the IP address so I'm not going to release or anything like that what I'm going to do is I'm going to bind IP address here to my HTTBD instance over here which is the container ID or I can use the name which is Silly Stallman I'm going to use this one I'm going to bind it and after binding it I should be able to access my docker container successfully bind it through this IP address so this is something that we can quickly just do the other thing that I want to show is a lot of people start from a docker file so I don't have a complete docker file already available but what you can do is this CF command IC build minus T registry create your you know let's say IBM node image name and then just do something like this with a docker it's going to fail because I didn't I didn't manage to complete this so what it can do is upload the docker file into the container and then it will start building the context there so I didn't really complete that so ignore that and then you can start playing around with the docker within Bluemix and that how many minutes I think 5-10 minutes that ends my presentation any questions how do you scale? how do you scale? very good CFIC if you take a look there is something called a group so instead of doing a run I do a group IC group where I can create so IC group create a group of this instances I specify the minimum number of instances the maximum number of instances the port and everything and the load balancer is automatically created for you to scale so basically by the ports yes by the ports so what you do is essentially there is the IP address and you link it through you have to connect the external IP with the internal container with just now what you saw the CFIP bind and the scale metrics is based on what? the scale metrics yes for example if CPU goes to 70% around regions because it has some scale ah yes if I'm not wrong it's based on memory usage not the CPU usage even if your CPU is frying eggs the the fun thing about BlueMix is that CPU CPU cycles get added on and on and on until a certain amount of CPU cycles and then it will say you are a rogue instance I'm going to shut you down so that's essentially what's happening so if you have really huge amount of CPU cycles most probably the CPU cycles will correlate with the amount of memory you're using and therefore it will increase accordingly or rather that's theoretically what they're saying yes sir isn't there like a nice web interface like to show there is a nice web interface however everything I just showed you pretty much you still have to go back down to the command line so if you notice so if you notice over here sorry no I don't have a network graph but I wish we were that advanced give us a break it just went out of beta 2 weeks ago so essentially all of this stuff over here so you have the default ones you see over here this one is part of the repository already the registry the additional ones over here in order to add into the registry you still have to go back down to command line to include into the registry over here either by building or copying from the docker hub so to answer your question yes, I agree with you I'm shaking my head also it's not an elegant solution yet so ultimately you still have to go down to command line but after you've added the image setting up everything let's say for example I've got this U-track from JetBrains you guys should know probably heard of U-track so I actually docker hub and this is a nicer interface of creating an instance but honestly speaking really, I know right and let's talk money let's talk business okay wait I'm not a salesperson let me get that straight what is the selling point is the network better or free pizza yeah just free pizza okay so the selling point is whatever you just see in terms of payment I'm not sure can I increase there you go if you can see the pricing so that's the pricing that's just numbers so what's great about it you tell me you try it out and tell me honestly speaking for me, at this point of time honestly speaking geek to geek and tech to tech Bluemix right now for the docker containers is very rudimentary it will get there eventually we are still building it out so it's really new on Bluemix we are still building out a lot of the capabilities but at this point of time it's rudimentary and it is for just hosting your images what basis is it charging for public IP is it like a month sorry per month per month so two public IPs free for each month and an additional IP address for $2.14 US dollars so that's the price I know for example if you want to use internal so usually what what people do is that you have one external IP address and then you rerouted to multiple containers and anything that's communicated within the container itself has their own internal IP address or use a type of group yeah are you giving out free credits am I giving out free credits there is 30 days free trial for unlimited usage and there is a free tier let's hold wait do you have a docker image for that alright make Kai make an account I'll give you a few more days of free trial we'll just do it there how about that that's a potential business there any questions do we have no we don't have Singapore hosting oh yeah come on so we don't have Singapore hosting at this point of time we have a US hosting and UK hosting we don't have an AP hosting at this point of time AP will be coming hopefully by the end of this year in Hong Kong do you know internally I've been really lobbying for Singapore I've been lobbying for Singapore for the last 6 months trying to get an instance in Singapore but it is i don't understand why they're not deploying it in Singapore sorry IBM on software i have no idea we are we are rocking i should be moving to another company now anybody hiring any other questions you have machine integration docker machine integration docker machine integration i have not tried it yet i am not sure yes there's someone in behind what is docker machine integration you can basically create a VM in amazon google cloud and then host the docker they have that should you create a docker image it will docker machine it's basically more on yeah sorry do you provide blooming centre service yes we do provide blooming centre service completely is it tough question is it matured enough i'll leave it for after this presentation do they have any api that can be used what do you mean by that if i want to include all this creation we can see what you did for example i want to create an application basically interface directly with the boomer with the bloomix what do you mean sorry i don't understand the question api if they provide an api they can interface application directly with the bloomix services to do what depending what application you want to do so i want to for example create a solution for my balcony to upload everything oh to do all that stuff so basically with cloud foundry all the api HTTP REST api it can be used but you have to go check the configurations api management it depends so there is a service called api management if you have existing api that you want to expose out to the web but we are not talking about bloomix we are talking about docker stop it docker so with that sorry what if you want to know more about bloomix then come to my meetup my bloomix meetup so with that thank you very much i'm so sorry to take too much of your time i hope you guys explore it if you have any questions or anything if you find something interesting that doesn't work let me know