docker

Overview

The Docker driver allows you to install Kubernetes into an existing Docker install. On Linux, this does not require virtualization to be enabled.

Requirements

Usage

Start a cluster using the docker driver:

minikube start --driver=docker

To make docker the default driver:

minikube config set driver docker

Special features

  • Cross platform (linux, macOS, Windows)
  • No hypervisor required when run on Linux
  • Experimental support for WSL2 on Windows 10

Known Issues

  • Docker driver is not supported on non-amd64 architectures such as arm yet. For non-amd64 archs please use other drivers

  • On macOS, containers might get hung and require a restart of Docker for Desktop. See docker/for-mac#1835

  • The ingress, and ingress-dns addons are currently only supported on Linux. See #7332

  • On WSL2 (experimental - see #5392), you may need to run:

    sudo mkdir /sys/fs/cgroup/systemd && sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd.

Troubleshooting

Verify Docker container type is Linux

  • On Windows, make sure Docker Desktop’s container type setting is Linux and not windows. see docker docs on switching container type. You can verify your Docker container type by running:
    docker info --format '{{.OSType}}'
    

Run with logs

  • Run --alsologtostderr -v=1 for extra debugging information

Deploying MySql on a linux with AppArmor

  • On Linux, if you want to run MySQL pod, you need to disable AppArmor for mysql profile

    If your docker has AppArmor enabled, running mysql in privileged mode with docker driver will have the issue #7401. There is a workaround - see moby/moby#7512.