4 Ways to Optimize Your Workflows with Docker Extensions
As a developer, you use a wide variety of tools to help you code, debug and deploy quicker — with more introduced every day. But when those tools are decentralized, it becomes complicated and time-consuming to install, manage and use them.
This year at its annual DockerCon conference, Docker introduced Docker Extensions to help developers optimize their workflows and simplify how they use their tools.
Docker Extensions let devs build new functionality into Docker Desktop, extend its existing capabilities, and discover and integrate additional tools. The extensions can be installed through the Extensions Marketplace in Docker Desktop, and developers can also use the Docker Extensions SDK to create their own extension that fits their custom workflow.
In the three months since the beta version of the feature was released, partners, Docker and developers in the community have found new ways to consolidate tools and create a smoother, more streamlined developer experience.
Let’s take a closer look at some of the most popular extensions installed by the community and how they can make your workflow more efficient.
Reclaim Space Used by Docker with Disk Usage
After using Docker Desktop for some time, you’ve probably built a few images, run some containers and created volumes to persist the data of your apps. Over time, all these resources created by Docker occupy disk space on your machine that could eventually cause your machine to run out.
In the past, Docker provided commands to help you inspect how much disk space those resources are using and delete them to reclaim that space.
Now, with the Disk Usage extension, you don’t need to run terminal commands anymore to do so.
From the latest version of Docker Desktop, you can go to the Extensions Marketplace and install the Disk Usage extension. You’ll immediately gain visibility into how much disk space Docker resources are using on your machine and reclaim space by deleting specific types of resources, such as stopped containers, dangling images and unused volumes. All right from Docker Desktop — no terminal needed!
Share Your Containers Securely with Tailscale
As developers building and containerizing apps, we find ourselves deploying our changes to a server via CI/CD every time we intend to share a new feature or bug fix with a teammate.
This inner-loop cycle (develop, test and deploy) takes time. Ideally, you’d like to get instant feedback from a teammate without having to go through this process. So how can your teammate quickly check the app that’s running as a container in your Docker Desktop? Or how could you test an API that’s running on your teammate’s Docker Desktop?
The Tailscale extension allows you to do exactly this from Docker Desktop. Tailscale privately and nearly instantly shares your containers without you having to do any networking setup. It detects all the containers that are exposing ports and makes them available to people inside your private Tailscale network. Anyone who belongs to your Tailscale network can see your containers.
This makes collaboration much easier and secure for things like sharing a staged copy of your work with a colleague as part of a code review, sharing in-progress feedback with teammates for a web application or having your teammates connect to microservices running on your local machine. Check out this blog to see how easy it is.
Browse and Filter Logs from Multiple Containers with Logs Explorer
When troubleshooting apps composed of multiple containers, you might find it difficult to keep track of all the logs every container outputs. For instance, if you spin up an ELK (ElasticSearch, Logstash, and Kibana) app with Docker Compose, how can you group those logs by container to view them in an organized manner?
The Logs Explorer extension gives you a place where you can browse logs from running and stopped containers at the same time, filter them by using regular expressions and have sticky search filters.
This centralized place to view your logs removes the need for clumsy text editors and streamlines the way you gather data.
See Inside Your Containers with Slim.Ai
When working with a new image to build your service, you may want to know things like what ports are exposed on the image, who the root user is or what files have special permissions. Or you may want to compare the details of two images to see which one better suits your needs. However, this data and the means to compare them aren’t always readily available.
That changes with the Slim.AI extension, which gives you the insight to peer into the composition of your local images for things like the file system, metadata, layer info and more. This helps you to identify utilities (curl, for example) in the container and to explore any text-based files (like configs, shell scripts, READMEs) it contains.
Slim.AI also provides analysis tools for image data, like optimization opportunities with counts of deleted and duplicate files and side-by-side comparison of any two local images and image tags.
This insight is often key to evaluating base images to build your services on, debugging containers locally when unexpected behavior occurs and minimizing your exposure to software supply chain attacks. Learn more about how it works in this blog.
Find More Extensions in Docker Desktop
This is just a tiny glimpse of everything Docker Extensions can do for you. Get a taste of what’s possible with this curated list of Docker Extensions or by checking out the Extensions Marketplace in Docker Desktop.