docker captains – Docker https://www.docker.com Mon, 26 Sep 2022 13:47:55 +0000 en-US hourly 1 https://wordpress.org/?v=6.2.2 https://www.docker.com/wp-content/uploads/2023/04/cropped-Docker-favicon-32x32.png docker captains – Docker https://www.docker.com 32 32 Creating Kubernetes Extensions in Docker Desktop https://www.docker.com/blog/creating-kubernetes-extensions-in-docker-desktop/ Mon, 26 Sep 2022 14:00:00 +0000 https://www.docker.com/?p=37661 This guest post is courtesy of one of our Docker Captains! James Spurin, a DevOps Consultant and Course/Content Creator at DiveInto, recalls his experience creating the Kubernetes Extension for Docker Desktop. Of course, every journey had its challenges. But being able to leverage the powerful open source benefits of the loft.sh vcluster Extension was well worth the effort!

docker kubernetes loft extension 900x600 1

Ever wondered what it would take to create your own Kubernetes Extensions in Docker Desktop? In this blog, we’ll walk through the steps and lessons I learned while creating the k9s Docker Extension and how it leverages the incredible open source efforts of loft.sh vcluster Extension as crucial infrastructure components.

Docker Desktop running the k9s Extension.

Why build a Kubernetes Docker Extension?

When I initially encountered Docker Extensions, I wondered:

“Can we use Docker Extensions to communicate with the inbuilt Docker-managed Kubernetes server provided in Docker Desktop?”

Docker Extensions open many opportunities with the convenient full-stack interface within the Extensions pane.

Traditionally when using Docker, we’d run a container through the UI or CLI. We’d then expose the container’s service port (for example, 8080) to our host system. Next, we’d access the user interface via our web browser with a URL such as http://localhost:8080.

Diagram directing user to run a Docker container via the UI/CLO and expose the service port. Then, the user should access the service via their web brower.

While the UI/CLI makes this relatively simple, this would still involve multiple steps between different components, namely Docker Desktop and a web browser. We may also need to repeat these steps each time we restart the service or close our browser.

Docker Extensions solve this problem by helping us visualize our backend services through the Docker Dashboard.

Diagram showing the user directing accessing the Docker Extension, instead of repeating the original steps.

Combining Docker Desktop, Docker Extensions, and Kubernetes opens up even more opportunities. This toolset lets us productively leverage Docker Desktop from the beginning stages of development to container creation, execution, and testing, leading up to container orchestration with Kubernetes.

Flow diagram beginning with code development and container build then ending with container testing and orchestration with Kubernetes.

Challenges creating the k9s Extension

Wanting to see this in action, I experimented with different ways to leverage Docker Desktop with the inbuilt Kubernetes server. Eventually, I was able to bridge the gap and provide Kubernetes access to a Docker Extension.

At the time, this required a privileged container — a security risk. As a result, this approach was less than ideal and wasn’t something I was comfortable sharing…

three padlocks
Photo by FLY:D on Unsplash

Let’s dive deeper into this.

Docker Desktop uses a hidden virtual machine to run Docker. We also have the Docker-managed Kubernetes instance within this instance, deployed via kubeadm:

Diagram demonstrating a Docker-managed Kubernetes instance within a virtual machine, deployed via kubeadm.

Docker Desktop conveniently provides the user with a local preconfigured kubeconfig file and kubectl command within the user’s home area. This makes accessing Kubernetes less of a hassle. It works and is a fantastic way to fast-tracking access for those looking to leverage Kubernetes from the convenience of Docker.

However, this simplicity poses some challenges from an extension’s viewpoint. Specifically, we’d need to find a way to provide our Docker Extension with an appropriate kubeconfig file for accessing the in-built Kubernetes service.

Finding a solution with loft.sh and vcluster

Fortunately, the team at loft.sh and vcluster were able to address this challenge! Their efforts provide a solid foundation for those looking to create their Kubernetes-based Extensions in Docker Desktop.

Loft website homepage advertising virtual Kubernetes clusters that run inside regular namespaces.

When launching the vcluster Docker Extension, you’ll see that it uses a control loop that verifies Docker Desktop is running Kubernetes.

From an open source viewpoint, this has tremendous reusability for those creating their own Docker Extensions with Kubernetes. The progress indicator shows vcluster checking for a running Kubernetes service, as we can see in the following:

Docker Desktop vcluster Extension pane displaying loading screen as it searches for a running Kubernetes service.

If the service is running, the UI loads accordingly:

Docker Desktop vcluster Extension pane displaying a list of any running Kubernetes services.

If not, an error is displayed as follows:

Docker Desktop vcluster Extension pane displaying an error message.

While internally verifying that the Kubernetes server is running, loft.sh’s vcluster Extension cleverly captures the Docker Desktop Kubernetes kubeconfig. The vcluster Extension does this using a javascript hostcli call out with kubectl binaries included in the extension (to provide compatibility across Windows, Mac, and Linux).

Then, it posts the captured output to a service running within the extension. The service in turn writes a local kubeconfig file for use by the vcluster Extension. 🚀

