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 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。