【问题标题】:Docker is running. Docker Desktop says "Docker Desktop stopped..."Docker 正在运行。 Docker 桌面说“Docker 桌面停止...”
【发布时间】:2022-06-14 10:16:43
【问题描述】:

我已经使用本指南在我的 Ubuntu 20.04 VM 上安装了 Docker 和 Docker Desktop:

https://linuxiac.com/how-to-install-docker-desktop-on-ubuntu/

一切都在运行,但我的 Docker 桌面应用程序似乎无法连接到 Docker 本身。

service docker status 返回:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-13 14:49:12 PDT; 4 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1086 (dockerd)
      Tasks: 18
     Memory: 73.0M
     CGroup: /system.slice/docker.service
             └─1086 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Warning: some journal files were not opened due to insufficient permissions.

但是,当我尝试在 Docker Desktop 中进行配置时,我会得到这样的结果。当我点击设置时,我会得到一个永久加载微调器。

我尝试过的

  1. 我已经用sudo service docker stop / start重新启动了docker

  2. 我使用 Ubuntu 桌面右上角的 Docker 桌面下拉菜单单击了重新启动。

  3. 我已将我的用户添加到 docker 组。

我可以采取哪些步骤来调试它?我有什么明显的遗漏吗?

谢谢!

【问题讨论】:

    标签: docker ubuntu docker-desktop


    【解决方案1】:

    我在 debian 11 和 Docker desktop 4.8.1 上遇到了同样的问题

    (!) 如果您在 VM 中使用 linux,请验证虚拟化支持:Docker Desktop 运行需要 KVM 支持的 VM。 https://docs.docker.com/desktop/linux/install/#kvm-virtualization-support

    您需要在 VMWare 中启用 CPU 计数器 https://github.com/canonical/multipass/issues/1085

    验证数量

    egrep -c '(svm|vmx)' /proc/cpuinfo
    

    您需要停止并禁用 Docker。

    $ sudo service docker stop
    $ sudo systemctl disable docker.service
    $ sudo systemctl disable docker.socket
    

    然后,重新启动 linux 和 Docker 桌面。

    更重要的是,如果您以 root 用户身份运行“docker ps”,则不会使用 docker desktop。您还有另一个容器列表。

    而且...要小心,如果您更改“设置->资源->高级:磁盘映像位置”,则不能删除默认文件 1.8G => home/YOUR_USER/.docker/desktop/vms/0/数据/Docker.raw .

    您可以更改路径,但您需要将该文件保留在该位置。

    恢复出厂设置

    Docker 桌面重启

    重新启动计算机后的 Docker 服务状态

    完整历史记录:

    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    sudo usermod -aG docker YOUR_USER
    sudo apt install gnome-terminal
    sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager -y
    sudo usermod -aG kvm YOUR_USER
    sudo apt autoremove
    sudo apt install ./docker-desktop-4.8.1-amd64.deb
    sudo systemctl disable docker.service
    sudo systemctl disable docker.socket
    

    测试 VirtualBox 虚拟机 - Ubuntu 20.04

    【讨论】:

    • 按照您的指示。我刚刚重新启动,由于 docker 被禁用,它没有运行。我应该重新启动它吗? Docker Desktop 给我“Docker Desktop 已停止...”,但我认为这是因为 Docker 没有运行。
    • 使用上下文菜单重新启动似乎没有任何作用:/ Docker 桌面刚刚成为焦点。似乎它应该关闭窗口然后打开它,但没有任何反应。
    • 那么,最后的灵丹妙药... 重置为出厂默认设置按钮。 (码头工人停止和禁用) - 图像添加
    • 放轻松!我关注了官方:docs.docker.com/desktop/linux/install/ubuntu.
    • 您好@Mate 安装新的 Ubuntu 20 后,docker-desktop 运行完美,感谢您的热情回复。
    【解决方案2】:

    Docker 需要虚拟化才能工作。因此,您可以在 BIOS 中将其打开。这对我有用

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案3】:

    我在 Ubuntu 22.04 VM 上遇到了同样的问题,Windows 11 作为主要主机,Docker 桌面 4.9.0

    如果您使用的是 Virtualbox,则需要启用嵌套虚拟化支持,该支持在 Windows 6.0 以上版本上可用。另外需要说明的是,您需要禁用 Hyper-V、虚拟机平台和 Windows Hypervisor 平台,否则将无法正常工作。

    为了在 VirtualBox 和 Windows 中启用嵌套的 VT-X/AMD-V,您需要(https://www.cyberithub.com/how-to-enable-nested-vt-x-amd-v-in-virtualbox-step-by-step/ 上的分步指南):

    1. 您需要通过在底部搜索区域输入 CMD 来打开 Windows 命令行终端。出现后,右键单击它并选择以管理员身份运行。这将以管理员模式打开命令行终端。

    2. 现在,您需要使用cd "Program Files\Oracle\VirtualBox" 命令转到 VirtualBox 文件夹。此文件夹包含所有 VirtualBox 可执行组件以及我们需要在其中使用 VBoxManage 的其他重要文件。

    3. 要在 VirtualBox 中启用嵌套的 VT-x/AMD-v,您需要运行 VBoxManage modifyvm <vm_name> --nested-hw-virt on 语法。前任。我正在为我的名为“Ubuntu 22.04”的虚拟机启用它,所以我将使用VBoxManage modifyvm "Ubuntu 22.04" --nested-hw-virt on 命令。

    您应该测试是否可以使用 KVM,以便您可以在 Ubuntu shell 上运行命令 kvm-ok

    为了安装 KVM,您需要执行以下操作:

    1. 在 Ubuntu 22.04 上安装 KVM

    接下来,运行以下命令在 Ubuntu 22.04 上安装 KVM 和其他虚拟化软件包。

    $ sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils
    

    让我们分解我们正在安装的软件包:

    • qemu-kvm:一个开源模拟器和虚拟化包, 提供硬件仿真。
    • virt-manager:基于 Qt 的图形界面,用于通过 libvirt 守护进程管理虚拟机。
    • libvirt-daemon-system:提供配置文件的包 需要运行 libvirt 守护程序。
    • virtinst:一组用于配置和修改虚拟机的命令行实用程序。
    • libvirt-clients:一组客户端库和 API,用于从命令行管理和控制虚拟机和虚拟机管理程序。
    • bridge-utils:一组用于创建和管理桥接设备的工具。
    1. 授权用户

    只有 kvm 用户组的成员才能运行虚拟机。通过键入以下内容将用户添加到 kvm 组:

    $ sudo adduser ‘<username>’ kvm
    

    那你需要停止并禁用docker

    $ sudo service docker stop
    $ sudo systemctl disable docker.service
    $ sudo systemctl disable docker.socket
    

    然后,您重新启动并设置 Docker Desktop

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 2018-06-05
      • 2023-01-16
      • 1970-01-01
      • 2022-06-14
      • 2021-06-23
      • 1970-01-01
      • 2021-05-24
      • 2022-10-05
      相关资源
      最近更新 更多