<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ci_cd - Hamradio.my</title>
	<atom:link href="https://hamradio.my/tag/ci_cd/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Amateur Radio, Tech Insights and Product Reviews</description>
	<lastBuildDate>Wed, 21 May 2025 22:04:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://hamradio.my/wp-content/uploads/2026/02/cropped-cropped-image-removebg-preview-3-32x32.png</url>
	<title>ci_cd - Hamradio.my</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Docker: The Container Revolution That Changed Software Development Forever</title>
		<link>https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/</link>
					<comments>https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 22:02:07 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[free open source software]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[#CloudComputing]]></category>
		<category><![CDATA[#DevOps]]></category>
		<category><![CDATA[#Microservices]]></category>
		<category><![CDATA[#OpenSource]]></category>
		<category><![CDATA[#SoftwareDevelopment]]></category>
		<category><![CDATA[ci_cd]]></category>
		<category><![CDATA[containerdeployment]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[containersecurity]]></category>
		<category><![CDATA[continuousintegration]]></category>
		<category><![CDATA[developertools]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercompose]]></category>
		<category><![CDATA[dockerhub]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[linuxcontainers]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[techinnovation]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7473</guid>

					<description><![CDATA[<p>In the landscape of modern software development and IT operations, Docker has emerged as a game-changer. Whether you’re a developer, system administrator, or a DevOps engineer, Docker empowers you to build, ship, and run applications seamlessly — across your laptop, on-premise servers, or the cloud. This blog post will dive deep into Docker’s origin, its [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/">Docker: The Container Revolution That Changed Software Development Forever</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">In the landscape of modern software development and IT operations, <strong>Docker</strong> has emerged as a game-changer. Whether you’re a developer, system administrator, or a DevOps engineer, Docker empowers you to build, ship, and run applications seamlessly — across your laptop, on-premise servers, or the cloud. This blog post will dive deep into Docker’s origin, its practical uses, key commands you need to know, advantages, and provide a hands-on example to get you started.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-the-origin-and-history-of-docker">The Origin and History of Docker</h2>



<p class="wp-block-paragraph">Docker’s roots trace back to 2010 when a company named dotCloud, a platform-as-a-service (PaaS) provider, started experimenting with Linux container technology to better isolate and manage applications.</p>



<ul class="wp-block-list">
<li><strong>March 2013</strong>: Docker was launched as an open-source project by Solomon Hykes, the CTO of dotCloud.</li>



<li><strong>Why it stood out</strong>: Docker made Linux containers accessible to developers through simple commands, standard image formats, and tooling that abstracted away complex underlying tech like LXC, cgroups, and namespaces.</li>



<li><strong>Growth</strong>: Docker quickly captured the attention of the tech community and companies worldwide. It transformed from an internal tool to the foundation of a whole ecosystem involving container registries (Docker Hub), orchestration tools (Docker Swarm, Kubernetes), and developer workflows.</li>
</ul>



<p class="wp-block-paragraph">Today, Docker Inc. continues to innovate with products designed for enterprise container management, security, and cloud-native development.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-what-is-docker-and-why-should-you-care">What Is Docker and Why Should You Care?</h2>



<p class="wp-block-paragraph">At its core, Docker is a <strong>containerization platform</strong> that packages your application and all its dependencies — libraries, system tools, and settings — into a single container. This container can run consistently across any environment that supports Docker, eliminating the infamous “it works on my machine” problem.</p>



<h3 class="wp-block-heading" id="h-why-containers">Why containers?</h3>



<p class="wp-block-paragraph">Before containers, virtualization was the go-to method to isolate applications — think Virtual Machines (VMs). But VMs require a full guest OS, which consumes more disk space, memory, and CPU.</p>



<p class="wp-block-paragraph">Containers are lightweight:</p>



<ul class="wp-block-list">
<li>Share the host OS kernel.</li>



<li>Start almost instantly.</li>



<li>Require less storage.</li>
</ul>



<h3 class="wp-block-heading" id="h-use-cases-for-docker-include">Use cases for Docker include:</h3>



<ul class="wp-block-list">
<li><strong>Development environment standardization:</strong> Developers can replicate production environments on local machines.</li>



<li><strong>Microservices deployment:</strong> Each service runs in its own container, independently scalable and maintainable.</li>



<li><strong>CI/CD pipelines:</strong> Automate builds and tests in isolated containers.</li>



<li><strong>Legacy app modernization:</strong> Containerize old apps to run on modern infrastructure.</li>



<li><strong>Cloud migration:</strong> Easily move workloads across public clouds or hybrid setups.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-essential-docker-commands-you-must-know">Essential Docker Commands You Must Know</h2>



<p class="wp-block-paragraph">Here’s a handy list of Docker commands that cover basic to intermediate tasks:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td><code>docker version</code></td><td>Show Docker client and server version</td></tr><tr><td><code>docker info</code></td><td>Display system-wide info about Docker</td></tr><tr><td><code>docker pull &lt;image&gt;</code></td><td>Download an image from Docker Hub or registry</td></tr><tr><td><code>docker images</code></td><td>List downloaded Docker images</td></tr><tr><td><code>docker run &lt;image&gt;</code></td><td>Run a container from an image</td></tr><tr><td><code>docker ps</code></td><td>List currently running containers</td></tr><tr><td><code>docker ps -a</code></td><td>List all containers, including stopped ones</td></tr><tr><td><code>docker stop &lt;container_id&gt;</code></td><td>Stop a running container</td></tr><tr><td><code>docker start &lt;container_id&gt;</code></td><td>Start a stopped container</td></tr><tr><td><code>docker rm &lt;container_id&gt;</code></td><td>Remove a container</td></tr><tr><td><code>docker rmi &lt;image&gt;</code></td><td>Remove a Docker image</td></tr><tr><td><code>docker logs &lt;container_id&gt;</code></td><td>View logs from a container</td></tr><tr><td><code>docker exec -it &lt;container_id&gt; /bin/bash</code></td><td>Access the shell inside a running container</td></tr><tr><td><code>docker build -t &lt;tag&gt; .</code></td><td>Build an image from a Dockerfile</td></tr><tr><td><code>docker-compose up</code></td><td>Start multi-container apps defined in a docker-compose.yml</td></tr><tr><td><code>docker-compose down</code></td><td>Stop and remove containers defined by docker-compose</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-advantages-of-using-docker">Advantages of Using Docker</h2>



<h3 class="wp-block-heading" id="h-1-portability-and-consistency">1. <strong>Portability and Consistency</strong></h3>



<p class="wp-block-paragraph">Docker containers encapsulate everything needed to run your app, ensuring consistent behavior across development, staging, and production — regardless of where the container runs.</p>



<h3 class="wp-block-heading" id="h-2-lightweight">2. <strong>Lightweight</strong></h3>



<p class="wp-block-paragraph">Containers share the OS kernel and don’t require running a full guest OS, saving CPU, memory, and storage compared to VMs.</p>



<h3 class="wp-block-heading" id="h-3-faster-deployment">3. <strong>Faster Deployment</strong></h3>



<p class="wp-block-paragraph">Containers start almost instantly (in seconds), accelerating development cycles and scaling capabilities.</p>



<h3 class="wp-block-heading" id="h-4-isolation-and-security">4. <strong>Isolation and Security</strong></h3>



<p class="wp-block-paragraph">Containers provide process-level isolation, which helps prevent conflicts between apps running on the same host.</p>



<h3 class="wp-block-heading" id="h-5-simplified-dependency-management">5. <strong>Simplified Dependency Management</strong></h3>



<p class="wp-block-paragraph">No need to install or configure software dependencies on your host; they’re baked into the container image.</p>



<h3 class="wp-block-heading" id="h-6-vibrant-ecosystem">6. <strong>Vibrant Ecosystem</strong></h3>



<p class="wp-block-paragraph">With Docker Hub, users have access to thousands of ready-to-use container images. The active community continually develops tools and resources.</p>



<h3 class="wp-block-heading" id="h-7-improved-resource-utilization">7. <strong>Improved Resource Utilization</strong></h3>



<p class="wp-block-paragraph">Multiple containers can run efficiently on a single host, making better use of hardware resources.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-a-simple-docker-example-running-a-hello-world-web-server">A Simple Docker Example: Running a Hello World Web Server</h2>



<p class="wp-block-paragraph">Let’s walk through a practical example so you can experience Docker firsthand.</p>



<h3 class="wp-block-heading" id="h-step-1-install-docker">Step 1: Install Docker</h3>



<p class="wp-block-paragraph">Make sure Docker is installed on your system. You can find official installation guides on <a href="https://docs.docker.com/get-docker/">docker.com</a>.</p>



<h3 class="wp-block-heading" id="h-step-2-run-a-prebuilt-web-server-container">Step 2: Run a prebuilt web server container</h3>



<p class="wp-block-paragraph">Open your terminal and run:</p>



<pre class="wp-block-code"><code>docker run -d -p 8080:80 --name hello-web nginx
</code></pre>



<p class="wp-block-paragraph">What this does:</p>



<ul class="wp-block-list">
<li><code>docker run</code> — Run a container.</li>



<li><code>-d</code> — Detached mode (runs container in the background).</li>



<li><code>-p 8080:80</code> — Map port 8080 on your host to port 80 in the container.</li>



<li><code>--name hello-web</code> — Assign a name to the container.</li>



<li><code>nginx</code> — Use the official nginx web server image from Docker Hub.</li>
</ul>



<h3 class="wp-block-heading" id="h-step-3-access-your-web-server">Step 3: Access your web server</h3>



<p class="wp-block-paragraph">Open your browser and navigate to <code>http://localhost:8080</code>. You should see the default <strong>Nginx</strong> welcome page, meaning your container is up and running.</p>



<h3 class="wp-block-heading" id="h-step-4-inspect-the-container">Step 4: Inspect the container</h3>



<p class="wp-block-paragraph">Check running containers:</p>



<pre class="wp-block-code"><code>docker ps
</code></pre>



<p class="wp-block-paragraph">View container logs:</p>



<pre class="wp-block-code"><code>docker logs hello-web
</code></pre>



<p class="wp-block-paragraph">Access the container shell:</p>



<pre class="wp-block-code"><code>docker exec -it hello-web /bin/bash
</code></pre>



<p class="wp-block-paragraph">Inside, you can browse files, for example:</p>



<pre class="wp-block-code"><code>cat /usr/share/nginx/html/index.html
</code></pre>



<h3 class="wp-block-heading" id="h-step-5-stop-and-remove-the-container">Step 5: Stop and remove the container</h3>



<p class="wp-block-paragraph">To stop:</p>



<pre class="wp-block-code"><code>docker stop hello-web
</code></pre>



<p class="wp-block-paragraph">To remove:</p>



<pre class="wp-block-code"><code>docker rm hello-web
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p class="wp-block-paragraph">Docker has revolutionized software development and IT operations by making container technology accessible, portable, and scalable. It simplifies dependency management, accelerates deployment, and ensures your applications behave the same everywhere — a crucial advantage in today’s fast-moving development world.</p>



<p class="wp-block-paragraph">This example only scratches the surface of Docker’s power. From building your own container images to orchestrating complex multi-container applications with Docker Compose or Kubernetes, Docker opens up a world of possibilities.</p>



<p class="wp-block-paragraph">If you want to master modern software workflows, learning Docker is a must.</p>
<p>The post <a href="https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/">Docker: The Container Revolution That Changed Software Development Forever</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker vs Virtual Machines: What Every Ham Should Know</title>
		<link>https://hamradio.my/2025/05/docker-vs-virtual-machines-what-every-ham-should-know/</link>
					<comments>https://hamradio.my/2025/05/docker-vs-virtual-machines-what-every-ham-should-know/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Sat, 03 May 2025 03:16:36 +0000</pubDate>
				<category><![CDATA[amateur radio]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[ham radio]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[amateuradio]]></category>
		<category><![CDATA[APRS]]></category>
		<category><![CDATA[aprsbot]]></category>
		<category><![CDATA[aprsgateway]]></category>
		<category><![CDATA[ci_cd]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[DigitalModes]]></category>
		<category><![CDATA[Direwolf]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercompose]]></category>
		<category><![CDATA[fielddeployment]]></category>
		<category><![CDATA[hamradio]]></category>
		<category><![CDATA[HF]]></category>
		<category><![CDATA[homelab]]></category>
		<category><![CDATA[js8call]]></category>
		<category><![CDATA[lightweightcomputing]]></category>
		<category><![CDATA[openwebrx]]></category>
		<category><![CDATA[patwinlink]]></category>
		<category><![CDATA[radioautomation]]></category>
		<category><![CDATA[radioshack]]></category>
		<category><![CDATA[RaspberryPi]]></category>
		<category><![CDATA[Repeater]]></category>
		<category><![CDATA[rtl_433]]></category>
		<category><![CDATA[sdr]]></category>
		<category><![CDATA[SoftwareDefinedRadio]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[techforhams]]></category>
		<category><![CDATA[UHF]]></category>
		<category><![CDATA[VHF]]></category>
		<category><![CDATA[virtualmachine]]></category>
		<category><![CDATA[winlink]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7354</guid>

					<description><![CDATA[<p>Before container technologies like Docker came into play, applications were typically run directly on the host operating system—either on bare metal hardware or inside virtual machines (VMs). While this method works, it often leads to frustrating issues, especially when trying to reproduce setups across different environments. This becomes even more relevant in the amateur radio [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/05/docker-vs-virtual-machines-what-every-ham-should-know/">Docker vs Virtual Machines: What Every Ham Should Know</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading" id="h-"></h1>



<p class="wp-block-paragraph">Before container technologies like Docker came into play, applications were typically run directly on the host operating system—either on <strong>bare metal</strong> hardware or inside <strong>virtual machines (VMs)</strong>. While this method works, it often leads to frustrating issues, especially when trying to reproduce setups across different environments.</p>



<p class="wp-block-paragraph">This becomes even more relevant in the <strong>amateur radio world</strong>, where we often experiment with digital tools, servers, logging software, APRS gateways, SDR applications, and more. Having a consistent and lightweight deployment method is key when tinkering with limited hardware like Raspberry Pi, small form factor PCs, or cloud VPS systems.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-the-problem-with-traditional-software-deployment">The Problem with Traditional Software Deployment</h2>



<p class="wp-block-paragraph">Let’s say you’ve set up an <strong>APRS iGate</strong>, or maybe you’re experimenting with <strong>WSJT-X for FT8</strong>, and everything runs flawlessly on your laptop. But the moment you try deploying the same setup on a Raspberry Pi or a remote server—suddenly things break.</p>



<p class="wp-block-paragraph">Why?</p>



<p class="wp-block-paragraph">Common culprits include:</p>



<ul class="wp-block-list">
<li>Different versions of the operating system</li>



<li>Mismatched library versions</li>



<li>Varying configurations</li>



<li>Conflicting dependencies</li>
</ul>



<p class="wp-block-paragraph">These issues can be particularly painful in amateur radio projects, where specific software dependencies are critical, and stability matters for long-term operation.</p>



<p class="wp-block-paragraph">You could solve this by running each setup inside a virtual machine, but VMs are often overkill—especially for ham radio gear with <strong>limited resources</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-enter-docker-the-ham-s-best-friend-for-lightweight-deployment">Enter Docker: The Ham&#8217;s Best Friend for Lightweight Deployment</h2>



<p class="wp-block-paragraph"><strong>Docker</strong> is an open-source platform that allows you to package applications along with everything they need—libraries, configurations, runtimes—into one neat, portable unit called a <strong>container</strong>.</p>



<p class="wp-block-paragraph">Think of it like packaging up your entire ham radio setup (SDR software, packet tools, logging apps, etc.) into a container, then being able to deploy that same exact setup on:</p>



<ul class="wp-block-list">
<li>A Raspberry Pi</li>



<li>A cloud server</li>



<li>A homelab NUC</li>



<li>Another ham’s machine</li>
</ul>



<h3 class="wp-block-heading" id="h-why-it-s-great-for-hams">Why It’s Great for Hams:</h3>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9ca.png" alt="🧊" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Lightweight</strong> – great for Raspberry Pi or low-power servers</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Fast startup</strong> – ideal for services that need to restart quickly</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f501.png" alt="🔁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Reproducible environments</strong> – makes sharing setups with fellow hams easier</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Isolation</strong> – keeps different radio tools from interfering with each other</li>
</ul>



<p class="wp-block-paragraph">Many amateur radio tools like <strong>Direwolf</strong>, <strong>Xastir</strong>, <strong>Pat (Winlink)</strong>, and even <strong>JS8Call</strong> can be containerized, making experimentation safer and more efficient.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-virtual-machines-still-relevant-in-the-shack">Virtual Machines: Still Relevant in the Shack</h2>



<p class="wp-block-paragraph">Virtual Machines (VMs) have been around much longer and still play a crucial role. Each VM acts like a complete computer, with its own OS and kernel, running on a <strong>hypervisor</strong> like:</p>



<ul class="wp-block-list">
<li>VirtualBox</li>



<li>VMware</li>



<li>KVM</li>



<li>Hyper-V</li>
</ul>



<p class="wp-block-paragraph">With VMs, you can spin up an entire Windows or Linux machine, perfect for:</p>



<ul class="wp-block-list">
<li>Running legacy ham radio software (e.g., old Windows-only apps)</li>



<li>Simulating different operating systems for testing</li>



<li>Isolating potentially unstable setups from your main system</li>
</ul>



<p class="wp-block-paragraph">However, VMs require more horsepower. They&#8217;re heavy, boot slowly, and take up more disk space—often not ideal for small ham radio PCs or low-powered nodes deployed in the field.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-quick-comparison-docker-vs-virtual-machines-for-hams">Quick Comparison: Docker vs Virtual Machines for Hams</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>Docker</th><th>Virtual Machine</th></tr></thead><tbody><tr><td>OS</td><td>Shares host kernel</td><td>Full OS per VM</td></tr><tr><td>Boot Time</td><td>Seconds</td><td>Minutes</td></tr><tr><td>Resource Use</td><td>Low</td><td>High</td></tr><tr><td>Size</td><td>Lightweight</td><td>Heavy (GBs)</td></tr><tr><td>Ideal For</td><td>Modern ham tools, APRS bots, SDR apps</td><td>Legacy systems, OS testing</td></tr><tr><td>Portability</td><td>High</td><td>Moderate</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-ham-radio-use-cases-for-docker">Ham Radio Use Cases for Docker</h2>



<p class="wp-block-paragraph">Here’s how Docker fits into amateur radio workflows:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Run an APRS iGate</strong> with <strong>Direwolf</strong> and <strong>YAAC</strong> in isolated containers.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e1.png" alt="📡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Deploy SDR receivers</strong> like <strong>rtl_433</strong>, <strong>OpenWebRX</strong>, or <strong>CubicSDR</strong> as containerized services.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e8.png" alt="📨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Set up a Winlink gateway</strong> using <strong>Pat</strong> + <strong>ax25</strong> tools, all in one container.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f504.png" alt="🔄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Automate and scale your <strong>APRS bot</strong>, or <strong>APRS gateway</strong> using Docker + cron + scripts.</li>
</ul>



<p class="wp-block-paragraph">Docker makes it easier to test and share these setups with other hams—just export your Docker Compose file or image.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-when-to-use-docker-when-to-use-a-vm">When to Use Docker, When to Use a VM</h2>



<h3 class="wp-block-heading" id="h-use-docker-if">Use <strong>Docker</strong> if:</h3>



<ul class="wp-block-list">
<li>You’re building or experimenting with <strong>modern ham radio apps</strong></li>



<li>You want to <strong>deploy quickly</strong> and <strong>repeatably</strong></li>



<li>You’re using <strong>Raspberry Pi</strong>, <strong>VPS</strong>, or <strong>low-power hardware</strong></li>



<li>You’re setting up <strong>CI/CD pipelines</strong> for your scripts or bots</li>
</ul>



<h3 class="wp-block-heading" id="h-use-vms-if">Use <strong>VMs</strong> if:</h3>



<ul class="wp-block-list">
<li>You need to run <strong>legacy apps</strong> (e.g., old Windows logging software)</li>



<li>You want to simulate full system environments</li>



<li>You’re working on something that could crash your main system</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-final-thoughts">Final Thoughts</h2>



<p class="wp-block-paragraph">Both Docker and VMs are powerful tools that have a place in the modern <strong>ham shack</strong>. Docker offers speed, portability, and resource-efficiency—making it ideal for deploying SDR setups, APRS bots, or automation scripts. VMs, on the other hand, still shine when you need full system emulation or deeper isolation.</p>



<p class="wp-block-paragraph">At the end of the day, being a ham means being an experimenter. And tools like Docker just give us more ways to explore, automate, and share our radio projects with the world.</p>
<p>The post <a href="https://hamradio.my/2025/05/docker-vs-virtual-machines-what-every-ham-should-know/">Docker vs Virtual Machines: What Every Ham Should Know</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/05/docker-vs-virtual-machines-what-every-ham-should-know/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
