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 for 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,则需要禁用 AppArmor 的 mysql 配置文件

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