Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker minikube不能在ubuntu 20.04 LTS上启动。因提供客人服务而退出_Docker_Kubernetes_Minikube - Fatal编程技术网

Docker minikube不能在ubuntu 20.04 LTS上启动。因提供客人服务而退出

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 20.04 LTS的虚拟机中使用docker驱动程序安装minikube

我遵循了这些步骤,还考虑了docker驱动程序(已报告)的限制,这些限制与运行时安全选项有关。当我尝试启动minikube时,得到的错误是:无法启动主机:创建主机:创建:创建:准备kic ssh:复制发布密钥

这就是我为安装minikube的全新VM所做的

  • 安装docker
  • 将我的用户添加到docker组,否则minkube启动将失败,因为dockerd以root用户身份运行(docker术语中称为无根模式)
  • 安装kubectl(这不是必需的,但我选择了它,而不是minikube中的嵌入式kubectl)
  • 安装minikube
  • 当我开始minikube时,我得到的是:

    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
    ,它试图从中复制,但根本不存在。所以说发生了什么其实很简单,但要想知道为什么会发生,可能需要深入了解DockerMinikube内部,并逐步分析使用
    --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