// Gets docker-desktop kubeconfig file from local and save it in container's /root/.kube/config file-system.
// We have to use the vm.service to call the post api to store the kubeconfig retrieved. Without post api in vm.service
// all the combinations of commands fail
export const updateDockerDesktopK8sKubeConfig = async (ddClient: v1.DockerDesktopClient) => {
    // kubectl config view --raw
    let kubeConfig = await hostCli(ddClient, "kubectl", ["config", "view", "--raw", "--minify", "--context", DockerDesktop]);
    if (kubeConfig?.stderr) {
        console.log("error", kubeConfig?.stderr);
        return false;
    }

    // call backend to store the kubeconfig retrieved
    try {
        await ddClient.extension.vm?.service?.post("/store-kube-config", {data: kubeConfig?.stdout})
    } catch (err) {
        console.log("error", JSON.stringify(err));
    }

How the k9 Extension for Docker Desktop works

With loft.sh’s ‘Docker Desktop Kubernetes Service is Running’ control loop and the kubeconfig capture logic, we have the key ingredients to create our Kubernetes-based Docker Extensions.

oil and flour ingredients
Photo by Anshu A on Unsplash

The k9s Extension that I released for Docker Desktop is essentially these components, with a splash of k9s and ttyd (for the web terminal). It’s the loft.sh vcluster codebase, reduced to a minimum set of components with k9s added.

The source code is available at https://github.com/spurin/k9s-dd-extension

The README.md file, found on GitHub, explains the details of the k9s extension for Docker Desktop.

While loft.sh’s vcluster stores the kubeconfig file in a particular directory, the k9s Extension expands this further by combining this service with a Docker Volume. When the service receives the post request with the kubeconfig, it’s saved as expected.

The kubeconfig file is now in a shared volume that other containers can access, such as the k9s as shown in the following example:

A snippet of code demonstrating a kubeconfig file stored in a shared volume to be accessed by other containers.

When the k9s container starts, it reads the environment variable KUBECONFIG (defined in the container image). Then, it exposes a terminal web-based service on port 35781 with k9s running.

If Kubernetes is running as expected in Docker Desktop, we’ll reuse loft.sh’s Kubernetes control loop to render an iframe, to the service on port 35781.

if (isDDK8sEnabled) {
            const myHTML = '<style>:root { --dd-spacing-unit: 0px; }</style><iframe src="http://localhost:35781" frameborder="0" style="overflow:hidden;height:99vh;width:100%" height="100%" width="100%"></iframe>';
            component = <React.Fragment>
            <div dangerouslySetInnerHTML={{ __html: myHTML }} />
            </React.Fragment>
        } else {
            component = <Box>
                <Alert iconMapping={{
                    error: <ErrorIcon fontSize="inherit"/>,
                }} severity="error" color="error">
                    Seems like Kubernetes is not enabled in your Docker Desktop. Please take a look at the <a
                    href="https://docs.docker.com/desktop/kubernetes/">docker
                    documentation</a> on how to enable the Kubernetes server.
                </Alert>
            </Box>
        }

This renders k9s within the Extension pane when accessing the k9s Docker Extension.

k9 extension running in docker desktop

Conclusion

With that, I hope that sharing my experiences creating the k9s Docker Extension inspires you. By leveraging the source code for the Kubernetes k9s Docker Extension (standing on the shoulders of loft.sh), we open the gate to countless opportunities.

You’ll be able to fast-track the creation of a Kubernetes Extension in Docker Desktop, through changes to just two files: the docker-compose.yaml (for your own container services) and the UI rendering in the control loop.

Of course, all of this wouldn’t be possible without the minds behind vcluster. I’d like to give special thanks to loft.sh’s Lian Li, who I met at Kubecon and introduced me to loft.sh/vcluster. And I’d also like to thank the development team who are referenced both in the vcluster Extension source code and the forked version of k9s!

Thanks for reading – James Spurin

Not sure how to get started or want to learn more about Docker Extensions like this one? Check out the following additional resources:

You can also learn more about James, his top tips for working with Docker, and more in his feature on our Docker Captain Take 5 series. 

]]>
Docker Captains Take 5 — Thorsten Hans https://www.docker.com/blog/docker-captains-take-5-thorsten-hans/ Fri, 22 Jul 2022 14:00:33 +0000 https://www.docker.com/?p=34959 Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Thorsten, who recently joined as a Docker Captain. He’s a Cloud-Native Consultant at Thinktecture and is based in Saarbrücken, Germany.

Docker Captain Thorsten Hans

How/when did you first discover Docker?

I started using Docker when I got a shiny new MacBook Pro back in 2015. Before unboxing the new device, I was committed to keeping my new rig as clean and efficient as possible. I didn’t want to mess up another device with numerous databases, SDKs, or other tools for every project. Docker sounded like the perfect match for my requirements. (Spoiler: It was!)

When using macOS as an operating system, Docker Toolbox was the way to go back in those days.

Although quite some time has passed since 2015, I still remember how amazed I was by Docker’s clean CLI design and how Docker made underlying (read: way more complicated) concepts easy to understand and adopt.

What’s your favorite Docker command?

To be honest, I think “favorite” is a bit too complicated to answer! Based on hard facts, it’s docker run.

According to my ZSH history, it’s the command with most invocations. By the way, if you want to find yours, use this command:


bash

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3,$4}' | sort | uniq -c | sort -nr | grep docker | head -n 10

Besides docker run, I would go with docker sbom and docker scan. Those help me to address common requirements when it comes to shift-left security.

What’s your top tip for working with Docker that others may not know?

From a developer’s perspective, it’s definitely docker context in combination with Azure and AWS.

Adding Azure Container Instances (ACI) or Amazon Elastic Container Service (ECS) as a Docker context and running your apps straight in the public cloud within seconds is priceless.

Perhaps you want to quickly try out your application, or you have to verify that your containerized application works as expected in the desired cloud infrastructure. Serverless contexts from Azure and AWS with native integration in Docker CLI provide an incredible inner-loop experience for both scenarios.

What’s the coolest Docker demo you’ve done/seen?

It might sound a bit boring these days. However, I still remember how cool the first demo on debugging applications running in Docker containers from people at Microsoft was.

Back in those days, they demonstrated how to debug applications running in Docker containers on the local machine and attach the local debugger to Docker containers running in the cloud. Seeing the debugger stopping at the desired breakpoint, showing all necessary contextual information, and knowing about all the nitty-gritty infrastructure in-between was just mind blowing.

That was the “now we’re talking” moment for many developers in the audience.

What have you worked on in the past six months that you’re particularly proud of?

As part of my daily job, I help developers understand and master technologies. The most significant achievement is when you recognize that they don’t need your help anymore. It’s that moment when you realize they’ve grasped the technologies — which ultimately permits them to master their technology challenges without further assistance.

What do you anticipate will be Docker’s biggest announcement this year?

Wait. There is more to come? Really!? TBH, I have no clue. We’ve had so many significant announcements already in 2022. Just take a look at the summary of DockerCon 2022 and you’ll see what I mean.

Personally, I hope to see handy extensions appearing in Docker Desktop, and I would love to see new features in Docker Hub when it comes to automations.

What are some personal goals for the next year with respect to the Docker community?

