Tag: Containers
20 Jan 2016 in Roundup, Containers

Popular Off-The-Shelf Container Tooling

With the rise of Infrastructure as a Service (IaaS), more and more people are turning to containers (and microservices) as new models of application development that take full advantage of everything the cloud has to offer.

These models offer many benefits over old ways of working, but bring with them a unique set of new challenges: service discovery, infrastructure management, cluster orchestration, monitoring, container-centric continuous integration, to name just a few.

Thankfully, there are a number of popular off-the-shelf tools that can help you with these challenges.

We'll take a look at a few of those tools in this post.

Read More
10 Dec 2015 in Research, Analysis, Docker, Containers

The State of Containers and the Future of the Docker Ecosystem

Containers (and in particular, Docker) are getting ever more popular.

A recent report by O’Reilly Media and Ruxit presents interesting findings on the adoption and use patterns of containers and Docker.

For instance: the deployment of containers in production is likely to increase significantly in the short term. The report also highlights that one of the major barriers preventing production adoption has to do with the need for better operations tools. This sort of information may be crucial in guiding decision making on investment and innovation priorities.

This post considers some key aspects of the report. I first present the approach used for the research, then highlight the main findings. I conclude with a quick comparison to similar research reports published during the course of this year.

Read More
8 Dec 2015 in CoreOS, Containers, Fleet, Etcd

Run Self-Sufficient Containers on CoreOS

In my last post we learnt about CoreOS and took a look at the steps needed to install it on your laptop (using VirtualBox). We also learnt CoreOS doesn’t ship a package manager. Instead it comes with Docker pre-installed. So, for every service that you need (e.g. web server, database, cache, and so on) you can just create and use a Docker container for it.

So, what’s the deal with self-sufficient containers?

Containers are self-sufficient by default, right? Well, this depends on what you call self-sufficient. Of course, containers are self-sufficient in that they don’t depend on any software running outside of their logical boundaries. But they need kernel support and computing resources from the host computer.

Let’s see it like this: containers are generally set up on a network with several nodes, with each node running one or more containers. Each container may be self-sufficient, but the node on which the container is supposed to run is not! Nodes may crash or run slow or get disconnected off the network. And in such cases, you need to find out the offline node and re-route the traffic meant for that node to other nodes.

But how do we do that?

Enter CoreOS and three particularly crucial components: systemd, fleet, and etcd.

In this post, we’ll take a look at these three components and learn how they’re used by CoreOS to help you create self-sufficient containers.

Read More
27 Oct 2015 in Kubernetes, Development, Containers

Zero to Kubernetes Dev Environment on OS X

Many people we talk to are interested in experimenting with Kubernetes but find that putting together a development environment is daunting.

Kubernetes Solo OSX (Kube Solo) provides a lightweight, simple Kubernetes enviroment that is easy as a few clicks.

Kube Solo wraps coreos-xhyve and runs in your Mac's status bar. With a few clicks Kube Solo provisions a CoreOS server and boostraps Kubernetes development environment.

Since Kube Solo is based on xhyve there is no need to have VirtualBox and Vagrant installed on your Mac.

Read More
22 Oct 2015 in Docker, Containers

Going Beyond Hello World Containers is Hard Stuff

In my previous post, I provided the basic concepts behind Linux container technology. I wrote as much for you as I did for me. Containers are new to me. And I figured having the opportunity to blog about the subject would provide the motivation to really learn the stuff.

I intend to learn by doing. First get the concepts down, then get hands-on and write about it as I go. I assumed there must be a lot of Hello World type stuff out there to give me up to speed with the basics. Then, I could take things a bit further and build a microservice container or something.

I mean, it can’t be that hard, right?


Maybe it’s easy for someone who spends significant amount of their life immersed in operations work. But for me, getting started with this stuff turned out to be hard to the point of posting my frustrations to Facebook...

But, there is good news: I got it to work! And it’s always nice being able to make lemonade from lemons. So I am going to share the story of how I made my first microservice container with you. Maybe my pain will save you some time.

If you've ever found yourself in a situation like this, fear not: folks like me are here to deal with the problems so you don't have to!

Let’s begin.

Read More
1 Oct 2015 in Series: Ready Made, Containers, Docker, Round-up

Five More Popular Java-based Docker Images

In my last post, I looked at a few Java-based Docker images that can streamline your container workflow. I highlighted some of the issues you can run into when working with Apache Hadoop, Apache Tomcat, Apache Maven, Stash, and Glassfish in containers. I also provided a few workarounds.

In this post, we’ll review five more Java-based Docker repositories, along with some of the current bugs that you might run into when working with them.

Read More
2 Sep 2015 in Docker, Containers

Get Started With Docker on Your Non-Linux PC

Though having been around for quite some time now, containers have recently become one of the most sought after technologies. Docker made containerization cool. Seemingly everyone is running—or wants to run—their software in a Docker container. And rightly so. After all, containers are lightweight, easy to deploy, and scalable.

But what if you’re late to the party? If you’re just getting started with Docker, you probably have a thousand questions to ask. Perhaps one of them is: "do I need a Linux box to run Docker? If not, how will that work?"

In this post we'll take a look at that question and get you started on the basics. We’ll learn how to install Docker, create containers from images, and run containers on a non-Linux PC.

Read More
27 Aug 2015 in Containers, Perspective

Combating VM Sprawl with Containers

VM sprawl is something app developers know all too well. Having multiple instances of an application running quickly turns into a mess when your realise how many different staging environments you actually have. Between testing, Q&A, active development, and bug squashing—it’s easy to get lost in the tangled web of VM sprawl.

Using containers and a PaaS like Deis Workflow lets you move past the need for running seven different VMs for one application. Instead, boot one VM and have multiple containers. Why? Because containers need less system resources, so you can more on the same machine. You can easily clone your containers, version them, and so on. Stop and start them in minutes. Sail past dependency hell and ensure a perfect copy of your app runs in all your environments.

Read More
10 Jun 2015 in Containers, Overview

Isolation with Linux Containers

Note:This is part two of a two part series that starts here.

In part one of this series, we built a simple echo server, and took steps to isolate the privileges, filesystem, allocated resources, and process space. The things we did isolated the echo server process from all the other processes on the host.

In this post, we’ll look at how Linux Containers provide an easier, more powerful alternative. Instead of isolating at the process level, we’ll isolate at the OS level.

Introducing Linux Containers

Docker is the hot new thing, but Linux containers (LXC) have been around since before Docker launched in March of 2013.

The Docker FAQ cites various differences between LXC and Docker. While Docker now utilizes libcontainer, it originally wrapped the LXC user tools. In summary, LXC provided a wrapper around Linux kernel technologies, while Docker essentially provided a wrapper around LXC.

This post look at the following technologies in the context of LXC:

  • Kernel namespaces
  • Chroots (using pivot_root)
  • uidmap and gidmap
  • cgroups
  • Virtual Ethernet
Read More
12 May 2015 in Containers, Overview

Linux Isolation Basics

Note: This is part one of a two part series. Read part two.

In the complex world of modern app deployment solutions, containers have been gaining traction as a popular distribution method. But what are they, and why are people so excited about them? This two part series will look into some of the benefits offered.

First, we’ll look at how isolation is generally used to solve a whole class of problems. Next we’ll look at how containers, specifically, makes isolation more manageable. An intermediate familiarity with UNIX-like systems is assumed throughout.

Read More