linux 在Debian 11上安装Docker Desktop后,docker-compose停止工作

oiopk7p5  于 2023-03-29  发布在  Linux
关注(0)|答案(2)|浏览(247)

我在Debian 11机器上安装了Docker Desktop for Linux。
安装后,我无法使用docker-compose或laravel sail。错误是:

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

DOCKER_HOST env变量未设置。
Docker CLI仍然可以正常工作。
有人能帮我吗?先谢了

irtuqstp

irtuqstp1#

编辑:

最快、最干净的方法:
在Docker Desktop设置的“常规”部分中选中“启用Docker Compose V1/V2兼容模式”。

顶级域名:

1.运行命令docker context ls以发现新主机。
1.复制与 desktop-Linux 上下文对应的 DOCKER ENDPOINT

  • 通过选择以下两种方法之一来设置 DOCKER_HOST 环境变量:
  • 打开一个终端并执行export DOCKER_HOST={your docker endpoint}(这只对当前终端会话有效,系统重启时配置将丢失)
  • 按照这些instructions设置永久环境变量(必须使用 DOCKER_HOST 作为变量名,使用您自己的 DOCKER ENDPOINT 作为值,而不是答案中用作示例的那些)
    详细回答及说明:
  • Docker Desktop on Linux* 在虚拟机上运行,并使用 docker compose V2 而不是docker-compose(使用它的命令是docker compose,不带连字符)。

为了避免这种情况,我们屏蔽了本地机器上的Docker引擎服务,并创建了一个新的context
由于本地 Docker 服务已被屏蔽,因此它不再在您的本地计算机上运行。
如果你想使用Docker Engine而不是Docker Desktop,可以将context切换到默认context。这样你的本地docker-compose就可以像以前一样工作。
另一种方法是将本地 docker-compose 连接到新虚拟机上的 Docker Desktop 主机。
这可以通过两种方式实现:
1.通过使用环境变量,如上面TLDR部分所述。
1.通过将主机地址传递给 docker-compose 命令:docker-compose -H {your docker endpoint} COMMAND

k97glaaz

k97glaaz2#

  1. docker context ls给予输出DOCKER ENDPOINT:unix:///变量/运行/docker.sock
  2. chmod 666 /变量/运行/docker.sock
    3.然后给予docker-compose up -d
    会成功

相关问题