7 Docker uses for minimalists: GUIs, IDEs, and honeypots
Docker a Newer and more imaginative applications range from running desktop apps, managing workflows, running monitoring software, and much more.
With Docker getting more and more support from the Linux admin community and some prominent organizations, it has outgrown the origin and original intent of its authors. Newer and more imaginative applications range from running desktop apps, managing workflows, running monitoring software, and much more. From system-level monitoring to keeping a clean file system, let’s look at seven Docker uses that you probably haven’t heard of but will definitely boost your productivity, system cleanliness, and overall security.
1. A container to manage your containers
There are a bunch of projects, like Rancher and Portainer, to help you monitor and manage an entire fleet of containers using an easy to use web interface. Be it on your workstation, or as a cluster of VPSs running Kubernetes or Docker Swarm, this works wherever Docker works.
Here’s our guide on installing Portainer. Just make sure that you secure this container’s web interface with a secure password, and you will wield one container to rule them all.
2. Docker as a package manager
It has been famously said:
Docker will do to apt what apt did to tar
apt (or any other package manager) still uses
tar, the users are almost unaware of files being archived or retrieved from these tarballs. Similarly, with Docker, you can skip the entire rigmarole of installing multiple packages and their dependencies. For example, you can have a container for Python 2.7 if you need it for a particular application, instead of grudgingly installing an older version of the language on your workstation.
Windows users often desperately desire for a package manager. If you have Node.js version 8 installed on your PC, and version 10 comes along, you can’t run
apt update and
apt upgrade to get the newer version. You would have to install the newer version to get there. Alternatives like Chocolatey package managers aren’t that polished, either.
With Docker, you can all have the goodness of package managers without sacrificing your Steam Library, excellent driver support, or your Adobe Suite. Also, having statements like
FROM image:latest in your Dockerfile eliminates all the worry about installing newer versions of Python, Node, PHP, etc.
3. Docker as an SSH client and Bash interpreter
Another use for Windows users is Docker as an SSH client. You can mount a volume to a Docker container, use it for persistently storing your SSH keys, and use the interactive mode of Docker to SSH into your VPS.
You can avoid installing PuTTY, or any other (painful to use) SSH client, on Windows this way!
Similarly, Mac users who are tired of the age-old version of bash on their native OS can spin up a container of their favorite distro (in interactive mode) to use a more up-to-date version of bash or any other shell that they desire.
4. Docker to migrate your website
How often have you tried to migrate, say, a WordPress blog? Here’s an interesting bit of information they don’t tell you about: While WordPress allows you to export all the textual information like posts and metadata into an
.xml file, it leaves out all of the media, which includes images, audio, PDFs, videos, or any other information encoded not as plain text.
WordPress simply adds URLs to the exported XML pointing to these files hosted on the current website where they are hosted. If you want to use the same domain name on a different VPS or rebuild the same VPS, all the information will be gone.
With Docker, you can import these contents into a locally running WordPress instance on your workstation, push it to a registry like Docker Hub, and then pull it to your new VPS in a matter of minutes!
5. Running Linux GUI apps on Windows or Mac OS X
There aren’t too many Linux-only desktop applications that you might want to use on your Windows or OS X machine, but for something you use only on occasion, Docker can be a huge help. With Docker, you can install Linux desktop applications on these other operating systems in a way that’s easy to clean up when you’re done—great for the minimalists out there.
Here’s a screenshot of Docker running Firefox on my Windows 10 machine.
Linux containers will send the data to an X Server, which is responsible for all the GUI related stuff, like drawing windows. Fortunately, there are a few Windows clones called (Xming)[https://sourceforge.net/projects/xming/] and (VcXsrv)[https://sourceforge.net/projects/vcxsrv/reviews/]. Mac users can install
(Xquartz)[https://www.xquartz.org/] instead. These binaries are small and lean considering the benefits they reap in terms of a cleaner file system.
6. Docker to replace IDEs and other bloatware
Visual Studio, Anaconda, Eclipse, and all the other IDEs are cumbersome and bloated. They often include libraries you’ll never use, and aren’t shared with any other application. Avoid cluttering up your system by adding a Dockerfile to every project folder and containerizing your applications straightaway.
This is pretty close to the standard use of Docker by developers, but combine it with GUI support for Docker containers (see number item #5), and you can develop cool projects, and then run, test and debug them, all from inside of a container. Here’s a simple Matplotlib script running inside a Docker container.
You don’t limit yourself to running only cloud-related apps with Docker; you can use it for any application… well, nearly any. Sorry, kernel developers.
7. Docker to run honeypots
Welcome back to the world of servers! Sure, you can use Docker and your VPS to run software that you’d rather keep off your desktop, especially if you’re trying it out or are unsure how safe it might be, but you can also flip things around and intentionally set up traps to lure attackers.
Security researchers and organizations set up traps (a.k.a honeypots) to curate new malware samples instead of waiting for a security incident to happen. Docker is exceptionally well-suited for this kind of proactive defense. Ransomware won’t touch files that are outside the reach of your honeypot container, and cryptocurrency miners can’t exploit your CPU/GPU, because you are in complete control when it comes to setting execution cap for any container.
Using Docker-based honeypots would give you perfect transparency into seeing what processes a malicious payload spawns, what attack vector it uses, and what are its intents. It’s like looking through a one-way mirror. Excellent for the security-minded VPS users who want to protect themselves from just about everything.
Docker uses don’t end here!
I’ve mostly covered ways for minimalists to get the most out of Docker, but if you’re looking for nerdier things to do with Docker, visit this repo.
Let us know in the comments what unconventional ways you use Docker! Or, tell us if there are some other alternative uses for Docker you’d like to see us cover in the future.