https://www.docker.com/legal/docker-subscription-service-agreement.
Replacing the software may be easier than complying with the service agreement.
Here are some alternatives.
And some links:
GUI and super simple installation for docker/kubernetes. Would recommend! Mac, linux and windows support.
Rancher Desktop is an open-source desktop application for Mac, Windows and Linux. It provides Kubernetes and container management. You can choose the version of Kubernetes you want to run. You can build, push, pull, and run container images using either containerd or Moby (dockerd). The container images you build can be run by Kubernetes immediately without the need for a registry.
Lima (vm) + k3s (kubernetes) + conainerd/dockerd (container runtime)
Docker alternative, possible without kubernetes. My current choice, but not recommendation (no GUI) No windows support.
Container runtimes on macOS (and Linux) with minimal setup.
https://github.com/abiosoft/colima
Lima (vm) + conainerd/dockerd (container runtime)
- Project Goal: To provide container runtimes on macOS with minimal setup.
- Project Status:
⚠️ The project is still in active early stage development and updates may introduce breaking changes.
# Install
brew install colima
brew install docker
brew install docker-compose
# Verify that docker is not already setup
docker ps
# Start vm + (all defaults)
colima start
# Verify that docker _is_ setup
docker ps
docker run --rm -it -v $(pwd):/app alpine ls /app
docker run --rm -d --name caddy -p 8000:80 caddy
curl http://localhost:8000
docker kill caddy
docker ps
Daemonless containers.
Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Simply put: alias docker=podman.
"lack of ability to mount volumes from the host OS". source
minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows. We proudly focus on helping application developers and new Kubernetes users.
Hyperkit, or others (vm) + minikube (kubernetes) + conainerd/docker/cri-o (container runtime)
Let's follow this guide. https://dhwaneetbhatt.com/blog/run-docker-without-docker-desktop-on-macos.
Extracted from the blog, the "one step installation".
# Install hyperkit and minikube
brew install hyperkit
brew install minikube
# Install Docker CLI
brew install docker
brew install docker-compose
# Start minikube
minikube start
# Tell Docker CLI to talk to minikube's VM
eval $(minikube docker-env)
# Save IP to a hostname
echo "$(minikube ip) docker.local" | sudo tee -a /etc/hosts > /dev/null
# Test
docker run hello-world
Problems encountered and solutions. From uninstalling docker desktop
to working on my project working again. This is only tested on my project and only on mac os. Not every project, or every os, so you may find other issues.
The part where you configures the docker cli only sets up your current terminal. And needs to be done in every terminal you open, before you use docker.
# Tell Docker CLI to talk to minikube's VM
eval $(minikube docker-env)
Put it in your .profile
/.zshrc
.
echo '
##
## Docker
##
# Configure docker cli to use minikube
eval "$(minikube docker-env)"
' >> ~/.profile
Since we uninstalled docker-desktop we no longer have docker-credential-desktop
. Issue first showed up when running docker-compose
.
The docker config still exists. And it's incorrect. docker/for-mac#3785
$ code ~/.docker/config.json
Disable the credential store by setting and empty string. This is fine, since the credential store is only used to simplify docker login
.
https://docs.docker.com/engine/reference/commandline/login/
{
- "credsStore" : "desktop"
+ "credsStore" : ""
}
If you have another credential provider, you can use that.
{
- "credsStore" : "desktop"
+ "credsStore" : "<YOUR_CREDENTIAL_PROVIDER>"
}
No problem found yet, but saving the warning in case I need to fix it later.
$ brew install docker-compose
==> Downloading https://ghcr.io/v2/homebrew/core/docker-compose/manifests/2.2.3
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/docker-compose/blobs/sha256:af736ed840766
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:af736
######################################################################## 100.0%
==> Pouring docker-compose--2.2.3.big_sur.bottle.tar.gz
==> Caveats
Compose is now a Docker plugin. For Docker to find this plugin, symlink it:
mkdir -p ~/.docker/cli-plugins
ln -sfn /usr/local/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose
==> Summary
🍺 /usr/local/Cellar/docker-compose/2.2.3: 6 files, 26.1MB
==> Running `brew cleanup docker-compose`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).