Getting to Grips With Kitematic
As you may have already heard, Kitematic is a new container management GUI for Docker. It launched for Windows and OS X in June this year, and allows for running and managing containers without spending any more time than is necessary on the CLI.
Starting a virtual machine can be a daunting task. The people this tends to intimidate the most are those just starting out in web development and developer operations. By using Kitematic with something like Deis, this stress problem can be side-stepped.
In this post, we’ll look at:
The advantages to Kitematic
The availabililty of pre-bulit Docker images in Kitematic
Setting up Kitematic on your PC
Before you get started, be warned: if you’re installing Kitematic for the first time on your PC you may see the install hang or crash. If this happens, Kitematic provides a CLI script to fix the problem on its page of known issues. Remember that Kitematic is still in alpha. If you find a bug, help the Kitematic team squish it by reporting the bug on GitHub.
Advantages to Kitematic
Kitematic offers an easy-to-navigate GUI, with popular Docker images available to run upon installation. These include Ghost, Minecraft, RethinkDB, and many more. Docker offers powerful container management, including upscaling and downscaling. For smaller development teams working on PCs, cloning, managing, and deploying an app through Kitematic is a seamless experience, and significantly more user-friendly than the CLI.
Having a GUI lowers the barrier-to-entry for beginners and will help them contribute to and learn about your project. Kitematic also provides a unique educational opportunity for people who want to take things like the stock Minecraft image and learn about system administration and operations through experimentation and modification.
When debugging an issue, time is of the essence. Kitematic offers powerful features for operating containers in a snap. PC users can view their currently running containers with ease, with the ability to start, stop, and execute commands from directly within the Kitematic UX. What’s more, Kitematic lets you debug securely, without affecting parent or child containers.
Pre-Built Docker Images
One of the benefits of Kitematic is that it comes with access to a library of pre-built Docker images, running a variety of popular software stacks.
There’s plenty of options, whether you want to quickly set up a Minecraft server to play a private game with friends, or set up your own Redis server that perfectly mimics the production configuration of that web app you’re working on. With Kitematic, you can manage containers on your PC as easily as you would on a Linux based machine.
Some of the applications available through Kitematic:
- Minecraft: a Minecraft server that allows two or more players to play Minecraft together. If you have a Minecraft server already, you can run it in the cloud via Kitematic.
- RethinkDB: an open-source, distributed database built to store JSON documents and effortlessly scale to multiple machines.
- Nginx: an open source reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols. As well as a load balancer, HTTP cache, and a web server!
- Ghost: a Markdown based CMS allowing for quick, professional blogs to be set up in moments.
- Redis: a popular key-value data store with options for durability.
This is just a highlight. Search the Docker Hub for a full selection!
Dev Workflow Improvements
Using Kitematic on a daily basis to manage containers is an efficient way to streamline your application management.
Containers don’t just contain applications. They can help you contain your workflows. Developing an application, maintaining different versions of it, testing it, and debugging it can all be done in a way that is isolated to the specific problem you’re working on. And environments can be packaged and up and shared with other members of the team, in a way that is repeatable, predictable, and immune to differences in host systems and configs.
This can even help people who may be running on slower systems, with older software or hardware. Traditional VMs use hypervisors, such as KVM and Hyper-V. These are heavy on system resources, making them bog down your system—especially if you’re running more than one at a time! In contrast, many containers can run on a single Linux VM, offering significant performance improvements when developing locally.
The Set Up
Setting up Kitematic on your PC is simple. Let’s walk through getting it set up.
When you install Kitematic, the first screen looks likes this:
Kitematic is setting up a VM through Oracle (the name of the VM manager that comes with Kitematic) to get a local instance of Linux running on your machine. Your containers will then run inside of this Linux VM. If you experience a hangup here, restart the application by exiting it out, then re-opening it.
Once your VM is up-and-running, you should see the container repository. It’s full of exciting images you can clone and get running on your machine in minutes.
Here’s what the selection screen looks like:
Note: if you see see (Unverified) next to your name or you get a penguin saying something similar, go verify your email address and you’ll be set!
On the far left, you’ll see the two containers that I have going. One of them is a Minecraft server, the other is a Ghost blog I’m hosting on Amazon AWS. For developers, the images that Kitematic offers at startup can be a useful jumping off point.
You don’t have to use the default Docker library images if you don’t see anything you want to use. The real magic of Kitematic comes from working with your own library of containers. To pull from a private repository, perform the following steps:
- After completing Kitematic’s initial installation, you can log in with an existing Docker Hub account. If you don’t have one, take a minute to create one.
- Navigate to the My Repositories tab.
- Run a container from any private Docker image by clicking Create on the image you’d like to access.
Here’s what my Ghost container looks like while up-and-running:
The middle of the screen is the Ghost log, running inside the container.
At the very top, you can see the STOP, RESTART, and EXEC buttons. STOP and RESTART do exactly what you’d expect. Clicking EXEC brings up a new terminal. On the left, Kitematic uses colour coding to tell you which containers are currently running.
To the far right, you’ll see a preview of your container. This is only available while the container is running—not while it’s stopped. Clicking the pop-out button allows you to view your application in your default browser.
Adding your own repository is as simple as clicking the +New button and following the prompts provided.
Kitematic is a cool new tool that makes it easy to manage containers locally.
Choose from a library of pre-built Docker images for popular software like Minecraft, RethinkDB, Nginx, or Ghost. Or roll your own and use Kitematic’s GUI to navigate and interact with your own library of images, prepared for and by your development team.
Kitematic also provides an easy and intuiitve way to manage containers, all within one application. Start and stop containers. Get a terminal, see previews, configure settings, and perform admin tasks without having to drop to the CLI.
Containers offer a number of advantages for working with applications over traditional development practices, and Kitematic’s ease of use makes it possible to adopt a workflow that includes many other parts of your organisation—not just your dev team!
Paired with Deis, Kitematic becomes even more powerful, allowing you to work effortlessly with containers from desktop to production.