I want to help more developers adopt Docker and its products to improve their day-to-day workflow. As we start to see more in-person conferences here in Europe, I can’t wait to visit new communities, meetups, and conferences to demonstrate how Docker can help them take their productivity to a whole new level.

Speaking to all the event organizers: If you want me to address inner-loop performance and shift-left security at your event, ping me on Twitter and we’ll figure out how I can contribute.

What was your favorite thing about DockerCon 2022?

I won’t pick a particular announcement. It’s more the fact that Docker as a company continually sharpens its communication, marketing, and products to address the specific needs of developers. Those actions help us as an industry build faster inner-loop workflows and address shift-left security’s everyday needs.

Looking to the distant future, what’s the technology that you’re most excited about and that you think holds a lot of promise?

Definitely cloud-native. Although the term cloud-native has been around for quite some time now, I think we haven’t nailed it yet. Vendors will abstract complex technologies to simplify the orchestration, administration, and maintenance of cloud-native applications.

Instead of thinking about technical terms, we must ensure everyone thinks about this behavior when the term cloud-native is referenced.

Additionally, the number of tools, CLIs, and technologies developers must know and master to take an idea into an actual product is too high. So I bet we’ll see many abstractions and simplifications in the cloud-native space.

Rapid fire questions…

What new skill have you mastered during the pandemic?

Although I haven’t mastered it (yet), I would answer this question with Rust. During the pandemic, I looked into some different programming languages. Rust is the language that stands out here. It has an impressive language design and helps me write secure, correct, and safe code. The compiler, the package manager, and the entire ecosystem are just excellent.

IMO, every developer should dive into new programming languages from time to time to get inspired and see how other languages address common requirements.

Cats or Dogs?

Dogs. We thought about and discussed having a dog for more than five years. Finally, in December 2022, we found Marley, the perfect dog to complete our family.

Thorsten dog

Salty, sour, or sweet?

Although I would pick salty, I love sweet Alabama sauce for BBQ.

Beach or mountains?

Beach, every time.

Your most often used emoji?

Phew, There are tons of emojis I use quite frequently. Let’s go with 🚀.

]]>
Docker Captain Take 5 – Sebastián Ramírez https://www.docker.com/blog/docker-captain-take-5-sebastian-ramirez/ Fri, 18 Mar 2022 15:00:00 +0000 https://www.docker.com/?p=32576 Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtlesover here). Today, we’re interviewing Sebastián Ramírez who has been a Docker Captain since 2022. He is a Staff Software Engineer at Forethought and is based in Berlin, Germany.

alba

How/when did you first discover Docker?

Several years ago, I was working in a company with a team of developers, handling servers manually. We would connect to the servers via SSH, install packages, configure files by hand… it was a whole mess. We had lots of SnowflakeServers, which is really bad. 😅

I was trying to figure out ways to automatize that process, so that we could remove a server and rebuild it from scratch in very little time. I tried many tools, starting with simple Bash scripts, going to packages to handle deployments like Ansible, Salt, Chef, Puppet, etc.

At that point, when I was getting a bit overwhelmed with the complexity of the alternatives, I discovered Docker. I had seen many Dockerfiles in many GitHub repositories, but I had no idea what it was yet. I studied it, started using it, and immediately fell in love.

What is your favorite Docker command?

It’s probably docker ps, I’m always checking if the stack is already up, if there’s any other container up, if there are any exited containers with errors, the ports used by containers, etc. I feel it’s the command I’m using most frequently.

What is your top tip for working with Docker that others may not know?

It’s probably that you can override the default command of a Docker image, in Docker or Docker Compose. And you can use a command to just keep the container alive, like sleep infinity.

And then you can combine that with mounting the volume of your code as a host volume.

And then you can get inside the container with docker exec, and from inside, run your app. This way you can develop live from your code without even having to build the image again. And if you get an error you can just fix it and run the command again. And the sleep infinity will make sure the container stays alive even after the error, so you can continue developing very quickly, without even having to restart the container.

What’s the coolest Docker demo you have done/seen?

I have seen and done so many! One of the things that always amazes me is how easy it is to try out a new system, a new database, a new tool.

I have been able to learn and use many databases, SQL and NoSQL, search engines, job queues, etc. Docker always plays a key role in it. I know that for almost anything I want to try there will be an official image in the Docker Hub, with sensible defaults, simple configurations (in most of the cases just environment variables), and with the security and isolation benefits of containers you get used to love when working with Docker.

What have you worked on in the past six months that you’re particularly proud of?

That will probably be FastAPI! A Python framework for building web APIs using type annotations. And also my other open source projects, like Typer, SQLModel, Asyncer.

I’m also proud of contributing to other open source packages, and writing documentation that seems to help other developers use tools and be more efficient. 🤓

What do you anticipate will be Docker’s biggest announcement this year?

I wouldn’t know! Docker always has a way to bring simple but clever ideas, I’m looking forward to seeing what’s next!

What are some personal goals for the next year with respect to the Docker community ?

I’ve been a Docker fan for a long time, I feel it helps developers a lot improving all the workflows and making us more efficient. I hope more developers can learn how to use it, at least the basics, and improve their work with it.

What talk would you most love to see at DockerCon 2022?

So many things! Probably tips and tricks from developers using Docker.

For example, only recently I discovered there’s a Linux command that you can use with Docker: sleep infinity. Before discovering that, I would do complex things like bash -c “while true; sleep 10; done”, both of those achieve the same, but the first one is so much simpler! I just didn’t know it existed, and it’s super useful during development.

I would love to learn what other tricks are there.

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I love Python, the programming language. I feel it’s evolving and maturing more and more, in a way that makes it extremely convenient to work with and to develop advanced applications in a simple way. And it works very well with Docker!

Rapid fire questions…

What new skill have you mastered during the pandemic?

Getting delivery groceries without leaving the house. I’m not necessarily proud of that. 😅

Cats or Dogs?

Both! And snakes! 🐍

Salty, sour or sweet?

First salty with sour and then sweet, please.

Beach or mountains?

Is there WiFi?

Your most often used emoji?

