Docker minikube不能在ubuntu 20.04 LTS上启动。因提供客人服务而退出
我试图在安装了UbuntuDesktop 20.04 LTS的虚拟机中使用docker驱动程序安装minikube 我遵循了这些步骤,还考虑了docker驱动程序(已报告)的限制,这些限制与运行时安全选项有关。当我尝试启动minikube时,得到的错误是:无法启动主机:创建主机:创建:创建:准备kic ssh:复制发布密钥 这就是我为安装minikube的全新VM所做的Docker minikube不能在ubuntu 20.04 LTS上启动。因提供客人服务而退出,docker,kubernetes,minikube,Docker,Kubernetes,Minikube,我试图在安装了UbuntuDesktop 20.04 LTS的虚拟机中使用docker驱动程序安装minikube 我遵循了这些步骤,还考虑了docker驱动程序(已报告)的限制,这些限制与运行时安全选项有关。当我尝试启动minikube时,得到的错误是:无法启动主机:创建主机:创建:创建:准备kic ssh:复制发布密钥 这就是我为安装minikube的全新VM所做的 安装docker 将我的用户添加到docker组,否则minkube启动将失败,因为dockerd以root用户身份运行(do
ubuntuDesktop:~$minikube开始
解决方案:
正如我在评论中提到的,您可能只需要运行:
docker system prune
然后:
最后:
minikube start --driver=docker
这应该会有所帮助
说明:
尽管正如我在评论中已经提到的,很难说您的具体案例中存在什么问题,但这种情况可能是由于之前尝试运行您的Minikube实例失败而导致的
当使用不同的驱动程序并且它作为VM运行时,有时也会发生这种情况,基本上删除这样的VM可能会有所帮助。通常运行minikube delete&&minikube start
就足够了
在这种情况下,当使用--driver=docker
时,您的Minikube实例将在docker运行时中配置为容器,但除了容器本身之外,还配置了网络或存储等其他内容
命令删除所有未使用的容器、网络、图像(悬空和未引用的图像)以及卷(可选)。所以我们可以肯定地说,这是上面提到的其中一个
根据确切的错误消息判断:
❌ Exiting due to GUEST_PROVISION: Failed to start host: creating host: create: creating: prepare kic ssh: copying pub key: docker copy /tmp/tmpf-memory-asset544814591 into minikube:/home/docker/.ssh/authorized_keys, output: lstat /tmp/tmpf-memory-asset544814591: no such file or directory
: exit status 1
我想这可能只是简单地清除一些在您的案例中有帮助的缓存的数据,并删除对不存在的文件的损坏引用。上面的消息非常清楚地解释了无法执行的操作,即,docker无法将公共ssh密钥
复制到目标minikube:/home/docker/.ssh/authorized_keys
作为源文件/tmp/tmpf-memory-asset44814591
,它试图从中复制,但根本不存在。所以说发生了什么其实很简单,但要想知道为什么会发生,可能需要深入了解Docker和Minikube内部,并逐步分析使用--driver=Docker
时如何配置Minikube实例
您可以尝试分析您的docker日志,这是一个很好的观点,但我严重怀疑您是否能够找到引用不存在的临时文件/tmp/tmpf-memory-asset544814591
或它不存在的确切原因。我在尝试安装时遇到了相同的问题Ubuntu 20.04系统上的Minikube
“docker系统删减”对我的情况没有帮助,但我发现问题的原因是/var
是使用nosuid
选项安装的,我必须删除它并重新安装/var
。然后,minikube集群初始化工作正常
我可能太无知了,但我没有发现这些信息是必需的。如果您使用已经安装了docker和minikube的Linux桌面操作系统,只需运行
sudo usermod -aG docker $USER
然后重新启动计算机。
这对我很有效。问题是,docker
驱动程序不应与root权限一起使用。默认情况下,docker守护进程始终作为根用户运行。要以非root用户身份运行docker守护程序,请创建一个名为docker的Unix组,并向其中添加用户。当Docker守护进程启动时,它将创建Docker组成员可以访问的Unix套接字
运行以下命令修复此问题
创建docker组(如果不存在)
sudogroupadddocker
将用户添加到docker组
sudo usermod-aG docker[用户]
要激活对组的更改,请执行以下操作:
新码头工人
启动minikube群集
minikube启动
您能试着再次运行docker system prune
,minikube delete
然后minikube start--driver=docker
吗?谢谢@mario。。。这似乎奏效了;至少我现在可以克服它以前被卡住的地方。关键可能是docker system prune
,这是我之前几次没有尝试过的唯一一件事。为了让我了解,你能详细说明一下,是什么垃圾清理掉了,阻碍了minkube正确启动?。。。如果你把它作为一个答案发布,我会投赞成票,因为它解决了最初的问题。好的,我把它作为一个答案发布。至于到底是什么阻止了你的minikube实例启动的详细解释,我感到震惊的是,它不可能启动,因为它在每种情况下都可能是不同的事情,一旦它被清理干净,就不可能再调试具体的原因了。但让我更新我的答案,并至少提供一个一般性的解释。检查docker日志,我看到了以下内容:[ERROR]无法启动minikube计划停止。
。。。但是kubectl get all-A
正在显示所有正在运行的内容。。。我会深入研究的,但一切似乎都在运行。你在docker日志中验证了这个条目的确切日期和时间了吗?我只是想知道它是否与之前失败的Minikube容器配置无关。。。。事实证明,我没有足够的声誉:-(…我一到15岁就回来投票。非常感谢你详细说明答案…我现在已经有了
sudo usermod -aG docker $USER