DockerCon Seattle: Follow-up Thoughts
DockerCon Seattle 2016 was somewhat of a blur for me. Being part of the Docker open source project as an engine maintainer as well as being a member of the recent Docker Captains program means this is probably my busiest conference of the year. There are so many community friends to catch up with, meetings to squeeze in, and, somewhat of a surprise for me, three talks to present during the two day event! As always, DockerCon is a fun event, but with so much going on, I had a lot to catch up on after those few fast-paced days came and went.
Given I had great feedback on my three talks, I wanted to give some followup information on each of them with some additional commentary that may be helpful for those trying to follow along afterwards; either you didn’t get a chance to attend DockerCon or you were there but had so many great choices for talks to attend that you are trying to catch up via video and online resources now (like I am for many talks!)
Containerize All the (Multi-platform) Things!
On Monday during the lunch break in the Community Theater I presented a 30 minute talk on the status of multi-platform image support in the registry and engine open source components. This was in some sense a follow-on to my lightning talk at DockerCon in Barcelona last November that previewed the direction the community was heading on support for multiple platforms and architectures. Given lots of good work has been done since then, I was able to do a demo building and running a singly-named DockerHub image running across four unique CPU architectures, including the laptop I was presenting from, a Pine64 embedded ARM board I had with me, and two remotely accessed IBM high end servers: a POWER system and a z Systems mainframe. The slides for my talk are here on Slideshare and have already been one of my most popular slideshare uploads ever! Looks like we can expect continued interest in the area of multi-platform images and hopefully some of the remaining work items will be done by the time we hit the next DockerCon. For a more in-depth read on my take on the status of this effort check out my multi-arch/manifest tool blog post.
— Andrew Hately (@cloudtroll) June 20, 2016
Contribute 101: Engine/Swarm/ContainerD
Later on Monday, the maintainers from three of the core projects in the Docker ecosystem gathered in the Contribute and Collaborate track to talk about contributing and answer questions from those interested in getting involved. I presented the following slides on my experience as a contributor and now external maintainer, which didn’t seem all that special (and hopefully apply to much more than the Docker projects), but got some great feedback from potential new contributors that it was very useful information. As with most things, maybe the things that seem commonplace to us after several years of experience are seen as really useful to those who are just starting down the same path. If you are interested in getting involved in the Docker project and want to follow-up with any specific questions feel free to reach out to me on GitHub, email, Twitter, IRC, or anywhere you can find me!
— Arnaud Porterie (@icecrime) June 20, 2016
runC: The Little Engine that Could (run Docker Containers)
On Tuesday afternoon in the Black Belt Track, I took the audience through the use of runC, the Open Container Initiative’s (OCI) reference implementation of a container runtime, mapping the more well-understood use of
docker run to similar scenarios with
runc plus a JSON config representing the same container configuration via an OCI specification. It was definitely a fun presentation to try and pull off with lots of “live” demonstrating from the command line with the pressure of hundreds of eyes waiting to see if you will get it right or not! If you weren’t able to make it, this talk was video recorded and is embedded below if you weren’t able to catch it live. During this talk I used several projects from Jess Frazelle: the netns pre-start hook for networking, and the riddler tool, for converting a Docker engine inspected config into an OCI config JSON file. I also shared a simple tool I wrote, exportrootfs, which adds some scripting around LXC’s uidmapshift utility to extract Docker container’s root filesystem into a runC-ready rootfs, with support for user namespace shifted file ownership.
I was blown away by the positive response to this talk, including the news that it was one of the top ten rated talks by attendees at DockerCon Seattle! It was a great audience and thanks to some cool tools from Jess and others, it was fun to demonstrate the possibilities and I think the topic has high interest to those who want to see how containers actually work at the operating system layer.
— Mario Cruz (@mariocruz) June 21, 2016
If you are interested in the multi-platform topic or runC, the good news is that I have the opportunity to share similar talks at ContainerCon, co-located with LinuxCon Toronto in August. These two talks are on the ContainerCon schedule and I’ve linked them here in case you are attending and are considering your options:
- More than x86_64: Docker images for Multi-platform: Monday, August 22nd, 3:00pm
- runC: the little (container) engine that could: Tuesday, August 23rd, 2:00pm (with special guest Jess Frazelle!!)
I’m also speaking at several meetups in the near future; Docker London on Wednesday, July 20th, and DevOps CVL in Charlottesville, Virginia on Tuesday, July 26th, and look forward to sharing at other conferences and meetups throughout the fall.
— Arun Gupta (@arungupta) June 23, 2016
So, even though DockerCon Seattle is getting to be a foggy memory, hopefully I can catch up with many of you at conferences and meetups yet ahead in 2016!