I would like to say 🚀, but I would probably be lying. It’s most certainly this one: 😅.

]]>
Docker Captain Take 5 – Martin Terp https://www.docker.com/blog/docker-captain-take-5-martin-terp/ Fri, 18 Feb 2022 17:04:59 +0000 https://www.docker.com/blog/docker-captain-take-5-martin-terp/ Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Martin Terp who just joined as a Docker Captain. Martin is a Splunk Consultant at Netic.dk and is based in Aalborg, Denmark.

martin

How/when did you first discover Docker?

I was working as a Sysadmin for a big Danish ISP, and when you work with IT, you always try to expand your knowledge: How can I improve this application? How can I make deployments easier? What is the next big thing? So back in 2016, I came across Docker, and instantly fell in love with it and containerization in general. I started testing it out, on my own little projects and quickly I could see the benefits for it in the way we deploy and maintain applications.

What is your favorite Docker command?

I must say “docker scan”, making images and running containers is pretty sweet, but you also need to think about the vulnerabilities that can (will) occur. Looking back at the log4j vulnerability, it’s pretty important to detect it, also when running your own, and building your own images. Docker scan provides this functionality and I love it, also its great to see that https://hub.docker.com/ also have implemented a vulnerability scanner 💙

What is your top tip for working with Docker that others may not know?

Use Dockerfiles! I have seen many, mainly newcomers, that are building containers by “docker exec” into the container, and executing commands/scripts that they need. Do the right thing from the start, and do yourself a favor by looking into Dockerfiles, it’s worth it.

What’s the coolest Docker demo you have done/seen ?

Dockercon 2017, docker captains Marcos Nils and Jonathan Leibiusky showcased “Play With Docker” (https://labs.play-with-docker.com/). I was really impressed and thought it would be really handy for people to get into docker.

What have you worked on in the past six months that you’re particularly proud of?

I don’t think there is a particular project, something I’m personally proud of, is that I switched jobs after being in the same place for 14 years, and started specializing in another awesome analytics tool called Splunk. Also a feel-good thing, is my contribution to the community forums. I have spent a lot of time on the forums trying to help others with their issues.

What do you anticipate will be Docker’s biggest announcement this year?

It’s really hard to tell, surprise me 😉

What are some personal goals for the next year with respect to the Docker community?

I spend a lot of time on the community forums, and there are questions that get asked again and again with “how do i”, so the plan is to create some blog posts, addressing some of the common things that get asked on the forums.

What talk would you most love to see at DockerCon 2022?

I love to see when they are presenting real-world scenarios. It’s always very interesting to see what people have come up with, how they solved their head-scratching projects, and every year I’m amazed!
But I also hope to see myself at Dockercon in the future, I hope that covid hasn’t put a complete stop to events where we can attend IRL. I would like to meet some of my fellow docker enthusiasts.

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I love containers and I’m very excited to see where it will go in the future, its evolving constantly, there is always a new way to doing this, doing that, doing things smarter, and that’s also something I like with this community, people want to share their findings, we occasionally see posts on the forums with “Look what I made!” and those are the most fun to see 😊 

Rapid fire questions…

What new skill have you mastered during the pandemic?

I have on and off tried learning to play the guitar, but couldn’t really find the time for it, so I tried picking it up again doing the pandemic, and after all this time, I can proudly say; I suck at it! 😅

Cats or Dogs?

Why not both? 😊

Salty, sour or sweet?

Salty

Beach or mountains?

Beach!

Your most often used emoji?

😅

]]>
Docker Captain Take 5 – Thomas Shaw https://www.docker.com/blog/docker-captain-take-5-thomas-shaw/ Fri, 21 Jan 2022 15:00:00 +0000 https://www.docker.com/blog/docker-captain-take-5-thomas-shaw/ Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Thomas Shaw, one of our Docker Captains. He works as a Principal Automation Engineer at DIGIT Game Studios and is based in Ireland.

shaw

How/when did you first discover Docker?

I remember it like it was yesterday. The date was August 23rd 2013 and I was working as a Build Engineer for Demonware.  During a visit to the Vancouver office, one of the developers named Mohan Raj Rajamanickham mentioned “a cool new tool” called Docker. It sounded too good to be true but I downloaded version 0.5 the next day while waiting for the flight back home to Dublin, Ireland. I played with the Docker CLI for several hours on the flight and that was it.  Before the plane had touched the runway in Dublin I was completely sold on the potential of Docker. It solved an immediate problem faced by developers and build engineers alike, dependency hell.

Over the following 12 months we replaced our bare metal build agents with containerized build agents. It was a primitive approach at first. We built a CentOS 5 VM, tarred it up and created a container image from it. This was the base image on which we ran builds and tests over the next 2 years. We went from 8 bare metal build agents, each unique, each manually setup, each with different tooling versions to 4 build agents with just Docker installed.

It was a simple approach but it eliminated the management of several unique build agents. We saw a number of other benefits too, such as better build stability, increased build throughput by 300% and most importantly teams now owned their own dependencies. This approach worked well and around 2015 we started looking at moving our CI/CD pipelines into AWS. We originally took a hybrid approach and ran the majority of builds and tests in our own datacenter and just a handful in AWS. This was easier than expected. Docker made our workloads portable and we began to leverage the scalability of AWS for running tests. The unit tests (which were actually functional tests) for one of our main projects was taking over 1 hour per commit. Using containers we were able to split the tests across multiple containers on multiple build agents and we reduced the execution time to around 10 minutes. It was at this point that more folks started to pay attention to the potential of Docker.

What is your favorite Docker command?

I really enjoy “docker diff”. I find it incredibly useful to see what files/directories are being added or modified by the process within the container. It’s great for debugging. A close second would be “docker stats”.

What is your top tip for working with Docker that others may not know?

When possible, own your own base image and pin tooling versions. It’s convenient to use the public images on Docker Hub but when working in an organization where hundreds of developers are relying on the same base image try to bring it in house. We set up an image “bakery” at Demonware where we would build our base images nightly, with pinned versions of tools included, ran extensive tests, triggered downstream pipelines and verified that our base image was always in a good state. From experience it’s the base image where the most “bloat” occurs and keeping it lean can also help when moving the image around your infrastructure.

What’s the coolest Docker demo you have done/seen ?

My favorite demo was by Casey Bisson from Joyent. In the demo he showed off how Triton worked and how he could scale from a single container running locally out to an entire datacenter by just updating a single endpoint. This was in 2016 and I still love the simplicity of this approach.

