Stop Using Docker. Use Open Source Instead

## Metadata
- Author: [[DevOps Toolbox]]
- Full Title: Stop Using Docker. Use Open Source Instead
- Category: #articles
- Document Note: ---
tags: [#Docker, #Podman, #OpenSource]
- #Docker
- #Podman
- #OpenSource
Author: Merlin AI
Source: [Merlin AI Transcript on YouTube](https://www.youtube.com/watch?v=Z5uBcczJxUY)
Reference: [Transcript for "Stop Using Docker. Use Open Source Instead"](https://www.youtube.com/watch?v=Z5uBcczJxUY)
date created: {{date:2025-03-02}} {{time:15:00}}
---
# Title: Stop Using Docker. Use Open Source Instead
## Table of Contents:
- [📝 Summary](#-summary)
- [📖 Main Content](#-main-content)
- [🗒️ Notes](#-notes)
- [📖 References](#-references)
- [🗣️ Paraphrase](#-paraphrase)
- [📰 Newsletter](#-newsletter)
- [✅ Action Items](#-action-items)
- [🧪 Hypotheses](#-hypotheses)
- [📊 Methodology](#-methodology)
- [❓ Questions](#-questions)
- [🔮 Future Research](#-future-research)
- [💡 Implications](#-implications)
- [🧠 Learning Styles Assessment](#-learning-styles-assessment)
- [📊 Accessibility Assessment](#-accessibility-assessment)
- [🌍 DEIB Assessment](#-deib-assessment)
- [✅ Logical Validity](#-logical-validity)
- [🔍 DARVO Analysis](#-darvo-analysis)
- [🔍 SEO Evaluation](#-seo-evaluation)
- [🎯 Conclusion](#-conclusion)
### References:
- Merlin AI Transcript on YouTube: [Stop Using Docker. Use Open Source Instead](https://www.youtube.com/watch?v=Z5uBcczJxUY)
## 📝 Summary:
This transcript details why Docker’s commercialization and rate-limiting on its CLI have spurred a shift towards open-source container tools, notably Podman. The speaker outlines Podman’s benefits—including rootless operation, daemonless design, and seamless Kubernetes integration—while providing a comprehensive walkthrough with timestamped demonstrations to highlight its ease of use and security advantages over Docker.
## 📖 Main Content:
The transcript critically examines the evolving container ecosystem, emphasizing the limitations imposed by Docker’s monetization strategies. It explains how Podman emerges as a superior alternative by aligning with open container standards (OCI), offering a similar command-line experience without vendor lock-in, and integrating directly with Kubernetes for streamlined deployment processes. Detailed timestamped segments illustrate practical demonstrations, from basic container commands to advanced pod management and Kubernetes YAML generation.
Key Insights for [Stop Using Docker. Use Open Source Instead](https://www.youtube.com/watch?v=Z5uBcczJxUY) by [Merlin AI](https://merlin.foyer.work/)
**Docker Alternatives and Open Source Movement**
- The video discusses the limitations of Docker, particularly its rate limits on Docker Hub and the commercialization of its CLI usage, prompting the search for alternatives.
- Open-source container runtimes like Podman are highlighted as viable options that comply with the Open Container Initiative (OCI) standards, allowing for flexibility and avoidance of vendor lock-in.
- Companies are encouraged to consider Podman, which functions as a drop-in replacement for Docker, offering a free solution for both commercial and personal use.
**Podman Features and Benefits**
- Podman operates without a daemon and can run containers rootlessly, enhancing security and simplifying usage compared to Docker, which relies on a root-dependent daemon.
- It allows users to create and manage pods, facilitating the orchestration of multiple containers under a single management structure, which is particularly beneficial for Kubernetes users.
- The tool supports a familiar CLI experience, enabling users to easily transition from Docker commands to Podman commands without significant changes in workflow.
**Kubernetes Integration and Workflow Enhancements**
- Podman simplifies the generation of Kubernetes manifests, allowing users to create YAML configurations for deployment directly from their container setups.
- Users can deploy their applications locally with Podman and then transfer the configurations to a Kubernetes cluster, streamlining development and deployment processes.
- The inclusion of Podman Desktop provides a user-friendly interface to manage containers and pods, offering features like monitoring, debugging, and Kubernetes integration, which enhances usability for developers.
**Conclusion on Open Source Viability**
- The discussion emphasizes the importance of exploring open-source alternatives to proprietary solutions like Docker, particularly in a rapidly evolving tech landscape.
- Podman's comprehensive feature set and alignment with Kubernetes make it a compelling choice for developers looking to maintain flexibility and control over their containerized applications.
- By adopting open-source tools, organizations can mitigate costs and foster a more collaborative development environment.
### 🗒️ Notes:
- **Introduction & Context**
- [00:00](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=0): Introduction of Docker as a household term analogous to “Google it” or “Zoom.”
- [00:04](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=4): Mention of Docker’s pervasive usage contrasted with evolving alternatives.
- **Monetization & Limitations of Docker**
- [00:46](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=46): Docker’s decision to monetize CLI usage, causing rate limits and potential legal issues on commercial systems.
- [01:02](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=62): Companies face halted workflows due to Docker Hub’s rate limits.
- **Introduction to Podman**
- [01:41](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=101): Podman is introduced as a free, open-source alternative that serves as a drop-in replacement for Docker.
- [02:05](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=125): Explanation of Podman’s compatibility across platforms and its rootless, daemonless architecture.
- **Podman Features & Command Equivalence**
- [02:29](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=149): Demonstration of creating a Podman machine for non-Linux systems.
- [03:02](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=182): Comparison of Podman search commands with Docker’s, including filtering for official images.
- **Security and Kubernetes Integration**
- [04:52](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=292): Sponsor segment introducing Twing Gate, underscoring secure remote access and integration with Kubernetes.
- [06:32](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=392): Highlighting how Podman supports pods to run multiple containers together and simplify orchestration.
- **Advanced Use Cases**
- [08:04](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=484): Creating and verifying container interactions within pods, including Redis key operations.
- [09:45](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=585): Generating Kubernetes YAML from Podman configurations and deploying locally.
- [11:16](https://www.youtube.com/watch?v=Z5uBcczJxUY&t=676): Overview of Podman Desktop, its UI features, and direct terminal access for debugging.
## 📖 References:
- Merlin AI Transcript on YouTube: [Stop Using Docker. Use Open Source Instead](https://www.youtube.com/watch?v=Z5uBcczJxUY)
- Open Container Initiative (OCI) documentation and related open-source resources.
## 🗣️ Paraphrase:
- **Paragraph 1:**
- *Original:* "Docker’s CLI usage is now monetized, meaning that for commercial operations, users must pay to avoid hitting rate limits. This has forced many companies to seek alternative solutions."
- *Paraphrase:* Docker now charges for its CLI functions, which leads to operational disruptions for commercial users who face strict rate limits. This situation is pushing many organizations to explore other options.
- **Paragraph 2:**
- *Original:* "Podman offers a drop-in replacement for Docker, featuring a simpler CLI and rootless, daemonless operation that enhances both security and ease of use, making it ideal for modern container workflows."
- *Paraphrase:* Podman serves as a seamless substitute for Docker, boasting an intuitive command-line interface and a secure, daemonless design. These features make it highly suitable for today’s containerized environments.
## 📰 Newsletter:
Hello WordPress enthusiasts! In this month’s issue, we dive into the e
- Document Tags: [[containerization]] [[docker]] [[open source]]
- Summary: Supercharge your security with Twingate:
https://www.twingate.com/pricing?utm_source=youtube&utm_medium=referral&utm_campaign=devopstoolbox_q1_2025
✅ Build a Second Brain With Neovim in Under 90 Minutes: https://learn.omerxx.com/courses/second-brain-neovim
✅ Zero To KNOWING Kubernetes in Under 90 Minutes:
https://learn.omerxx.com/courses/k8s-from-scratch
Podman is the open source alternative to Docker, but it's more than just OSS, rootless containers, no hypervisor, running local pods and generating kubernetes resources is only part of what this toolkit can do!
- https://podman.io
- https://github.com/omerxx/dotfiles
⌨️ Tech I use: https://kit.co/omerxx/my-battle-station
- URL: https://www.youtube.com/watch?v=Z5uBcczJxUY&ab_channel=DevOpsToolbox
you know how people say Google it to describe
any online search where I'm from we use Jeep to describe any 4x4 vehicle the same goes for
Zoom when describing video conferencing this is exactly what happens with Docker think about it
you use Docker Bill Docker tag Docker cre Docker run I've been doing the same for over 10 years now
as a devops engineer and then as a cloud architect but it's 2024 and there are different container
run times now look at the most popular kubernetes services for example they're not actually running
Docker the back and runtime is something else like
container D these Alternatives follow the oci
which is the open container initiative which was created to standardized container specifications
so you're not locked into one solution but why am I even telling you this well Docker the
company wasn't making enough money about 2 years ago they decided to monetize their CLI
usage for instance when you use Docker push or Docker pull without specifying a registry
the docker CLI automatically uses dockerhub their manage registry but dockerhub is in the
only option suddenly companies using dockerhub
for pushing and pulling images throughout the day
started hitting rate limits their work ground to a halt unless they pay Docker for a token sure you
can solve this by switching Registries use awcr Google GCR GitHub Quay and a bunch of others but
here's the real issue just like dockerhub you now have to pay to use Docker on your own machine if
you're on a Mac running Docker desktop for example and you're running Docker build or Docker run
Docker push etc for commercial purposes you might
be breaking the law and if you don't want to end
up floating in the middle of the ocean locked in a shipping container because that's what they do
with container criminals right you might want to reconsider your next move if your company isn't
paying for Docker licenses consider podman it's open source it does everything Docker does so
basically a drop-in replacement with a simpler CLI that's free for both commercial and personal
use it's faster it's safer it's demm and less and we'll get to all of that and here's how it works
podman as the landing page suggests is the best
free and open source container tool system and it
is downloadable for any major platform to make my life easier I just went with Brew but any method
works with podman ready to go we can start using its Man pages for all options and necessary
explanations which are also available in its brief version through the help flag okay let's get
cracking the first thing you want to do if you're not right running on Linux is creating a podman
machine containers run natively on Linux platforms
and in my case Mac OS requires an intermediary
when it's initiated you can start it and there we are podman machine LS will provide the list
of running machines and as a nual hipster I have to show off and detect columns to have a pretty
table machine data that I can select the name from specifically more unnal and how it improved
my workflow in the video above I've mentioned that podman is first and foremost a drop in replacement
for Docker and it is we can search for images with
podman search here's a list of available red
images which again I'll pretty print with my shell to make them more readable podman comes with
a very useful filter flag allowing us to grab only official images which is what you're looking
for nine out of 10 times unless you're a fan of running Rogue applications built in the Wild by
strangers let's run a container much like Docker we provide a port mapping an image and all other
flags that translate directly you can basically alas Docker to podman and for the most part
you're not going to see the difference so
engine X is running let's grab a browser and prove
that there's no black magic here and there we are welcome to engine X like Docker PS pman PS shows
running containers like Docker podman uses minus D to run detached containers in the background
here's engine X again and here's the container listed by podman with all the usuals as Docker
outputs in ID image command status ports and those r names which if you ever wondering how they make
out these great names it's not AI it's just a long
long dictionary of names combined together into
hilarious results before we dive in let me tell you about today's sponsor twing gate the smart
way to secure your remote access you know how traditional vpns are like having a single Fortress
gate once someone's in they can wander anywhere well twin gate flips this model on its head with
zero trust security think of it as a modern city where every District requires its own access path
much safer right but here's what's really cool
especially For You developers out there twing
a now seamlessly integrates with kubernetes so instead of bouncing between engineering and it
teams you can configure secure access right in your yaml files it's all part of the regular
engineering flow no contact switching needed setup takes minutes not days and works across
all of your devices plus you get Enterprise grade security without the Enterprise grade headaches
whether you're managing a remote team or running complex kubernetes deployments twing gate handles
the security heavy lifting and you can focus on
what really matters building great software ready
to level up your remote access security head over to tate.com for a free trial and see why thousands
of teams trust twing gate with their secure access needs so our stoic Woo is ready to be killed we
can use the name or ID let's go with the ID and it's gone now here's a trick for you container
users both Docker and podman support PS minus Q resulting in a quiet list of IDs so you can do it
with any number of containers but especially when
you have one of them you can run podman kill and
then wrapped in a subshell command grab the ID of the container you have using podman PS minus Q
if there's more than one you can pick the last one using minus minus last one moving on like
Docker pman has the top subcommand with running processes which if we tidy up a little shows the
current container it's running processes and how much they're consuming now here's an important
differentiator of podman while Docker needs its
Docker socket to run which is also running as root
podman is demon lless and rootless if you grab processes mentioning podman there are none but
Docker needs a bunch of them let's grab the user off of the ls output for Docker socket to prove
the point so these are critical but rather basic differences you're not going to mine daily what
is actually the best selling point for podman is actually in its name pods if you're thinking about
kubernetes you're not alone podman unlike Docker
lets you gather multiple containers in pods and
have them run together to access them through the CLI podman comes with podman pod which we can then
run PS on to grab a list of running pods let's create one and name it web app sorry for the lack
of creativity here now you may be surprised this seats already running even before we even told it
to run anything every pods runs an internal infra container an infra container is a lightweight
container used to coordinate the shed kernel
namespace of a pod which is just fancy words
saying it's an admin layer to help making sure everything is in order let's pour some stuff into
the new P we can run minus D for detached point the command to so name the container red and run
well redish we've got too much information here to view the running containers so let's grab the
not so beautifully parsed number under the column named hash showing us two of them we can also run
pod inspect to see the same Json including both
hash and state okay let's test it the nice thing
about containers in a pod is that they don't have to have anything special to communicate with
each other and can basically ping each other using Local Host let's run a third container in
the Pod using minus minus RM we'll make sure it's deleted as soon as it's exited and use reddis CLI
with Local Host as the target host to send a redis command and let's write the key named my key which
will hold hello from reddis we've got good result from the server which is nice so let's run another
verification to read the key same idea just get my
key and there's our string hello from redes cool
so far nothing fancy but it works if you want to run a container and connect to it within the Pod
same as with Docker we can exit into it connecting to a shell since Alpine doesn't come with bash
we'll just use the oldest Sage install R quickly and send a ready sping to Local Host that comes
back with pong all working as expected by the way here's something cool by reddish if we try to crl
Local Host with reddish port and just to see what
happens in a split let's pop the red logs on
screen I get an empty reply from the server but the logs below actually showing redis has
detected my attempt as a security attack so it blocks non-standard radi communication altogether
I didn't know that is even possible before right so far so good but if you're using or planning to
use kubernetes the next feature is a real killer let's let's say that we want to create a separate
new application with engine X and postgress as an
example we'll run engine X and call it web and
then run postgress and call it DB check this out we can now run podman generate Cube web DB
and I'll send it to a yaml file so we can easily review the output now look at that a kubernetes
caml ready to go using my two containers in a pod with volumes mounts and everything you need to
throw it in a cluster but before we'll do that we have a yaml right what if we want to recreate
it check this podman play cube and a yaml lets
you run the kubernetes yaml files describing your
pods locally with our deployment running podman PS reveals engine X and postgress just started
and running podman pod PS shows it as a running pod are you thinking what I'm thinking there's
no way this actually runs in a cluster so let's do exactly that first off a small adjustment
our deployment holds volumes and I'd have to create them in kubernetes with this name so
let me elegantly shorten the name and send the volume Mount to basically nowhere using empty
deer if these kind of things interest you and you
want to dive deeper check this out if all that
kubernetes stock is actually getting you curious and you'd like to jump in I have a getting started
self-based digital Workshop just for you it'll get you from absolute novice to running your own
cluster with a running web application a database and everything you need to get yourself familiar
with the basics and create some working experience check the description for more with the yam ready
let's make sure mini cube is on mini cube is also
covered thoroughly in my workshop if that's of
Interest okay the cluster is empty let's apply the Pod and voila it's created now there's an
error due to postris naturally not being able to find the volume but nevertheless the code is
applied and accepted by the cluster that is a big win we can even query some logs with cctl to see
engine ex starting its workers in the background last but very much not least podman comes with
podman desktop a UI that does a lot when you first first launch it it offers onboarding with
some extremely useful extensions like being able
to use podman compose like Docker compose with
existing setups out of the box as well as cube CTL for other options from within the UI with that out
of the way here's the UI showing podman and Docker running will kill Docker for a minute to show the
indication turning off under the containers tab we get all of the containers in the system whether
active or exited choosing a running container will present some data live feed of logs we can inspect
the config from the UI and get a kubernetes
manifest ready for deployment but beyond all
that there's a terminal shell attached to the container which we can use directly to debug my
container immediately that's some good stuff right there here's our web up pod from earlier showing
multiple containers running under the same roof we can also see images downloaded volumes in the
system and get this a kubernetes dashboard what this is worth having even if you skip everything
I've said so far let's get Docker back on so we
can have our local Mini Cube back in operation
and with mini Cube on here's everything in a UI the mini Cube nodes Services yaml config Maps
even an option to configure port forwarding now while this is currently pointing at my local Mini
Cube I can change it to any other cluster I have configured and explore it remotely using podman
desktop so you've got yourself an open-source alternative to Docker and you're almost ready to
take on kubernetes but a container manager is just to start here's a video with extremely useful
tools I incorporated into my own workflow over
the past decade I'm sure you'll be surprised thank
you for watching and I'll see you on the next one, Stop Using Docker. Use Open Source Instead, DevOps Toolbox, 01jnbwwza5nn4fbftvd52gnvrd.