docker

概述

Docker 驱动程序允许您将 Kubernetes 安装到现有的 Docker 环境中。在 Linux 上,这不需要启用虚拟化。

要求

  • 安装 Docker 18.09 或更高版本(推荐 20.10 或更高版本)
  • amd64 或 arm64 系统。
  • 如果使用 WSL,请先完成这些步骤
  • 别忘了按照此步骤将 Docker 作为非 root 用户进行管理。

用法

使用 docker 驱动程序启动集群

minikube start --driver=docker

将 docker 设置为默认驱动程序

minikube config set driver docker

要求

用法

使用无根 docker 驱动程序启动集群

dockerd-rootless-setuptool.sh install -f
docker context use rootless
minikube start --driver=docker --container-runtime=containerd

与 Podman 驱动程序不同,无需设置 minikube 的 rootless 属性(minikube config set rootless true)。当 rootless 属性被明确设置但当前 Docker 主机不是无根环境时,minikube 将会报错。

建议将 --container-runtime 标志设置为“containerd”。

特殊功能

  • 跨平台(Linux、macOS、Windows)
  • 在 Linux 上运行时无需管理程序
  • 对 Windows 10 上的 WSL2 的实验性支持

已知问题

  • 以下 Docker 运行时安全选项目前不支持 Docker 驱动程序,也无法正常工作(参见 #9607

  • 在 macOS 上,容器可能会挂起,需要重启 Docker Desktop。参见 docker/for-mac#1835

  • ingressingress-dns 插件目前仅支持 Linux。参见 #7332

  • 在 WSL2 上(实验性功能 - 参见 #5392),您可能需要运行

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

另请参见 co/docker-driver 开放问题

故障排除

验证 Docker 容器类型是否为 Linux

  • 在 Windows 上,请确保 Docker Desktop 的容器类型设置为 Linux 而不是 Windows。请查看 Docker 文档中关于切换容器类型的内容。您可以通过运行以下命令验证您的 Docker 容器类型:
    docker info --format '{{.OSType}}'
    

运行并查看日志

  • 运行 --alsologtostderr -v=1 以获取额外的调试信息

在启用 AppArmor 的 Linux 上部署 MySQL

  • 在 Linux 上,如果您想运行 MySQL pod,需要为 MySQL 配置文件禁用 AppArmor

    如果您的 Docker 启用了 AppArmor,则以特权模式使用 Docker 驱动程序运行 MySQL 将会出现 #7401 问题。有一个解决方法 - 参见 moby/moby#7512