What have you worked on in the past six months that you’re particularly proud of?

I’ve been using containers daily since late 2013 and still find new uses for them regularly. I’m currently working on improving developer tooling and UX at DIGIT Games Studios in Dublin. Part of this work includes containerizing our tooling and making it accessible in multiple ways including from Slack, command line, callable by API and even runnable from a spreadsheet. Docker enables us to bring the tooling closer to the end user whether they are technical or non technical. Rolling out updates to tools is now trivial.

What do you anticipate will be Docker’s biggest announcement this year?

Development Environments (DE) has received a huge amount of positive feedback based on the early announcements. I think the potential of DE is huge. To have these environments tightly integrated into a developers IDE, easily shareable and customizable will remove existing friction and help developers move from idea to production with greater velocity.

What are some personal goals for the next year with respect to the Docker community?

Our last Docker Dublin Meetup was in February 2020 and with a community of over 3000 members I’d like to start the in-person meetups again in 2022. I’d also like to continue running more Docker Workshops around Ireland and take the power of containerization out to other communities.

What talk would you most love to see at DockerCon 2022?

Any talks that include gaming would be great. I particularly loved the live migration demo of Quake a few years ago. Some studios are doing really cool stuff with containers. As early adopters of containers, Demonware may have some useful experiences to share with regard to their journey from self-hosted Kubernetes to the cloud. 

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

That’s a tough question. Any technology that focuses on the user experience first and is a joy to use excites me. From a gaming perspective Augmented Reality has so much potential, particularly for mobile gaming. I’m not going to mention Blockchain or NFTs since I don’t know enough about either to comment. They may have their place but if they negatively impact the environment as suggested then perhaps they need to go back to the drawing board for a few more iterations.

Rapid fire questions…

What new skill have you mastered during the pandemic?

Mindfulness.

Cats or Dogs?

Dogs.

Salty, sour or sweet?

Sweet.

Beach or mountains?

Mountains.

Your most often used emoji?

🤗

DockerCon2022

Join us for DockerCon2022 on Tuesday, May 10. DockerCon is a free, one day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2022 offers engaging live content to help you build, share and run your applications. Register today at https://www.docker.com/dockercon/

]]>
Docker Captain Take 5 – Nicolas De Loof https://www.docker.com/blog/docker-captain-take-5-nicolas-de-loof/ Wed, 24 Nov 2021 16:16:46 +0000 https://www.docker.com/blog/docker-captain-take-5-nicolas-de-loof/ Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Nicolas De Loof who has been a Docker Captain since 2015, then has been hired by Docker in 2019 and came back as a Docker Captain one month ago. He is a Software Engineer at Doctolib and is based in Rennes, France.

delete take 5 nicholos

How/when did you first discover Docker?

10 years ago (oh man!) while I was employed by CloudBees, which was building a Platform as a Service before it became “the Jenkins Company”. DotCloud was one of our competitors, and when they created Docker, I saw obvious matches with our own infrastructure (based on LXC) but also significant differences. Digging into details I learned a lot, and started sharing my knowledge, first as a speaker for conferences, then on Youtube.

What is your favorite Docker command?

docker compose, because I built it as a Docker employee (before leaving and becoming a Docker Captain again). Or

docker rm -f $(docker ps -aq)


Which basically means “cleanup everything”. I like the ability to run a complex stack and throw it away in a single command, then recreate it cleanly. I use this on a daily basis 🙂

What is your top tip for working with Docker that others may not know?

Take a few minutes to understand the distinction between a “bind mount” and a “volume”. Then check in the docs/APIs and see how many times those words are used in a wrong way 😀

What’s the coolest Docker demo you have done/seen ?

I demo-ed docker swarm fail-over by shutting down a raspberry-Pi cluster using an electric drill. Was fun, hopefully no fire alarm. People on the first row in the conference room were a bit surprised.

What have you worked on in the past six months that you’re particularly proud of?

We fully re-implemented the legacy docker-compose python tool into a plain Golang extension to the docker CLI. Doing so, Compose is now a first-class citizen in the Docker ecosystem.

What do you anticipate will be Docker’s biggest announcement this year?

A complete redesign of the image distribution workflow. Today DockerHub is sort of a black box for most of us. We push or pull, but never use the web UI or use specific APIs. With vulnerability scanning, verified publishers program, Docker is opening this to third-party integrations and more traceability on the “supply chain”. I expect a lot more to happen in this area.

What are some personal goals for the next year with respect to the Docker community?

Keep maintaining Docker Compose in my spare time to ensure this keeps being one of the most beloved developer tools.

What talk would you most love to see at DockerCon 2022?

I’d like to hear more about how others do CI in Kubernetes. I personally don’t think Kube is a good match for this, but as the de facto infrastructure standard it’s used everywhere. But then one needs to find a way to run `docker build` inside a Kubernetes pod, and please don’t tell me about “docker in docker”…

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I’ve seen many system engineers investing in eBPF. This allows the extension of Linux kernel in a secure way, and opens amazing opportunities for security and extensibility.

Rapid fire questions…

What new skill have you mastered during the pandemic?

Gardening

Cats or Dogs?

Both. And Horses

Salty, sour or sweet?

Sour. Mostly IPA

Beach or mountains?

Any of those. Our always-connected lives deserve some healthy breaks

Your most often used emoji?

¯\_(ツ)_/¯

Because the whole IT stack is built on top of mistakes made by others in the past that we learned how to live with, so we can make our own mistakes. So golang as an illustration.

]]>
Docker Captain Take 5 – Aurélie Vache https://www.docker.com/blog/docker-captain-take-5-aurelie-vache/ Mon, 25 Oct 2021 17:28:22 +0000 https://www.docker.com/blog/docker-captain-take-5-aurelie-vache/ Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Aurélie Vache who has been a Docker Captain since 2021. She is a DevRel at OVHcloud and is based in Toulouse, France.

1

How/when did you first discover Docker?

I’ve been a developer (with Ops & Data sensibility) for over 15 years. I’m a former Java / JEE Developer, Ops, then Web, Full-Stack and Lead Developer.

