1. docker 驱动
Docker 驱动允许你将 Kubernetes 安装到现有的 Docker 服务上。在 Linux 系统中,这不需要启用虚拟化。
Docker 驱动运行的容器是基于 Docker in Docker 技术,minikube 提供 kicbase 基础镜像
1.1. 依赖要求
- 安装 docker 18.09 或更高版本
- amd64 或 arm64 系统。
1.2. 使用
使用 docker 驱动启动集群:
minikube start --driver=docker
让 docker 成为默认驱动程序:
minikube config set driver docker
1.3. 非 root Docker
1.3.1. 依赖要求
- Docker 20.10 或更高版本, see https://rootlesscontaine.rs/getting-started/docker/
- Cgroup v2 支持, see https://rootlesscontaine.rs/getting-started/common/cgroup2/
1.3.2. 使用
使用非 root docker 驱动启动集群:
dockerd-rootless-setuptool.sh install -f
docker context use rootless
minikube start --driver=docker --container-runtime=containerd
--container-runtime
标记必须设置为 "containerd" 或 "cri-o".
The restrictions of rootless kind
apply to minikube with rootless docker as well.
See https://kind.sigs.k8s.io/docs/user/rootless/ .
1.4. 特性
- 跨平台 (linux, macOS, Windows)
- 在 Linux 上运行时不依赖虚拟化
- 在 Windows10 上支持实验特性功能 WSL2
1.5. 已知问题
以下 Docker 运行时安全选项目前 不支持,将无法与Docker驱动程序一起工作 (#9607):
在 macOS 上,容器可能会挂起,需要重新启动 Docker for Desktop。 See docker/for-mac#1835
ingress
和ingress-dns
插件当前只支持 Linux。 See #7332在 Windows WSL2 中 (experimental - see #5392), 需要运行:
sudo mkdir /sys/fs/cgroup/systemd && sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
.
1.6. Troubleshooting
1.6.1. 验证 Docker 容器类型为 Linux
- 在 Windows 上,确保 Docker Desktop 的容器类型设置为 Linux 而不是 Windows。 see docker docs on switching container type.
你可以通过运行 Docker 容器来验证你的 Docker 容器类型:
docker info --format '{{.OSType}}'
1.6.2. 运行日志
- 运行
--alsologtostderr -v=1
输出调试信息
1.6.3. 使用 AppArmor 在 linux 上部署 MySql
在 Linux 操作系统上,如果你想运行 MySQL pod,你需要为 MySQL 配置文件禁用 AppArmor.
如果你的 docker 启用了 AppArmor , 在 docker 驱动程序的特权模式下运行 mysql 将会有这个问题 #7401.
该问题的处理方法,见moby/moby#7512.