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 20.10 或更高版本,详见 https://rootlesscontaine.rs/getting-started/docker/
- Cgroup v2 委托,详见 https://rootlesscontaine.rs/getting-started/common/cgroup2/
- 内核 5.11 或更高版本(当 SELinux 启用时推荐 5.13 或更高版本),详见 https://rootlesscontaine.rs/how-it-works/overlayfs/
用法
使用无根 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
-
ingress
和ingress-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。