docker

概述

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

要求

  • 安装 Docker 18.09 或更高版本(推荐使用 20.10 或更高版本)
  • amd64 或 arm64 系统。
  • 如果使用 WSL,请先完成这些步骤
  • 不要忘记按照此步骤以非 root 用户管理 Docker。

用法

使用 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