Running Docker without Docker Desktop on macOS

Benjamin
3 min readMay 2, 2023

Docker Desktop is a widely popular tool among developers for building and deploying containerized applications. However, it is common to encounter issues, such as slow startup times or compatibility problems with the host operating system. This article will explore some alternatives to Docker Desktop and why you might want to consider replacing it.

Why Replace Docker Desktop?

Docker Desktop is a useful tool, but it has its limitations. Here are some reasons why you might want to consider replacing it:

Performance Issues

Docker Desktop can be slow to start up and run on some systems, which is frustrating for developers who need to work efficiently. It can also consume a lot of resources, impacting your host system's performance.

Compatibility Issues

Docker Desktop may not be compatible with all versions of your host operating system, which can cause issues when trying to run containers. This can be especially problematic if you’re working on a team with different operating systems or need to deploy your application across different environments.

License Restrictions

Docker Desktop is licensed software, and there are restrictions on its use. You may run into licensing issues if you’re working on an open-source project or need to distribute your application freely.

Alternatives to Docker Desktop

Here are some alternatives to Docker Desktop that you might want to consider:

Podman

Podman is a container engine that aims to be a drop-in replacement for Docker. It offers a similar command-line interface and supports Dockerfile syntax, so it should be familiar to most developers. One of the main advantages of Podman is that it doesn’t require a daemon to run, which can reduce startup times and improve performance.

Buildah

Buildah is a tool for building OCI-compatible images. It is designed to be used with other container engines, such as Podman or Docker. One of the advantages of Buildah is that it is lightweight and doesn’t require a daemon to run, which can improve performance.

LXD

LXD is a container hypervisor that provides a system container manager similar to Docker. It supports various container formats, including Docker images, and can run on various host operating systems. LXD is known for its fast startup times and efficient resource usage.

Singularity

Singularity is a container engine designed for scientific and high-performance computing. It is optimized for running containers on HPC clusters and can run Docker images. Singularity is known for its security features and its ability to run containers without requiring root privileges.

Or my Favourite Colima:

# First install nix package manager if not already have
nix-env -iA nixpkgs.docker

# Second install Docker and Docker Compose
nix-env -iA nixpkgs.docker && nix-env -iA nixpkgs.docker-compose

# Then finally install Colima, containers in Lima, Linux virtual machines (on macOS)
nix-env -iA nixpkgs.colima

# After Colima is installed, it needs to be started before we can run our docker commands
colima start

That’s it! From here on out, it’s smooth sailing with flowery fields and butterflies. The setup works, at least for the docker run and docker-compose

Conclusion

Docker Desktop is a useful tool, but it has its limitations. If you’re encountering performance or compatibility issues or need to distribute your application freely, you might want to consider one of the alternatives discussed in this article. Each tool has its advantages and disadvantages, so it’s important to evaluate them based on your specific needs. You can find the best tool for your containerization needs by exploring these alternatives.

--

--