Four years ago I was a cloud developer working on connected and autonomous vehicles projects. I discovered the magical world of cloud technologies: managed services with cloud providers, containers, orchestrator, observability, monitoring, infrastructure as code, CI/CD and real DevOps approach & culture. I fell in love with these technologies.

It was not easy to understand all the new concepts, but it was very interesting and enriching.

It was also the moment I discovered Docker. And since thenI have used Docker daily.

What is your favorite Docker command?

$ docker system prune -a

This command helped me in the past to save Jenkins agents :-D.

What is your top tip for working with Docker that others may not know?

I don’t know if it’s a “top tip” but I think it’s useful to know that containers have an exit status code and they can give us explanations about why the container has failed.

If you are interested, you can find my sketchnote about it here:

2
3

What’s the coolest Docker demo you have done/seen?

It was when a coworker showed me how he packaged his app into a Docker image, pushed it to a Docker registry, and ran it in a container, so easily. He could deploy an application anywhere, without having to install tools, dependencies, face version conflicts, and he could deploy his application in multiple environments without having to install x environments manually.

It was so magical and powerful.

What have you worked on in the past six months that you’re particularly proud of?

I have helped evangelize and democratize Docker, as well as Kubernetes and the world of containers and the cloud in general, across multiple companies. I also presented several talks entitled “Docker, Kubernetes, Istio: Tips, tricks & tools” across France.

I also created a new way to teach cloud technologies, such as Docker, through a series of sketchnotes: “Understanding Docker | Kubernetes | Istio” in a visual way. 

All technical books are written in the same way. Personally I understand more when I see diagrams, schemas, and illustrations rather than a ton of words. I have found this is helpful for other people too :-).

What do you anticipate will be Docker’s biggest announcement this year?

Honestly I don’t know. I like to be surprised ^^.

What are some personal goals for the next year with respect to the Docker community?

I plan to create a new series of videos about Docker, always in a visual way, in my YouTube channel, in order to continue to try to share and spread my knowledge in an easy way for people.

What talk would you most love to see at DockerCon 2022?

As usual, I like to be surprised, so I don’t have any expectations.

Rapid fire questions…

What new skill have you mastered during the pandemic?

4

During the pandemic I created a new way to explain complex and abstract concepts in a more simple and visual way, in sketchnotes, titled “Understanding xx in a visual way”. I sketched every evening and week-end, published them on Twitter and dev.to. And finally, I’ve published 3 books about Kubernetes, Istio and Docker. I love to try to explain abstract complex concepts with simple illustrations and words.

Cats or Dogs?

As a child, I would have answered dog, but now I would answer cat. For a few days now I’ve had a kitten named “Sushi”! 🙂

8

Salty, sour or sweet?

salty

Beach or mountains?

mountain

Your most often used emoji?

^^ or 😀

]]>
Docker Captain Take 5 – Lucas Santos https://www.docker.com/blog/docker-captain-take-5-lucas-santos/ Wed, 14 Jul 2021 15:00:00 +0000 https://www.docker.com/blog/?p=28500 Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Lucas Santos who has been a Docker Captain since 2021. He is a Cloud Advocate at Microsoft and is based in São Paulo, Brazil.

Avatar Palestra Grande

How/when did you first discover Docker?

My first contact with Docker was in 2015 when I worked at a logistics company. Docker made it very easy to deploy applications in customer’s infrastructure. Every customer had a different need and a different architecture that needed to be taken into account, unfortunately I had to leave the company before I could make this real. So I took that knowledge to my next company where we deployed over 100 microservices using Docker images and Docker infrastructure.

What is your favorite Docker command?

I would say it’s “pull”. Because it makes it look as if images are incredibly simple things. However, there’s a whole system behind image pulling and, despite being simple to understand, a simple image pull contains a lot of steps and a lot of aggregated knowledge about containers, filesystems and so much more. And this is all transparent to the user as if it’s magic.

What is your top tip you think other people don’t know for working with Docker?

Some people, especially those who are not familiar with containers, think Docker is just a fancy word for a VM. My top tip for everyone that is working with Docker as a fancy VM, don’t. Docker containers can do so much more than just run simple processes and act as a simple VM. There’s so much we can do using containers and Docker images it’s an endless world.

What’s the coolest Docker demo you have done/seen ?

I think I don’t have a favorite, but one that really stuck with me all those years was one of the first demos I’ve seen with Docker back in 2016 or 2017. I won’t remember who was the speaker or where I was but it stuck with me because it was the first time I was seeing someone using CI with Docker. In this demo, the speaker not only created images on demand using a Docker container, but also spinned up several other containers, one for each part of the pipeline. I had never seen something like that before at that time.

What have you worked on in the past 6 months that you’re particularly proud of?

I’m proud of my work with my blog and even prouder of my work in the KEDA HTTP Add-On (https://github.com/kedacore/http-add-on) team. We’ve developed a way to scale applications in a Kubernetes cluster using KEDA native scalers. One of the things that I’m proudest is of the DockerCon community room for the Brazilian community, we had an amazing engagement and this was one of the most amazing events I’ve ever helped to organize.

What do you anticipate will be Docker’s biggest announcement this year?

This is a tricky question. I really don’t know what to hope for, technology moves so fast that I literally hope for anything.

What do you think is going to be Docker’s biggest challenge this year?

I think one of the biggest challenges Docker is going to face this year is to reinvent itself and reposition the company in the eyes of the developers.

What are some personal goals for the next year with respect to the Docker community ?

One of my main goals is to close the gap between the people who are still beginners in containers, and those who are experts because there is too little documentation about it. Along with that I plan to make the Brazilian community more aware of container technologies. I can say that my main goal this year is to make everyone understand what a Docker container is, deep down.

What talk would you most love to see at DockerCon 2021?

I’d love to see more Docker integration with the cloud and new ways to use containers in the cloud.

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I think one of the technologies that I’m most excited about is the future of containers. They evolve so fast that I’m anxious to see what it’ll hold next. Especially in the security field, where I feel there are a lot of things we are yet to see.

Rapid fire questions…

What new skill have you mastered during the pandemic?

Patience, probably. I started to learn IoT, Electronics, Photography, Music and a lot of other things.

Cats or Dogs?

Cats

Salty, sour or sweet?

Salty

Beach or mountains?

Mountains

Your most often used emoji?

 🧐

]]>
Captains Take 5 – Nick Janetakis https://www.docker.com/blog/captains-take-5-nick-janetakis/ Thu, 25 Feb 2021 13:30:00 +0000 https://www.docker.com/blog/?p=27551

Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Nick Janetakis who has been a Docker Captain since 2016. He is a freelance full stack developer / teacher and is based in New York, United States.

