<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hardening on krash.dev</title><link>https://krash.dev/tags/hardening/</link><description>Recent content in Hardening on krash.dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 14 Aug 2026 08:29:09 +0530</lastBuildDate><atom:link href="https://krash.dev/tags/hardening/rss.xml" rel="self" type="application/rss+xml"/><item><title>Docker Security</title><link>https://krash.dev/posts/docker-security/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://krash.dev/posts/docker-security/</guid><description>&lt;p&gt;&lt;em&gt;Last Updated on &lt;strong&gt;2nd Feb 2023&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;h1 id="containers"&gt;Containers?&lt;a class="heading-anchor" href="#containers" aria-label="Link to this section"&gt;#&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Why do we need containers over VMs -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Efficient Resource Consumption between containers&lt;/li&gt;
&lt;li&gt;Once License for services/OS&lt;/li&gt;
&lt;li&gt;Low Compute Overhead&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What does docker engine does?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Emulates Filesystem&lt;/li&gt;
&lt;li&gt;Gives each container unique process ID&lt;/li&gt;
&lt;li&gt;Isolation of container process&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Communication between the architecture components -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components
&lt;ul&gt;
&lt;li&gt;Docker client (The one user interacts with)&lt;/li&gt;
&lt;li&gt;Docker Host
&lt;ul&gt;
&lt;li&gt;Docker Daemon&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Containers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Registry&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Docker client using serveral API calls sends the commands to Docker Engine which is being forwarded to containerd.&lt;/li&gt;
&lt;li&gt;Commuication between docker daemon and containerd is facilated through &lt;a href="https://krash.dev/posts/grpc-concepts"&gt;gRPC&lt;/a&gt;
 calls.&lt;/li&gt;
&lt;li&gt;Docker Client communicates with the Docker Daemon through a domain socket (if local) and through a TCP Socket (if remote).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What does &lt;code&gt;runc&lt;/code&gt; do?&lt;/p&gt;</description></item></channel></rss>