Signed-off-by: Abiola Ibrahim <git@abiosoft.com>
15 KiB
FAQs
- FAQs
- How does Colima compare to Lima?
- Are Apple Silicon Macs supported?
- Are older macOS versions supported?
- Does Colima support autostart?
- Can config file be used instead of cli flags?
- Docker
- How does Colima compare to minikube, Kind, K3d?
- Is another Distro supported?
- The Virtual Machine's IP is not reachable
- How can disk space be recovered?
- How can disk size be increased?
- Are Lima overrides supported?
- Troubleshooting
- How can Docker version be updated?
- How can I delete container data
How does Colima compare to Lima?
Colima is basically a higher level usage of Lima and utilises Lima to provide Docker, Containerd and/or Kubernetes.
Are Apple Silicon Macs supported?
Colima supports and works on both Intel and Apple Silicon Macs.
Feedbacks would be appreciated.
Are older macOS versions supported?
Colima is supported and regularly tested on the latest macOS version. However, Colima requires macOS 13 or newer.
You may be able to build Colima and it's dependencies from source on older macOS version. Colima requires Lima and Qemu.
Does Colima support autostart?
Since v0.5.6 Colima supports foreground mode via the --foreground flag. i.e. colima start --foreground.
If Colima has been installed using brew, the easiest way to autostart Colima is to use brew services.
brew services start colima
Can config file be used instead of cli flags?
Yes, from v0.4.0, Colima support YAML configuration file.
Specifying the config location
Set the $COLIMA_HOME environment variable, otherwise it defaults to $HOME/.colima.
Editing the config
colima start --edit
For manual edit, the config file is located at $HOME/.colima/default/colima.yaml.
For other profiles, $HOME/.colima/<profile-name>/colima.yaml
Setting the default config
colima template
For manual edit, the template file is located at $HOME/.colima/_templates/default.yaml.
Specifying the config editor
Set the $EDITOR environment variable or use the --editor flag.
colima start --edit --editor code # one-off config
colima template --editor code # default config
Docker
Can it run alongside Docker for Mac?
Yes, from version v0.3.0 Colima leverages Docker contexts and can thereby run alongside Docker for Mac.
Colima makes itself the default Docker context on startup and should work straight away.
Docker socket location
v0.3.4 or older
Docker socket is located at $HOME/.colima/docker.sock
v0.4.0 or newer
Docker socket is located at $HOME/.colima/default/docker.sock
It can also be retrieved by checking status
colima status
Listing Docker contexts
docker context list
Changing the active Docker context
docker context use <context-name>
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Colima uses Docker contexts to allow co-existence with other Docker servers and sets itself as the default Docker context on startup.
However, some applications are not aware of Docker contexts and may lead to the error.
This can be fixed by any of the following approaches. Ensure the Docker socket path by checking the socket location.
-
Setting application specific Docker socket path if supported by the application. e.g. JetBrains IDEs.
-
Setting the
DOCKER_HOSTenvironment variable to point to Colima socket.export DOCKER_HOST="unix://$HOME/.colima/default/docker.sock" -
Linking the Colima socket to the default socket path. Note that this may break other Docker servers.
sudo ln -sf $HOME/.colima/default/docker.sock /var/run/docker.sock
How to customize Docker config (e.g., adding insecure registries or registry mirrors)?
-
v0.3.4 or lower
On first startup, Colima generates Docker daemon.json file at
$HOME/.colima/docker/daemon.json. Modify the daemon.json file accordingly and restart Colima. -
v0.4.0 or newer
Start Colima with
--editflag.colima start --editAdd the Docker config to the
dockersection.- docker: {} + docker: + insecure-registries: + - myregistry.com:5000 + - host.docker.internal:5000
Note: In order for the Docker client to respect (at least some) configuration value changes, modification of the host ~/.docker/daemon.json file may also be required.
For example, if adding registry mirrors, modifications are needed as follows:
First, colima:
colima start --edit
- docker: {}
+ docker:
+ registry-mirrors:
+ - https://my.dockerhub.mirror.something
+ - https://my.quayio.mirror.something
As an alternative approach to the colima start --edit, make the changes via the template command (affecting the configuration for any new instances):
colima template
Then, the Docker ~/.docker/daemon.json file (as compared to the default):
- "experimental": false,
+ "experimental": false,
+ "registry-mirrors": [
+ "https://my.dockerhub.mirror.something",
+ "https://my.quayio.mirror.something"
+ ]
Docker buildx plugin is missing
buildx can be installed as a Docker plugin
Installing Buildx
Using homebrew
brew install docker-buildx
# Follow the caveats mentioned in the install instructions:
# mkdir -p ~/.docker/cli-plugins
# ln -sfn $(which docker-buildx) ~/.docker/cli-plugins/docker-buildx
docker buildx version # verify installation
Alternatively
ARCH=amd64 # change to 'arm64' for m1
VERSION=v0.11.2
curl -LO https://github.com/docker/buildx/releases/download/${VERSION}/buildx-${VERSION}.darwin-${ARCH}
mkdir -p ~/.docker/cli-plugins
mv buildx-${VERSION}.darwin-${ARCH} ~/.docker/cli-plugins/docker-buildx
chmod +x ~/.docker/cli-plugins/docker-buildx
docker buildx version # verify installation
How does Colima compare to minikube, Kind, K3d?
For Kubernetes
Yes, you can create a Kubernetes cluster with minikube (with Docker driver), Kind or K3d instead of enabling Kubernetes in Colima.
Those are better options if you need multiple clusters, or do not need Docker and Kubernetes to share the same images and runtime.
Colima with Docker runtime is fully compatible with Minikube (with Docker driver), Kind and K3d.
For Docker
Minikube with Docker runtime can expose the cluster's Docker with minikube docker-env. But there are some caveats.
-
Kubernetes is not optional, even if you only need Docker.
-
All of minikube's free drivers for macOS fall-short in one of performance, port forwarding or volumes. While port-forwarding and volumes are non-issue for Kubernetes, they can be a deal breaker for Docker-only use.
Is another Distro supported?
Version v0.5.6 and lower
Colima uses a lightweight Alpine image with bundled dependencies. Therefore, user interaction with the Virtual Machine is expected to be minimal (if any).
However, Colima optionally provides Ubuntu container as a layer.
Enabling Ubuntu layer
-
CLI
colima start --layer=true -
Config
- layer: false + layer: true
Accessing the underlying Virtual Machine
When the layer is enabled, the underlying Virtual Machine is abstracted and both the ssh and ssh-config commands routes to the layer.
The underlying Virtual Machine is still accessible by specifying --layer=false to the ssh and ssh-config commands, or by running colima in the SSH session.
Version v0.6.0 and newer
Colima uses Ubuntu as the underlying image. Other distros are not supported.
The Virtual Machine's IP is not reachable
Reachable IP address is not enabled by default due to root privilege and slower startup time.
Enable reachable IP address
NOTE: this is only supported on macOS
- CLI
colima start --network-address - Config
network: - address: false + address: true
How can disk space be recovered?
Disk space can be freed in the VM by removing containers or running docker system prune.
However, it will not reflect on the host on Colima versions v0.4.x or lower.
Automatic
For Colima v0.5.0 and above, unused disk space in the VM is released on startup. A restart would suffice.
Manual
For Colima v0.5.0 and above, user can manually recover the disk space by running sudo fstrim -a in the VM.
# '-v' may be added for verbose output
colima ssh -- sudo fstrim -a
How can disk size be increased?
Disk size is automatically increased on start up based on configuration in colima.yaml
- disk: 150
+ disk: 250
Note: This feature is available from Version 0.5.3.
Are Lima overrides supported?
Yes, however this should only be done by advanced users.
Overriding the image is not supported as Colima's image includes bundled dependencies that would be missing in the user specified image.
Troubleshooting
These are some common issues reported by users and how to troubleshoot them.
Colima not starting
There are multiple reasons that could cause Colima to fail to start.
Broken status
This is the case when the output of colima list shows a broken status. This can happen due to macOS restart.
colima list
PROFILE STATUS ARCH CPUS MEMORY DISK RUNTIME ADDRESS
default Broken aarch64 2 2GiB 60GiB
This can be fixed by forcefully stopping Colima. The state will be changed to Stopped and it should start up normally afterwards.
colima stop --force
FATA[0000] error starting vm: error at 'starting': exit status 1
This indicates that a fatal error is preventing Colima from starting, you can enable the debug log with --verbose flag to get more info.
If the log output includes exiting, status={Running:false Degraded:false Exiting:true Errors:[] SSHLocalPort:0} then it is most certainly due to one of the following.
- Running on a device without virtualization support.
- Running an x86_64 version of homebrew (and Colima) on an M1 device.
Issues after an upgrade
The recommended way to troubleshoot after an upgrade is to test with a separate profile.
# start with a profile named 'debug'
colima start debug
If the separate profile starts successfully without issues, then the issue would be resolved by resetting the default profile.
colima delete
colima start
Colima cannot access the internet.
Failure for Colima to access the internet is usually down to DNS.
Try custom DNS server(s)
colima start --dns 8.8.8.8 --dns 1.1.1.1
Ping an internet address from within the VM to ascertain
colima ssh -- ping -c4 google.com
PING google.com (216.58.223.238): 56 data bytes
64 bytes from 216.58.223.238: seq=0 ttl=42 time=0.082 ms
64 bytes from 216.58.223.238: seq=1 ttl=42 time=0.557 ms
64 bytes from 216.58.223.238: seq=2 ttl=42 time=0.465 ms
64 bytes from 216.58.223.238: seq=3 ttl=42 time=0.457 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.082/0.390/0.557 ms
Docker Compose and Buildx showing runc error
Version v0.5.6 or lower
Recent versions of Buildkit may show the following error.
runc run failed: unable to start container process: error during container init: error mounting "cgroup" to rootfs at "/sys/fs/cgroup": mount cgroup:/sys/fs/cgroup/openrc (via /proc/self/fd/6), flags: 0xf, data: openrc: invalid argument
From v0.5.6, start Colima with --cgroups-v2 flag as a workaround.
This is fixed in v0.6.0.
Issue with Docker bind mount showing empty
When using docker to bind mount a volume (e.g. using -v or --mount) from the host where the volume is not contained within /Users/$USER, the container will start without raising any errors but the mapped mountpoint on the container will be empty.
This is rectified by mounting the volume on the VM, and only then can docker map the volume or any subdirectory. Edit $HOME/.colima/default/colima.yaml and add to the mounts section (examples are provided within the yaml file), and then run colima restart. Start the container again with the desired bind mount and it should show up correctly.
How can Docker version be updated?
Each Colima release includes the latest Docker version at the time of release.
From v0.7.6, there is a new colima update command to update the container runtime without needing to update Colima or to wait for the next Colima release.
How can I delete container data
From v0.9.0, Colima utilises a different disk for the container runtime data. This guards against accidental data loss after deletion and the container data should be reinstated on colima start.
To clear all data, colima delete --data should be run instead. The --data flag ensures that the container data is also deleted.