Working with container images in Go
A guide on using Go libraries (containers/image and containers/storage) to programmatically pull, store, and manage container images without external daemons.
Ivan Velichko — Experienced software engineer and educator focused on server-side, infrastructure, and Cloud Native technologies, known for making complex systems approachable through clear explanations and hands-on learning.
81 articles from this blog
A guide on using Go libraries (containers/image and containers/storage) to programmatically pull, store, and manage container images without external daemons.
Learn Go programming by studying the source code of popular container projects like containerd, CNI, and cri-o.
A technical guide on implementing interactive container functionality in a custom container runtime shim, explaining stdin/stdout handling.
A tutorial on making synchronous Flask applications asynchronous using the gevent library, covering setup with uWSGI and Gunicorn.
A programmer reflects on a decade of experience, sharing highly opinionated insights on object-oriented programming and software design paradigms.
A technical guide on building a minimal container runtime shim using runc, focusing on daemon design and integration with a container manager.
A technical guide on implementing a container runtime shim for runc, explaining its role between managers and runtimes.
Analyzing the Kubernetes codebase structure using cloc and FlameGraph to visualize 4 million lines of code and key directories.
Explains Linux process termination handling using Rust code examples, covering child/grandchild processes and parent termination signals.
A technical series on implementing a custom container manager from scratch, using runc as the underlying OCI runtime.
A technical exploration of container runtimes, orchestration, and the underlying Linux primitives, from low-level OCI specs to practical implementation.
Explains how Docker's attach and exec commands work using Linux pseudoterminals (PTYs) and includes a code implementation.
A beginner-friendly, visual guide to understanding Linux iptables, focusing on packet flow and core concepts before diving into commands.
A technical guide explaining how to convert a Docker container's root filesystem into a bootable Linux disk image, exploring container and OS internals.
A technical deep dive into how async/await works under the hood, explaining the concept by building it from scratch in code.
A technical guide to understanding the event loop concept by building a simple implementation in code, focusing on async I/O.
A technical article about using the Gevent library to solve performance issues in a Python web service caused by blocking external API calls.
Explains how to implement truly optional scalar fields in Protocol Buffers 3 using wrapper types, with practical Go examples.
A technical guide explaining Node.js Writable streams, focusing on their abstraction, the producer-consumer problem, and backpressure management.
An in-depth exploration of Node.js Readable streams, explaining their abstraction, push/pull models, and modern consumption patterns like async iterators.