How/when did you first discover Docker?

I was doing freelance web development work and kept running into situations where it was painful to set up my development environment for web apps created with Ruby on Rails. Different apps had different Ruby version requirements as well as needing different PostgreSQL and Redis versions too.

I remember running a manually provisioned Linux VM on my Windows dev box and did most of my development there. I even started to use LXC directly within that Linux VM.

That wasn’t too bad after investing a lot of time to automate things but then it was always a song and dance to get everything running on my client’s machines as well as production.

In 2014 I first discovered Docker. I think it was around version 1.4 at the time. I remember reading about Docker and deciding it was stable enough to give it a shot and I’ve been using it ever since.

What is your favorite Docker command?

It’s for sure docker-compose up. It’s by far my most used command.

There’s what drew me into using Docker in the first place. It’s the promise that all I have to do is run 1 or 2 commands and my whole tech stack will be up and running on all major platforms.

Sure back in 2014 it was called fig up and perhaps in the future docker-compose up will be replaced by a native docker command, but the same concept has applied for all these years. 

What is your top tip you think other people don’t know for working with Docker?

You can use the same docker-compose.yml file in development and production and still have the flexibility to run different containers in each environment by using a docker-compose.override.yml file and then ignoring it from version control.

This comes in very handy for running a local copy of PostgreSQL or a Webpack dev server in development but then in production use a managed PostgreSQL database from your cloud provider while serving your pre-compiled assets from nginx or a CDN.

I made a video about this a while back on my blog. Speaking of which, there’s 100+ assorted Docker related posts and videos on my site. I tend to post everything I’ve learned there.

What’s the coolest Docker demo you have done/seen?

The very first time I ran a docker-compose up to bring up a web server, background worker, PostgreSQL and Redis in about 5 seconds I knew things were going to be good.

This wasn’t part of a specific presentation or recorded demo. It was demonstrating to myself that Docker has legs and wasn’t just the next hyped up technology that’s going to fizzle out in 6 months.

I’m usually not interested in watching toy demos or seeing one sliver of something applied in a non-real world use case to make it look appealing. I’m all about practical examples that help me in my day-to-day. That’s why I think something as basic as seeing a fully Dockerized / production-ready web app being started up with docker-compose up is cool.

What have you worked on in the past 6 months that you’re particularly proud of?

Helping some of my freelance clients deploy their web applications in production-ready ways. It’s very satisfying to convert ideas and code into solutions that help folks do what they want to do.

I really enjoy learning new things but to me, code has always been a means to an end. The journey is fun and truly enjoyable but at the end of the day going from A to B is the goal and it always makes me happy to see others be able to fulfill their goals.

I also released 26 episodes of my Running in Production podcast.

It’s a show where a new guest comes on every week and we talk about how they built and deployed a web app they’ve created, what tech stack they used, best tips and lessons learned. As a side note, quite a lot of folks ranging from solo developers to massively popular companies are using Docker in their day-to-day.

What do you anticipate will be Docker’s biggest announcement this year?

I have no idea what’s coming but I hope layer diffing and smart layer updates becomes a thing because one of the biggest time sinks of using Docker in development is having your application’s package dependency layer get invalidated from 1 change. That would be changing something like Python’s requirements.txt file, Ruby’s Gemfile or Node’s package.json file.

Changing a dependency usually involves having to wait 5-10 minutes for all dependencies to get rebuilt but without Docker, that same process would likely finish in 10 seconds or less. If layer diffing and updates were possible that could get things down to 10 seconds with Docker too.

That would be a very welcome change to have layer diffing and smart updates. Especially in new projects where you’re changing your dependencies on a regular basis.

What do you think is going to be Docker’s biggest challenge this year?

It’s hard to say but with Docker’s new primary focus on the developer experience, I’m optimistic because over the last few years it felt like Docker was a bit scattered trying to figure out who their target customer is and how to generate revenue.

I’m happy Docker finally figured out what they want to do. I don’t mean that in a condescending way either. I know how hard it is to find your true calling and target audience.

The biggest challenge would probably be figuring out how to make Docker a sustainable business. I hope it becomes one of those things where Docker transforms from an 80% upgrade / 10% sidegrade / 10% downgrade on some things to a 100% upgrade to the point where for something like web development it becomes a no brainer to always use Docker with no compromises.

Maybe I’m living in a fantasy world but I like to think that if things ever got to that point then the business problem would solve itself through either public funding or getting bought out by a company that will let everyone continue doing what they’re doing and make the best possible developer experience conceived on planet Earth.

What are some personal goals for the next year with respect to the Docker community?

I’d like to ship my next course which focuses on deploying web applications with Docker. This has been a long time coming and I’ve written and rewritten the course twice now over the last 2 years.

On the bright side, I’ve got everything I want to include in the course all put together. It’s everything I’ve learned from building and deploying Dockerized web apps since 2014.

If anyone wants to sign up to get notified with a launch discount when it’s released you can do so at https://nickjanetakis.com/courses/deploy-to-production.

Besides courses, I’ll continue blogging and creating YouTube videos about Docker and other web development topics just as I have for the last 5+ years.

Most of the blog posts, videos and courses I create come from real-world experience so I’m also looking forward to working with more folks this year as a part of my freelance business.

What talk would you most love to see at DockerCon 2021?

If I had to pull a request out of thin air I’d like to see assorted use case demos or presentations on how developers and companies are using Docker out in the wild.

Maybe some type of collaboration video where 5-6 people spend ~10 minutes going over their setups. Perhaps even have 2 of these videos. One with larger companies and one with solo developers or small teams. This way we can see usage patterns from multiple perspectives.

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

If you asked me this question 6 years ago I would have said Docker.

And I’m still going with Docker today because I can see a future where there’s a zero compromise development experience that’s lightning fast with flawless code editor integration in all editors.

