Diving into DockerCon 2015

Diving into DockerCon 2015

Written by Summer Wu

Free TicketsMembers

The first time I heard of Docker was this past February, when I had to migrate a project from one Amazon EC2 instance to another. A mentor who was helping me commented, “this would be so much easier if we used Docker.” Curious, I did a bit of googling and even watched a few youtube videos, but was still confused as to what exactly Docker was.

Since that moment, I’ve heard Docker mentioned again and again, at hackathons, on blogs, and in the news, as an easy way to spin up applications. So when I saw that Women Who Code was raffling off tickets to DockerCon, I leaped for the opportunity to finally understand Docker, and determine whether I should consider using it over Heroku for my projects.

To avoid long lines, I pre-registered and picked up my backpack full of swag the night before the conference from the San Francisco Marriot Marquis. Looking over the conference schedule, I figured that of the six different tracks offered, the “tutorial track” would be most suitable for a novice like me. All I had to do was to install Docker ahead of time.

Unfortunately, this turned out to be no easy task. It turns out that Docker only runs on Linux, so in order to run it on my MacBook Air, the provided installer installs VirtualBox along with it. However, since I already had VMware Fusion on my laptop, I was reluctant to install a second, arguably lesser, virtual machine.

However, after almost two hours of headache, I was finally able to install Docker on a VMware instance by using a tool called docker-machine (https://docs.docker.com/machine), which is still in beta. As a PSA to anyone who has the same trouble, you must start the virtual machine before every session in order to connect to it through the Mac terminal. For example, if you wanted to run an ubuntu image on your machine called “osxdock,” you would first start VMware Fusion, and then run the following commands:

docker-machine start osxdock

docker-machine env osxdock (then run the command provided in the terminal)

docker run –it ubuntu

If this seems too complicated for your liking, the easiest method is to just install Docker on a Linux instance and follow the official site instructions.

At breakfast the morning of the conference, I fell into a conversation with Scott from ACS in Arlington, Virginia, and Yu, who works for EngineYard in Japan. While it was all of our first DockerCons, our experience levels with Docker varied. Scott’s company uses Docker a lot, Yu had used it a little, and me… well I’d installed it for the first time the night before. It’s incredible how much of a following Docker already had, and the opening session only served to emphasize the company’s tremendous growth.

Docker was started as an open source project just two years ago, and since then, has spawned an entire ecosystem of apps built on, and off of, the platform. Today, Docker is the work of 1600 contributors from around the world.

Docker Con 1

(Image: CEO Ben Golub talks about the growth of Docker.)

When CTO Solomon Hykes took the stage, he opened with a question all-too-familiar to developers: “how do I ship my code across many different machines?” Docker’s answer is to wrap the application in a standard container, which can then be deployed in any environment. Using the analogy of shipping containers, your application would be the product within the standard container; these containers can then be piled onto any type of boat (environment) for transport anywhere in the world!

For advanced Docker users who are curious to know what’s on the bleeding edge, Hykes announced Docker experimental releases (docker.com/experimental).

Docker Con 2

(Image: CTO Solomon Hykes)

After a few live demos, it was time for the breakout tutorials. After a brief overview of Docker, we were given a packet of exercises to follow along with (https://www.dropbox.com/s/aqthj4a04qeycb7/dockercon%20exercise-handbook.pdf?dl=0). The packet is concise and instructional, albeit with a few typos here and there. However, the conference scheduled the Dockerfiles tutorial before the Images tutorial, which I found to be very confusing. For instance, since I didn’t have an ubuntu image on my virtual machine yet, I didn’t have access to the “apt-get” command. That meant that I couldn’t follow the Dockerfiles tutorial instructions.

The lesson I learned from this is: ignore the instructors and follow the order in the packet.

A few things I picked up or learned from trial and error during the tutorial sessions: images are templates for containers, and you should use a docker-machine to stop the machine at the end of your session.

Throughout the day, hundreds of partner companies lined the halls, dishing out free t-shirts and evangelizing their services. I’ve had to give away or toss so many free shirts that it’s now become my policy to only accept t-shirts of companies that I have a certain amount of investment in, i.e. either attending their conference or interning with them.

To end the night, DockerCon bussed the attendees over to the Exploratorium for the Intel-sponsored after party. While some companies apportion the $900 conference fee to giving away the latest gadgets, my immediate reaction was, “so this is where the $900 went.” Waiters and waitresses walked around carrying trays with all sorts of hors d’oeuvres, and different sections of the museum contained smorgasbords ranging from sushi to taco bars. Open bars were always in sight, although my favorite bar had to be the liquid nitrogen ice cream cookie bar. Live music, spider robot demos, even a drone flying competition, all made for an incredible evening at a museum already packed with interactive science demos.

Docker Con 3

(Image: See the little yellow line floating above the blue barrel? That’s the drone!)

Docker Con 4

(Image: This robotic spider is made from Intel’s Edison board)

My goal coming into DockerCon was to figure out exactly what Docker is and specifically, how it compares to Heroku, since that’s what I currently use to host and deploy my web apps. Overall, I’ve learned that while Heroku may still be easier to use for my personal projects, Docker could give me the flexibility to eventually scale.

A special thank you to Women Who Code for the opportunity to attend DockerCon 2015; I learned a ton and hope to be able to pass my knowledge forward!