Knowledge, OpenStack

Installing and Using Docker

In my previous post I provided some overview about Docker and it’s integration with OpenStack, containers and the related technologies – cgroups and namespaces. In this post I’ll go through some very basic commands using Docker.

Downloading and Installing Docker

As Docker rely on the kernel running on your machine make sure you are running 3.10 at minimum. uname -r can help you determine what kernel is running on your machine.
Before downloading Docker it is important to mention that a relatively new Linux distribution called CoreOS has Docker installed out-of-the-box and provides some additional benefits to Docker users. coreos-wordmark-vert-colorFind more about CoreOS at its Wiki page. You can read more about CoreOS and its Docker integration here.

I’ll describe briefly my personal experience with downloading and installing Docker on Ubuntu 14.04. The official installation guide can be found at Docker’s website. Continue reading

Knowledge, OpenStack

Containers, Docker, NameSpaces, CGroups and OpenStack

Docker has recently celebrated two years and based on the Docker OpenStack Wiki page “It is expected the driver will return to mainline Nova in the Kilo release.” small_v-transThe driver let you treat a Docker Linux container in the same way you treat a VM. If you wonder what is the difference between the two then you are asking a good question. A VM is an abstraction of physical hardware while a container is an abstraction performed in the operation system. More about that here. You can have an Ubuntu OS container running inside Fedora or Mac OS X or even Windows 8. Confused? I’ll try to help you with that in this blog post.

What is Docker?

Docker is one kind of a Linux container. You can find more information about LXC and other Linux containers here. Think of a lightweight and isolated software entity running inside your OS and sharing the kernel with it. By isolated I mean a software entity with its own network, users, PID and more. By sharing kernel I mean a software entity that piggybacking (or relying on) the kernel in its host whether it’s Linux, Mac OS X or Windows. The last two are available by installing boot2docker that provide the kernel to the host OS.

Containers rely on cgroups and namespaces Linux technologies. cgroups (abbreviated from control groups) is a Linux kernel feature that provides isolation to resources (CPU, memory, disk I/O, network). In that respect running the top command will show different results inside a container than running the same command outside of the container, on the host machine. Continue reading

Knowledge, OpenStack

Getting Your Hands Dirty with OpenStack

If you ask yourself the inevitable question “where do I start?” this blog post is for you.

Luckily, being an open source software you have free access to OpenStack’s various installations. OpenStack comes in it’s native (or trunk) form and through various company supported distributions – RedHat, Canonical (Ubuntu), SUSE and Mirantis to name just a few. In that sense it is similar to Linux having one common kernel and various companies making their own distributions. There are also many configuration management software platforms like Chef, Puppet and SaltStack that can make life much easier installing OpenStack but takes much of the learning benefit from it.

No Computer? No Problem!

Your first option to have a bit more hands-on experience is at a free website called stackinsider.org. Also called “deployment-as-a-service”, this website will take you through a step-by-step guide to have a one node or dual node (multi-node is not being supported while writing these lines) OpenStack installation. The focus is to gain familiarity with the installation process rather than having an accessible OpenStack cloud in the sky.  Continue reading