<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>shouldenough</title>
    <link>https://shouldenough.com</link>
    <description>One article per technology: the shortest correct path to being productive with it. Written against named versions and re-run when they move. Not tutorials, not courses.</description>
    <language>en</language>
    <atom:link href="https://shouldenough.com/rss.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Thu, 20 Aug 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Learn Docker by Dockerizing Your App: What Docker is, and why it exists</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/what-docker-is-and-why-it-exists</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/what-docker-is-and-why-it-exists</guid>
      <description>It runs fine on your computer but breaks on your colleague's. Why that happens, what it costs on the server, and what Docker changes about it.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Docker vs virtual machines</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/docker-vs-virtual-machines</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/docker-vs-virtual-machines</guid>
      <description>An operating system has two layers. Docker copies one of them and a virtual machine copies both, and every other difference follows from that.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Install Docker</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/install-docker</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/install-docker</guid>
      <description>Docker Engine on Fedora, Docker Desktop on Mac and Windows, and how to stop typing sudo before every command.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Images and containers</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/images-and-containers</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/images-and-containers</guid>
      <description>An image is the package and a container is that package running. The two words people mix up all the time, sorted out for good.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Public and private registries</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/registries</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/registries</guid>
      <description>Where images live, why Docker Hub is the default, what an official image means, and the difference between a registry and a repository.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Run containers</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/run-containers</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/run-containers</guid>
      <description>Detached mode, port binding, container names, and why docker run keeps leaving containers behind on your machine.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Build your own image</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/build-your-own-image</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/build-your-own-image</guid>
      <description>Seven lines of Dockerfile turn a Node app into an image, and three of those lines are the only ones that change for another language.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: The main Docker commands</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/main-docker-commands</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/main-docker-commands</guid>
      <description>The dozen commands worth knowing, the difference between run and start, and how to get a shell inside a running container.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: Image tags and versions</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/image-tags-and-versions</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/image-tags-and-versions</guid>
      <description>Why latest promises nothing, how to tag your own builds, and what docker tag does that docker build does not.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Learn Docker by Dockerizing Your App: The Docker workflow, end to end</title>
      <link>https://shouldenough.com/courses/dockerize-your-app/the-docker-workflow</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/dockerize-your-app/the-docker-workflow</guid>
      <description>Where Docker sits in a real team: local development, a CI build, a private registry, and a server that pulls the image and runs it.</description>
      <category>DevOps</category>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Docker for Developers: What a container actually is</title>
      <link>https://shouldenough.com/courses/docker-for-developers/what-a-container-actually-is</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/docker-for-developers/what-a-container-actually-is</guid>
      <description>Namespaces, cgroups, and the one sentence that makes the rest of the course make sense.</description>
      <category>DevOps</category>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Docker for Developers: Images, layers, and the cache</title>
      <link>https://shouldenough.com/courses/docker-for-developers/images-layers-and-the-cache</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/docker-for-developers/images-layers-and-the-cache</guid>
      <description>Why your rebuild takes four seconds or four minutes, and what decides which.</description>
      <category>DevOps</category>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Docker for Developers: Your first container</title>
      <link>https://shouldenough.com/courses/docker-for-developers/your-first-container</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/docker-for-developers/your-first-container</guid>
      <description>One command, then everything that command quietly did on your behalf.</description>
      <category>DevOps</category>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Docker for Developers: Ports and networking</title>
      <link>https://shouldenough.com/courses/docker-for-developers/ports-and-networking</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/docker-for-developers/ports-and-networking</guid>
      <description>Publishing, the difference between EXPOSE and -p, and why localhost lied to you.</description>
      <category>DevOps</category>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Docker for Developers: Volumes and persistence</title>
      <link>https://shouldenough.com/courses/docker-for-developers/volumes-and-persistence</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/docker-for-developers/volumes-and-persistence</guid>
      <description>Where your data goes when a container is removed, and how to keep it.</description>
      <category>DevOps</category>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Docker for Developers: Writing a Dockerfile that stays fast</title>
      <link>https://shouldenough.com/courses/docker-for-developers/writing-a-dockerfile</link>
      <guid isPermaLink="true">https://shouldenough.com/courses/docker-for-developers/writing-a-dockerfile</guid>
      <description>Instruction order, multi-stage builds, and the layer that invalidates everything.</description>
      <category>DevOps</category>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
