Jeff Maaks

Getting Started with Docker

Blog Post created by Jeff Maaks Employee on May 17, 2016

docker_logo.png

I've been testing some new products we have coming out soon, running through the installation process and creating some basic developer how-to guides.  I also wanted to learn more about DevOps and containers in general, and dust off my Linux and other technical skills, so this seems like a perfect time to explore Docker.


So what's special about Docker?  Well for me specifically:

  • It was easy to create an isolated environment for testing.  I didn't have to track down a Linux server for testing, take time to install a fresh image, or worry about mucking up my laptop.  By taking the time to create an install recipe ("Dockerfile"), I was able to pretty much automate the build process.
  • Docker made it much easier to clean up after test runs and get back to a known good state.  Make a mistake and screw something up?  Accidentally delete some files?  Things aren't working and you're not sure what happened?  Who cares?!  Just type exit and start a new container!
  • I've been hearing a lot about Docker lately and wanted an excuse to try it out!

 

Install Docker

Installing Docker is ridiculously easy.  From your server/desktop/laptop, simply go to https://www.docker.com, click on "Get Started with Docker", and follow the instructions to install Docker Toolbox (on Mac or Windows) or Docker Engine (on Linux).  Docker will install a number of helper applications, including Oracle VirtualBox.

 

The good news is there's a faster and more reliable installation of Docker coming soon: Docker for Mac and Windows!  This version is running in an Alpine Linux distribution on top of xhyve hypervisor on Mac OS X or on Hyper-V on Windows.  It's in beta as of this writing, but you can learn more and apply for access here: Docker for Mac and Windows Beta: the simplest way to use Docker on your laptop | Docker Blog.

 

Luckily I've been accepted into the Docker for Mac/Windows beta program and have been playing around with this new version.  It's quite an improvement!  I'll try to write up my experiences soon.

Example Docker Commands

The Docker Getting Started materials are very good, and after installing Docker I'd suggest working through the whalesay image, building your own image, and other included exercises.

 

A few other useful command examples:

 

Get the current client & server Docker versions:

docker version

 

Show all running containers:

docker ps

 

Run Ubuntu interactively in a container:

docker run -it ubuntu /bin/bash

 

See all the images in your local Docker instance:

docker images

 

Remove all stopped containers:

docker rm -v $(docker ps -aq -f status=exited)

 

Delete a local Docker image (note you'll need to run the above command first or otherwise remove any stopped containers based on the image to be deleted):

docker rmi ubuntu

docker-con 2016.png

DockerCon 2016

DockerCon 2016 will be held in Seattle, WA June 19-21, 2016.  If you're going drop me a note and we can connect there!

 

 

What's Next?

I'm hoping to make this part of a blog series, and you may have already seen my blog post on Kubernetes and Docker.  In the next few days we'll post a how-to on installing Docker on the Hitachi Hyper Scale-Out Platform, and as I get experience with them I'll post other how-to guides on using various other Hitachi products with Docker.

 

Learn More

If you'd like to learn more about Docker, the Docker Docs are great and quite detailed.  There's a Docker Channel on YouTube, a /r/docker

sub-Reddit, and these two O'Reilly books are highly recommended:

 

Using+Docker.jpgDocker+Cookbook.jpg

 

 

Feedback Welcome!

 

Let me know what you think: Are you using Docker or another container technology?  Which Hitachi products would you like to see as container-friendly or for us to document how to deploy using containers?

 

 

Outcomes