That would be a wonderful place to be in.

Rapid fire questions…

What new skill have you mastered during the pandemic?

I’ve never been more confident in my ability to wash my hands.

Salty, sour or sweet?

Can I pick sweet and sour?

Dogs, cats, neither, both?

Turtles all the way down.

Beach or mountains?

Probably mountains because I really like hiking and you can escape the sun. But at the same time there’s something super relaxing about seeing and hearing the ocean. Tough question!

Your most often used emoji?

👍 is what I commonly reach for on GitHub when leaving a reaction to something.

]]>
Docker Captain Take 5 – Elton Stoneman https://www.docker.com/blog/docker-captain-take-5-elton-stoneman/ Fri, 22 Jan 2021 14:00:00 +0000 https://www.docker.com/blog/?p=27404

Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Elton Stoneman who has been a Docker Captain since 2016. He is a Container Consultant and Trainer and is based in Gloucestershire, United Kingdom.

How/when did you first discover Docker?

I was consulting as an API Architect, building out the backend services for a new Android device. My role was all about .NET services running in Azure, but we worked as a single team – and the people working on the operating system were using Docker to simplify their build tools. 

I started looking into their setup and I was just stunned at how you could run complex software with a single Docker command – and have it run the same way on any machine. That was way back in 2014, Docker was version 0.7 I think and I created my Docker Hub account in August of that year. Then I started blogging and speaking about Docker, and I’ve never looked back.

What is your favorite Docker command?

docker manifest inspect [image]

Multi-architecture images are hugely powerful. I work with a lot of platforms now but my heart is still in .NET. The latest .NET runtime works on Windows and Linux on Intel and Arm CPUs, and I love how you can target your apps for different infrastructures, using the same source code and a single Dockerfile.

What is your top tip you think other people don’t know for working with Docker?

Specifically for people who work on hybrid apps like me, with some parts on Windows and some on Linux: when you switch from Linux to Windows containers in Docker Desktop, your containers keep running. If you want to run a hybrid app on your dev machine, then you can do it by publishing ports from the containers on different operating systems and have them communicate over the network, via your host.docker.internal address.

What’s the coolest Docker demo you have done/seen?

I worked at Docker for a few years, and I was lucky enough to present at DockerCon during a couple of keynote sessions. My favorite was the Day 1 Keynote from 2019 where I did a demo with Harish talking about migrating old apps to Docker. We had a ton of fun writing and rehearsing that. A lot of people thought the DockerCon demos were done by actors, but they were all Docker staff, working overtime 🙂

What have you worked on in the past 6 months that you’re particularly proud of?

I’m a freelance consultant and trainer now, helping organizations on their container journeys, and I also create a lot of content to help practitioners learn the technologies and approaches. 

In the last six months I launched my weekly YouTube series Elton’s Container Show, finished writing my new book Learn Kubernetes in a Month of Lunches, published my 26th Pluralsight course Preparing Docker Apps for Production and my first Udemy course Docker for .NET Apps. It’s been busy…

What do you anticipate will be Docker’s biggest announcement this year?

I’d love to see the Docker Compose spec expanding to cover bits of the application which aren’t necessarily going to run in containers. It would be great to have a modelling language where I can express the architectural intent without going into the details of the technology. So my spec says I need a MySQL database, and when I run it on a local machine I get a MySQL container with a default password. But then deploy the exact same spec to the cloud and I’d get a managed MySQL service with a password generated and securely stored in a secret service. 

What do you think is going to be Docker’s biggest challenge in 2021?

Maybe it will be working out what new features and products are really the must-haves for customers. The product and engineering teams at Docker are first-rate, but it’s hard to pick out the next desirable feature when the product is ubiquitous amongst a very disparate IT industry. If you watch that DockerCon demo from 2019 I showed a bunch of features we were working on – Docker Assemble, Docker Pipeline, Docker Application Convertor – I don’t think any of those exist now. They addressed real problems in CI/CD and app migration, but they weren’t a big enough deal for enough customers for Docker to continue investing in them.

What are some personal goals for the next year with respect to the Docker community?

A lot of my focus is on helping people to skill up and learn how containers are used in the real world – but I want to keep the entry barrier low. When my Docker book came out in 2020 I did a YouTube series where I walked through a chapter in each episode. That helped people see how to use Docker in action, to ask questions and to learn without having to buy the book. I’ll be doing the same in 2021 when my Kubernetes book launches.

I’m also aware that learning materials can be pretty expensive for people, so one of my goals is to put out more Udemy courses where the content is great but the course is affordable. My plan is to get courses out to cover all the major areas – Docker and Kubernetes, observability, continuous delivery, security and service mesh architectures. Anytime I publish something I’ll promote it on Twitter, so be sure to follow @EltonStoneman to be the first to know.

And I’m always happy to speak at meetups, especially now that we’ll be virtual for a good while longer. If you need a speaker at an event, just ask.

What talk would you most love to see at DockerCon 2021?

I’ve presented at every DockerCon since 2017 so obviously I’d love to be there again in 2021. But if I can’t choose myself, it’d be one of my fellow Docker Captains talking about a project they’ve helped on. The real-world stuff is always super interesting for me.

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I really like how application modelling is starting to become abstracted from the technology that actually runs the app. The Docker Compose specification is really promising here: you can define your app in a fairly abstract way and deploy it to a single Docker machine, or to a Docker Swarm cluster, or to a managed container service like Azure Container Instances, or to a Kubernetes cluster running in the cloud or the datacenter.

There’s a balance between keeping the application model abstract and being able to make use of all the features your target platform provides. I think enough people are interested in that problem that we could see some nice advances there. Removing the operational load of creating and managing clusters will make containers even more attractive.

Rapid fire questions…

What new skill have you mastered during the pandemic?

Touch typing.

Salty, sour or sweet?

Mixed. But – is this a popcorn question? I tried cheddar cheese popcorn in the Docker office in San Francisco one time and it was revolting.

Dogs, cats, neither, both?

Cats, but my family are exerting a lot of dog pressure.

Beach or mountains?

Mountains – preferably running through them.

Your most often used emoji?

The smiley, smiley face 🙂

]]>