<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title>SysAdmin Journal · Containers</title>
        <link>https://sysadmin-journal.com/tag/containers</link>
        <description>Posts tagged with Containers</description>
        <language>en</language>
        <lastBuildDate>Sun, 10 Aug 2025 11:40:21 +0000</lastBuildDate>
        <atom:link href="https://sysadmin-journal.com/tag/containers/rss" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        <item>
            <title>Understanding Container Runtimes at the MSCC July Meetup</title>
            <link>https://sysadmin-journal.com/understanding-container-runtimes-mscc-july-meetup</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/understanding-container-runtimes-mscc-july-meetup</guid>
            <pubDate>Sun, 10 Aug 2025 11:40:21 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>MSCC</category>
            <category>Containers</category>
            <category>Meetup</category>
            <description>The Mauritius Software Craftsmanship Community (MSCC) hosts monthly meetups that bring together local developers, IT professionals, and tech enthusiasts to share knowledge, exchange ideas, and discuss emerging trends in software development, cloud technologies, DevOps, AI, and more.</description>
            <content:encoded><![CDATA[<p>The MSCC July meetup was hosted by Accenture. It was the first time that we were doing an MSCC meetup there. Their planning was meticulous and attendance on the day was strictly controlled based on the RSVP. We understood that Accenture adheres to strict company policies, a good practice especially about the RSVP attendance. The latter is often taken for granted — people who RSVP every month but never show up. 🙄 Meanwhile, there are also those who show up without RSVP'ing. They perhaps ignore how important RSVP is for the organisers to properly plan and manage a venue. Please consider being more serious about the RSVP button on the <a href="https://www.meetup.com/mauritiussoftwarecraftsmanshipcommunity/" rel="noreferrer">MSCC meetup.com</a> page.</p><p>On the day, i.e Saturday 12 July, I had a talk scheduled on "Container Runtimes."</p><p>It's been a while that I wanted to do this talk and dive into the lower realms of container management. We often talk about and demo container orchestration using high level tools, while not giving much attention to the underlying technologies. Therefore, my talk was like a primer on Linux namespaces and cgroups, followed by an introduction to container engines, mentioning the low-level and high-level ones.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2025/08/mscc-july-meetup-1.jpeg" class="kg-image" alt="Me preaching about open-source, photo credit: Arwin Neil Baichoo" loading="lazy" width="1280" height="854" srcset="/content/images/size/w600/2025/08/mscc-july-meetup-1.jpeg 600w, /content/images/size/w1000/2025/08/mscc-july-meetup-1.jpeg 1000w, /content/images/2025/08/mscc-july-meetup-1.jpeg 1280w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Me preaching about open-source, photo credit: Arwin Neil Baichoo</span></figcaption></figure><p>Before my talk, I had a very interesting discussion with Renghen. As he was going through my slide deck, he noticed that I mentioned <code>cgroups</code> and he pointed out that all the modern features that we enjoy in container orchestration have been enabled thanks to <code>cgroups v2</code> which was a complete overhaul of version 1, not just an update. Cgroup v2 provides more granular control over resource allocation, brought rootless features, simplifies resource management under one single unified hierarchy, among other improvements. I took note of that and included it when I spoke about control groups. </p><p>I shared a list of current actively developed container runtimes, among which I highlighted <code>youki</code> — a container runtime written in Rust. I co-maintain the <code>youki</code> package on the <a href="https://build.opensuse.org/package/show/Virtualization:containers/youki" rel="noreferrer">openSUSE Build Service</a> and I wanted to share how I am using <code>youki</code> as an experiment to dive deeper and learn more about the low-level workings of container management. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2025/08/DSC05516.JPG" class="kg-image" alt="The mandated weird angle taken by Arwin Neil Baichoo" loading="lazy" width="2000" height="1333" srcset="/content/images/size/w600/2025/08/DSC05516.JPG 600w, /content/images/size/w1000/2025/08/DSC05516.JPG 1000w, /content/images/size/w1600/2025/08/DSC05516.JPG 1600w, /content/images/size/w2400/2025/08/DSC05516.JPG 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The mandated weird angle taken by Arwin Neil Baichoo</span></figcaption></figure><p>Youki creates and starts a container but you will need a higher level container engine to actually manage your container resources. For that, I mentioned <a href="https://podman.io/" rel="noreferrer">Podman</a>. In fact, I asked how many in the room knew about Podman and to my surprise many raised their hands. It turns out that Podman is being heavily favoured over Docker by the development team at Accenture — something I was very glad to hear as a proponent of Podman since its inception. I did an <a href="https://sysadmin-journal.com/podman-101-at-middlesex-university-mauritius/" rel="noreferrer">introduction to Podman</a> at the Middlesex University in 2019, the same year the stable version of Podman was released. Since then, Podman has always been my demo tool when talking about containers.</p><p>I happily shared a few SUSE geeko plushies with the attendees that were able to answer questions that I asked about container runtimes at the end of my presentation.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2025/08/mscc-july-meetup-4.jpeg" class="kg-image" alt="The Group Picture taken by Mary Jane Kirstätter" loading="lazy" width="1200" height="675" srcset="/content/images/size/w600/2025/08/mscc-july-meetup-4.jpeg 600w, /content/images/size/w1000/2025/08/mscc-july-meetup-4.jpeg 1000w, /content/images/2025/08/mscc-july-meetup-4.jpeg 1200w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The Group Picture taken by Mary Jane Kirstätter </span></figcaption></figure>]]></content:encoded>
        </item>
        <item>
            <title>Podman - unable to pull image</title>
            <link>https://sysadmin-journal.com/podman-unable-to-pull-image</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/podman-unable-to-pull-image</guid>
            <pubDate>Tue, 14 Jul 2020 05:35:01 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <category>Containers</category>
            <description>Today, while pulling the latest Nextcloud container image from the docker.io repository I noticed that it is failing. Looking at the read: connection reset by peer error I assume it could be primarily due to network failure; maybe poor quality of the connection</description>
            <content:encoded><![CDATA[<p>Today, while pulling the latest Nextcloud container image from the docker.io repository I noticed that it is failing. Looking at the <u>read: connection reset by peer</u> error I assume it could be primarily due to network failure; maybe poor quality of the connection.</p><p>Note that Mauritius is far from "everywhere" else and connectivity issues are nothing new.</p><pre><code>ish@coffee-bar:~&gt; podman pull docker.io/library/nextcloud
Trying to pull docker.io/library/nextcloud...
Getting image source signatures
Copying blob e0276193a084 done  
Copying blob eb2d00c10344 done  
Copying blob 3a60f364b0c5 done  
Copying blob e0d3d1244592 done  
Copying blob f54006e0dc29 done  
Copying blob 8559a31e96f4 done  
Copying blob b22875b95a2a done  
Copying blob f65316e96b10 done  
Copying blob 3e309988c00b done  
Copying blob 0c78caf16ec3 [======================================] 13.1MiB / 13.2MiB
Copying blob 4fc30aae7ee5 done  
Copying blob 37b016cacdc6 done  
Copying blob fd56bf3cc539 done  
Copying blob e3cd35f544b5 done  
Copying blob 467fea8f6f80 done  
Copying blob 0dc7444f9282 done  
Copying blob 547ae6684264 done  
Copying blob 3139b6de5be7 done  
Copying blob 00e77223b529 done  
Copying blob 2b37e3b3a856 done  
  read tcp 192.168.100.6:33536-&gt;104.18.124.25:443: read: connection reset by peer
Error: error pulling image "docker.io/library/nextcloud": unable to pull docker.io/library/nextcloud: unable to pull image: Error writing blob: error storing blob to file "/var/tmp/storage720474498/10": read tcp 192.168.100.6:33536-&gt;104.18.124.25:443: read: connection reset by peer
</code></pre><p>Podman <a href="https://github.com/containers/podman/issues/4251#issuecomment-555663575">does not retry</a> to copy the image in case of failures.</p><p>A few days ago there was a <a href="https://github.com/containers/podman/issues/4251#issuecomment-654486331">suggestion</a> to implement a similar feature in Podman that is present in Buildah, which provides the "image copy retry" functionality.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2020/07/podman-retryCopyImage-github-pr.png" class="kg-image" alt loading="lazy"><figcaption>Source: <a href="https://github.com/containers/podman/issues/4251">github.com/containers/podman/issues/4251</a></figcaption></figure><p>For the curious, the implementation of <code>retryCopyImage</code> in Buildah can be seen <a href="https://github.com/containers/buildah/blob/8c807dd1450069ddde8e21bec2bd996dc7a7969a/common.go#L125">here</a>.</p><p>Container images that are pulled by Buildah are stored in the local repository which can also by accessed by Podman, so that's an advantage. I tried pulling the Nextcloud container image using Buildah and it completed successfully.</p><pre><code>ish@coffee-bar:~&gt; buildah pull nextcloud
Getting image source signatures
Copying blob e0d3d1244592 done  
Copying blob 8559a31e96f4 done  
Copying blob eb2d00c10344 done  
Copying blob 3a60f364b0c5 done  
Copying blob f54006e0dc29 done  
Copying blob e0276193a084 done  
Copying blob f65316e96b10 done  
Copying blob b22875b95a2a done  
Copying blob 3e309988c00b done  
Copying blob 0c78caf16ec3 done  
Copying blob 4fc30aae7ee5 done  
Copying blob 37b016cacdc6 done  
Copying blob e3cd35f544b5 done  
Copying blob fd56bf3cc539 done  
Copying blob 467fea8f6f80 done  
Copying blob 0dc7444f9282 done  
Copying blob 547ae6684264 done  
Copying blob 2b37e3b3a856 done  
Copying blob 00e77223b529 done  
Copying blob 3139b6de5be7 done  
Copying config 327476ebe3 done  
Writing manifest to image destination
Storing signatures
327476ebe3280c7b570d8463edd136956eab120959976b643cb7dbfaa73f98c1</code></pre><p>Now, the downloaded container image is also accessible by Podman.</p><pre><code>ish@coffee-bar:~&gt; podman images
REPOSITORY                     TAG      IMAGE ID       CREATED        SIZE
docker.io/libreoffice/online   latest   0586fecfa3c1   28 hours ago   2.84 GB
docker.io/library/nextcloud    latest   327476ebe328   3 days ago     774 MB</code></pre><p>To conclude, while we are waiting that a <code>retryCopyImage</code> function is available in Podman, we can use Buildah to pull container images that are troublesome due to network issues. </p>]]></content:encoded>
        </item>
        <item>
            <title>A quick intro to Podman by Estu Fardani</title>
            <link>https://sysadmin-journal.com/a-quick-intro-to-podman-by-estu-fardani</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/a-quick-intro-to-podman-by-estu-fardani</guid>
            <pubDate>Mon, 06 Jul 2020 03:37:32 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <category>Containers</category>
            <category>Conference</category>
            <description>Estu Fardani is a helpful &amp; jovial fellow whom I met at the openSUSE Asia Summit last year in Bali, Indonesia. Recently, for the openSUSE Virtual Summit, Estu did a short presentation on Podman. His presentation video is available on YouTube and slides deck available on Google Slides</description>
            <content:encoded><![CDATA[<p>Estu Fardani is a helpful &amp; jovial fellow whom I met at the <a href="https://sysadmin-journal.com/opensuse-asia-summit/">openSUSE Asia Summit</a> last year in Bali, Indonesia. Recently, for the openSUSE Virtual Summit, Estu did a short presentation on Podman. His presentation video is available on <a href="https://www.youtube.com/watch?v=PC7jRye25YI">YouTube</a> and slides deck available on <a href="https://docs.google.com/presentation/d/1UD9IGi6yEC51PFcjdyifsiYhJmfu6ztoJBKcuW5wVkU">Google Slides</a>.</p><p>While I am not a fan of <code>alias docker=podman</code> I believe Estu added that part in his slide below to make the Podman transition a bit smoother for users already familiar with Docker commands.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2020/07/intro-to-podman-installation-2.jpg" class="kg-image" alt loading="lazy"><figcaption>Slide from Estu's presentation</figcaption></figure><p>Note that the latest release of openSUSE Leap, i.e version 15.2, comes with support for Podman through the <code>libcontainers-common</code> package.</p><p>Previously, if one needed to experiment with Podman and/or deploy in production then openSUSE Tumbleweed, Kubic or MicroOS were the supported choices. Now, one may deploy Podman containers on their existing Leap infrastructure (after upgrading to the latest version 15.2).</p><p>All sessions videos from the openSUSE Virtual Summit 2020 are available on the <a href="https://www.youtube.com/watch?v=idZEJ0OYfWU&amp;list=PL_AMhvchzBaeZSRxmVqECGygDRUAQx5Uu">openSUSE YouTube channel</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title>Debugging on MicroOS made easier with toolbox</title>
            <link>https://sysadmin-journal.com/debugging-on-microos-made-easier-with-toolbox</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/debugging-on-microos-made-easier-with-toolbox</guid>
            <pubDate>Tue, 12 Nov 2019 08:47:03 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Containers</category>
            <description>Until now, it was not easy to run debugging tools on openSUSE MicroOS or Kubic for the simple reason that installing any package using the transactional-update in package_name command would require a reboot for the program to be available on the system.</description>
            <content:encoded><![CDATA[<p>Until now, it was not easy to run debugging tools on openSUSE MicroOS or Kubic for the simple reason that installing any package using the <em><strong>transactional-update in package_name</strong></em> command would require a reboot for the program to be available on the system. Why so? MicroOS &amp; Kubic use transactional updates and thus, the root filesystem is mounted as read-only. Packages that are installed are available in a "snapshot" which is selected at the next boot. openSUSE MicroOS &amp; Kubic fall in the category of immutable operating systems.</p><p>One couldn't just reboot the system every time a simple program was needed - e.g using Vi to edit a YAML config or using database client utils for a rapid inspection.</p><p>But now we have a <code>toolbox</code> script available in MicroOS &amp; Kubic that allows us to launch a container and use debugging utilities that can interact with the host. The script is written in Bash and it is based on <a href="https://github.com/coreos/toolbox/"><strong>CoreOS/toolbox</strong></a>.</p><p>Thorsten Kukuk, SUSE Engineer &amp; Architect (SLES / MicroOS), announced the availability of the <code>toolbox</code> container on the openSUSE Kubic <a href="https://lists.opensuse.org/opensuse-kubic/2019-10/msg00031.html"><strong>mailing list</strong></a> in October.</p><p>The <code>toolbox</code> script resides in the system <code>$PATH</code> and thus can be called directly. On its first execution, the script will pull the <code>toolbox</code> container from the <a href="https://registry.opensuse.org"><strong>openSUSE Container Registry</strong></a>.</p><!--kg-card-begin: markdown--><pre><code>microos:~ # toolbox
Trying to pull registry.opensuse.org/opensuse/toolbox...
Getting image source signatures
Copying blob 92a022f7c0d8 [&gt;-------------------------------------] 2.8MiB / 122.9MiB
Copying blob f0c8107beec9 [==&gt;-----------------------------------] 3.0MiB / 36.4MiB
</code></pre>
<!--kg-card-end: markdown--><p>The host root filesystem can be accessed at <code>/media/root/</code> and since the <code>toolbox</code> container is spawned as the <strong>root</strong> user, the files will be modifiable.</p><!--kg-card-begin: markdown--><pre><code>toolbox:/ # ls /media/root/
bin   dev  home  lib64	opt   root  sbin     srv  tmp  var
boot  etc  lib	 mnt	proc  run   selinux  sys  usr
</code></pre>
<!--kg-card-end: markdown--><p>Non-root <code>toolbox</code> containers will have read-only access to the host files, unless the <code>--root</code> flag is provided.</p><!--kg-card-begin: markdown--><pre><code>ish@microos:~&gt; toolbox --root
</code></pre>
<!--kg-card-end: markdown--><p>Next, use <code>zypper</code> to install the required utilities and interact with the host and other containers.</p><p>Exiting <code>toolbox</code> will stop and the container and next time the script is called, the container is started again. Therefore, previously installed utilities remain available.</p><p>Each <code>toolbox</code> container is named by appending the username calling it, e.g toolbox-ish.</p><!--kg-card-begin: markdown--><pre><code>microos:~ # podman ps --format &quot;{{.ID}} {{.Status}} {{.Names}}&quot;
7f61fba95487 Up 10 minutes ago toolbox-ish
00ada606ec4f Up 33 minutes ago toolbox-root
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded>
        </item>
        <item>
            <title>Understand networking in Podman</title>
            <link>https://sysadmin-journal.com/understand-podman-networking</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/understand-podman-networking</guid>
            <pubDate>Tue, 05 Nov 2019 12:19:18 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Containers</category>
            <category>Networking</category>
            <category>openSUSE</category>
            <description>I received a message on Twitter on 17 October from a fellow who attended the openSUSE Asia Summit 2019. Strangely, I didn&#039;t get any notification about it and it&#039;s only today that I read the message. He also attended my workshop on openSUSE MicroOS and had some questions regarding inter-Pod...</description>
            <content:encoded><![CDATA[<p>I received a message on Twitter on 17 October from a fellow who attended the <a href="https://hacklog.in/opensuse-asia-summit/"><strong>openSUSE Asia Summit 2019</strong></a>. Strangely, I didn't get any notification about it and it's only today that I read the message. He also attended my workshop on <a href="https://speakerdeck.com/ishwon/opensuse-microos-0c74315f-e2a6-4699-8c57-ec215c414edc"><strong>openSUSE MicroOS</strong></a> and had some questions regarding inter-Pod communication.</p><p>As a quick response, I explained him very breifly about "container networking" and pointed him to the <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview#ip-allocation"><strong>Kubernetes documentation</strong></a> on IP allocation. I do realize though, that most of the times, documenation can be lengthy and {boring}, and that you would just want a simple article or blog post that clears your doubts.</p><h2 id="tell-me-about-podman-networks">Tell me about Podman networks</h2><p>Rootless containers (i.e containers started using Podman as a regular user) do not obtain an IP address. Podman uses <a href="https://github.com/rootless-containers/slirp4netns"><strong>slirp4netns</strong></a> to allow Internet connectivity inside the container.</p><p>Communication with a rootless container is achieved by mapping the container ports to the host, e.g using <strong>-p 8080:80</strong> to map a webserver port 80 to the host on port port 8080.</p><pre><code>$ podman run -dt --name webserver -p 8080:80 nginx
$ curl http://localhost:8080</code></pre><p>Therefore, two rootless containers can communicate over their published ports on the host. Let's experiment this by starting an openSUSE Leap container and installing the telnet package. </p><pre><code>$ podman run -dt --name leap leap
$ podman exec -it leap bash

4a0f95e011b9:/ # zypper in telnet</code></pre><p>We run <strong>ip a s</strong> on the host to find its IP address. Say the IP address is 192.168.100.8. Now, from within Leap container let's telnet port 8080 over the host IP.</p><pre><code>4a0f95e011b9:/ # telnet 192.168.100.10 8080
Trying 192.168.100.10...
Connected to 192.168.100.10.
Escape character is '^]'.</code></pre><p>The connection went through successfully, meaning from the Leap container we've been able to access the Nginx container through it's mapped port on the host.</p><p>This same experiment can be repeated using two different pods, say you have a pod that contains your web services and another pod that contains your databases.</p><pre><code>$ podman pod create --name webservice -p 8080:80
$ podman run -dt --name webserver --pod webservice nginx

$ podman pod create --name db -p 3306:3306
$ podman run -dt --name mariadb --pod db -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" mariadb</code></pre><p>The Nginx container will be able to reach the MariaDB database over <strong>192.168.100.10:3306</strong> as the same port is mapped on the host.</p><p>Ideally, these two containers could have been created in the same pod and therefore share the same network space. Then, the Nginx container would reach the database over <strong>localhost:3306</strong> easily.</p><p>I used the above Nginx/MariaDB example to explain rootless inter-Pod communication, which was the question that was asked to me initially.</p><h2 id="what-about-rootfull-containers">What about rootfull containers?</h2><p>Rootfull containers are those that are created using Podman with root privileges, either by the root user itself or using sudo privilege.</p><p>Containers created using Podman with root privileges obtain an IP address. Podman then uses the <a href="https://github.com/containernetworking/cni"><strong>Container Network Interfec (CNI)</strong></a> instead of slirp4netns for networking provisioning.</p><p>Details about the network subnet is found in the CNI config file.</p><pre><code>$ cat /etc/cni/net.d/87-podman-bridge.conflist

{
    "cniVersion": "0.3.0",
    "name": "podman",
    "plugins": [
      {
        "type": "bridge",
        "bridge": "cni0",
        "isGateway": true,
        "ipMasq": true,
        "ipam": {
            "type": "host-local",
            "subnet": "10.88.0.0/16",
            "routes": [
                { "dst": "0.0.0.0/0" }
            ]
        }
      },
      {
        "type": "portmap",
        "capabilities": {
          "portMappings": true
        }
      }
    ]
}</code></pre><p>So, let's start a container with root privileges and see.</p><pre><code>$ sudo podman run -dt --name db postgres

$ sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" db
10.88.0.30</code></pre><p>The <strong>podman inspect ...</strong> command returns the container's IP address and the same is ranged within the subnet specified in the CNI config. The PostgreSQL database can be accessed over <strong>10.88.0.30:5432</strong> from the host or from within any other container started using root privileges.</p><pre><code>$ telnet 10.88.0.30 5432
Trying 10.88.0.30...
Connected to 10.88.0.30.
Escape character is '^]'.</code></pre>]]></content:encoded>
        </item>
        <item>
            <title>Podman 101 at the Middlesex University Mauritius</title>
            <link>https://sysadmin-journal.com/podman-101-at-middlesex-university-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/podman-101-at-middlesex-university-mauritius</guid>
            <pubDate>Wed, 23 Oct 2019 17:53:21 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Education</category>
            <category>openSUSE</category>
            <category>Talk</category>
            <category>Containers</category>
            <description>Thanks to Senior Lecturer and Programme Coordinator, Aditya Santokhee, at the Middlesex University Mauritius, my colleague Chittesh &amp; I got to deliver guest talks at the university today.</description>
            <media:content url="https://sysadmin-journal.com/content/images/2019/10/ish_guest_talk_middlesex_university.jpg" medium="image" />
            <content:encoded><![CDATA[<p>Thanks to Senior Lecturer and Programme Coordinator, Aditya Santokhee, at the Middlesex University Mauritius, my colleague Chittesh &amp; I got to deliver guest talks at the university today.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2019/10/chittesh_guest_talk.jpg" class="kg-image" alt loading="lazy"></figure><p>Chittesh, also our local Mozillian, spoke about the <a href="https://internethealthreport.org/2019/"><strong>Internet Health Report</strong></a> and raised privacy concerns surrounding major online platforms. He mentioned the Cambridge Analytica scandal in particular, especially how that raised public awareness about digital privacy. He added that following the enforcement of the European Union's General Data Protection Regulations (EU GDPR), tens of thousands of violation complaints have been filed. Google was fined €50 million for GDPR violations in France.</p><p>His talk was more a message to the young students for them to review their online habits and take a moment to think about digital privacy.</p><p>On the other hand I had a semi-technical talk about Pods &amp; Containers. Although we had a lecture theatre fully packed with Computer Science students, I was told they were mostly in second year, I realise that not everyone would be acquainted to Linux containers, or yet Linux itself.</p><p>Therefore, I started with a gentle introduction about operating systems and where Linux stands. I asked the students whether they are familiar with virtualization and part of the room answered yes. It made it easier to compare between having an "architecture emulator" to run a virtual machine and a simple isolated environment comprising of a bunch of files. That's the simplest explanation I could give to make the students comfortable with the idea of containers.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2019/10/ish_guest_talk_containers.jpg" class="kg-image" alt loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2019/10/podman.png" class="kg-image" alt loading="lazy"></figure><p>Then, I moved to the topic of <a href="https://podman.io"><strong>Podman</strong></a>, while doing some demos and helping the students learn how <code>podman run ...</code> could make things easier for them. I asked them a few questions about university assignments such as developing an application and the need of having an "environment" to build or test the application. Instead of having a full Linux environment with a bunch of packages installed &amp; configured simply to serve a web application, a single-line of podman could serve those files in an Nginx container. Especially, doing this without a big-fat-daemon, pun intended! 🤓</p><p>I briefly talked about <a href="https://github.com/containers/skopeo"><strong>Skopeo</strong></a> and I invited the more adventurous students to peek inside of containers and get a better understanding of what they are made of. The key lesson being, magic is for the users not for the engineer.</p><p>I ended the talk with this nice slide copied from my openSUSE MicroOS workshop deck from the openSUSE Asia Summit 2019. 😊</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2019/10/terima_kasih.jpg" class="kg-image" alt loading="lazy"></figure><p>Slides available at <a href="https://speakerdeck.com/ishwon/podman-101"><strong>speakerdeck.com/ishwon/podman-101</strong></a>.</p>]]></content:encoded>
        </item>
    </channel>
</rss>
