Join our Discord Server
Abraham Dahunsi Web Developer 🌐 | Technical Writer ✍️| DevOps Enthusiast👨‍💻 | Python🐍 |

How To Run Containerd On Docker Desktop

3 min read

Docker Desktop has become a ubiquitous tool for developers and IT professionals, offering a convenient and accessible platform for working with containerized applications. However, what often goes unseen is the powerful engine that drives Docker under the hood – containerd. This user-friendly application provides a graphical interface and integrated tools to manage containers with ease. Building, running, and sharing containerized applications becomes a breeze, simplifying software development, testing, and deployment workflows.

Meet containerd

While Docker Desktop offers a streamlined user experience, the real heavy lifting is done by containerd. This open-source, industry-standard container runtime engine is the core component responsible for managing the lifecycle of container images and processes. containerd handles image downloads, container creation and execution, and provides the foundational platform for Docker’s functionality.

How To Run containerd in Docker Desktop

By directly accessing containerd within Docker Desktop, you gain an enhanced level of control and flexibility. This might appeal to experienced users and developers who require granular control over the container environment or want to utilize advanced features not exposed through the standard Docker CLI. In this article, we will show you how to run containerd on Docker Desktop.

Prerequisites

1. Docker Desktop:Version: To ensure compatibility with containerd integration features, you’ll need Docker Desktop version 4.12.0 or later. Check for updates within the application or download the latest version from the official Docker website. 2. Operating System:Windows: Docker Desktop supports Windows 10 64-bit and above (Pro, Enterprise, or Education editions) with enabled Hyper-V or WSL 2. – macOS: Docker Desktop requires macOS 10.15 or later. – Linux: While Docker Desktop is primarily designed for Windows and macOS, experimental Linux support is available for select distributions. Refer to Docker’s documentation for specific requirements.

Approaches to Running Container in Docker Desktop

A. Experimental Docker CLI Integration: This latest-addition approach seamlessly integrates containerd functionalities within the familiar Docker CLI environment. Benefits:Direct Execution: Execute `containerd` commands alongside standard Docker commands, offering seamless access to both platforms. – Granular Control: Fine-tune your container experience with advanced containerd options not exposed through standard Docker commands. Enabling the Feature:
    1. Open Docker Desktop settings. 2. Navigate to the “Beta Features” tab.

    3. Enable the “Use containerd for pulling and storing images” option.
    4. Restart Docker Desktop for the changes to take effect.

    Showcasing Common Commands:

    With this integration, you can leverage familiar Docker commands like docker run and docker build but now with additional flexibility. For example, you can directly specify containerd snapshotters or manipulate container resources using dedicated containerd commands.

    Caveats:

    • This feature is currently in the experimental phase, so expect potential bugs and limitations.
    • The documentation for integrated commands might be less comprehensive compared to standalone containerd CLI.

    B. Direct containerd CLI Interface:

    For users seeking ultimate control and access to advanced features, diving directly into the containerd CLI offers unparalleled power.

    Docker CLI vs. containerd CLI:

    Think of Docker CLI as a streamlined interface for common container tasks, while the containerd CLI offers raw access to the engine’s full capabilities. It provides complete control over container lifecycles, image management, and runtime configurations.

    Accessing the containerd CLI:

    1. Open a terminal within Docker Desktop.
    2. Run docker run --rm -it alpine sh to create a temporary bash shell in an Alpine container.
    3. Within the container, run crictl -h to access the containerd CLI help screen.

    Command Examples:

    • List all containers: crictl ps
    • Inspect a container’s runtime state: crictl inspect <container_id>
    • Kill a container: crictl stop <container_id>

    Troubleshooting and Tips

    Here’s a toolbox to troubleshoot common issues and optimize your work with containerd on Docker Desktop:

    Common Glitches:

    • Experimental Docker CLI integration not found: Ensure the feature is enabled in Docker Desktop settings. Navigate to “Settings” > “Experimental Features” and toggle on “Experimental Docker CLI integration.”
    • “Failed to enable containerd: Access denied”: This could indicate insufficient permissions. Try running Docker Desktop with administrator privileges on Windows or using sudo on macOS/Linux.
    • containerd: unknown argument: Double-check your containerd commands for typos or missing flags. Refer to the official documentation for accurate syntax and options.
    • Cannot connect to the Docker daemon: Verify Docker Desktop is running and accessible. Check your terminal output for any additional error messages that might pinpoint the specific issue.

    Best Practices:

    • Keep it updated: Stay up-to-date with the latest versions of Docker Desktop and containerd for bug fixes and performance improvements.
    • Document your journey: Maintain notes of your configurations, commands used, and encountered issues. This can be invaluable for troubleshooting and future reference.
    • Test in a Sandbox: Play around with containerd functionalities in a dedicated test environment before applying them to critical setups.

    Conclusion


    Let’s take a quick look at what we have just learnt:

    1. Direct Access and Precise Control: You can now use the containerd CLI to have detailed control over how containers operate. This includes managing their life cycles, accessing advanced options, and integrating with specialized platforms.
    2. Adaptability and Personalization: Customize your container experience according to your specific requirements. Whether you prefer the simplicity of Docker CLI for basic tasks or want to explore the nuances of the containerd CLI for more advanced control, the decision is yours to make.

    If you are interested, you can learn more about containerd here

    Resources

    Further Learning:

Have Queries? Join https://launchpass.com/collabnix

Abraham Dahunsi Web Developer 🌐 | Technical Writer ✍️| DevOps Enthusiast👨‍💻 | Python🐍 |
Join our Discord Server
Index