docker-在 Debian 11 上 Docker 桌面安装后,compose 停止工作
docker-compose stop working after Docker Desktop installation on Debian 11
我在我的 Debian 11 机器上为 Linux 安装了 Docker Desktop。
安装后,我无法使用 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 环境变量。
docker CLI 仍在正常工作。
有人可以帮助我吗?
提前致谢
编辑:
最快更干净的方法:
勾选 “启用 Docker Compose V1/V2 兼容模式” 在 General 部分 Docker 桌面设置。
TLDR:
运行命令docker context ls
发现新主机。
复制DOCKERENDPOINT对应desktop-Linux上下文
通过选择以下两种方法之一来设置 DOCKER_HOST 环境变量:
- 打开一个终端并执行
export DOCKER_HOST={your docker endpoint}
(这仅对当前终端会话有效,系统重启时您将丢失配置)
- 按照 instructions 设置永久环境变量(你必须使用 DOCKER_HOST 作为变量名和你自己的 DOCKER ENDPOINT 作为值,而不是答案中用作示例的值)
长答案和解释:
Docker桌面在Linuxruns on a virtual machine上使用docker组成V2 而不是 docker-compose
(使用它的命令是不带连字符的 docker compose
)。
为避免它屏蔽本地计算机上的 docker 引擎服务并创建一个新的 context.
由于本地 Docker 服务已被屏蔽,它不再 运行 在您的本地计算机上。
如果要使用 Docker 引擎而不是 Docker 桌面,请将 context can be switched 设为默认值。这样您的本地 docker-compose 将像以前一样工作。
另一种方法是将本地 docker-compose 连接到新虚拟机上的 Docker 桌面 主机机.
这可以通过两种方式完成:
- 通过使用环境变量,如上文 TLDR 部分所述。
- 通过将主机地址传递给docker-compose命令:
docker-compose -H {your docker endpoint} COMMAND
我在我的 Debian 11 机器上为 Linux 安装了 Docker Desktop。
安装后,我无法使用 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 环境变量。
docker CLI 仍在正常工作。
有人可以帮助我吗? 提前致谢
编辑:
最快更干净的方法:
勾选 “启用 Docker Compose V1/V2 兼容模式” 在 General 部分 Docker 桌面设置。
TLDR:
运行命令
docker context ls
发现新主机。复制DOCKERENDPOINT对应desktop-Linux上下文
通过选择以下两种方法之一来设置 DOCKER_HOST 环境变量:
- 打开一个终端并执行
export DOCKER_HOST={your docker endpoint}
(这仅对当前终端会话有效,系统重启时您将丢失配置) - 按照 instructions 设置永久环境变量(你必须使用 DOCKER_HOST 作为变量名和你自己的 DOCKER ENDPOINT 作为值,而不是答案中用作示例的值)
- 打开一个终端并执行
长答案和解释:
Docker桌面在Linuxruns on a virtual machine上使用docker组成V2 而不是 docker-compose
(使用它的命令是不带连字符的 docker compose
)。
为避免它屏蔽本地计算机上的 docker 引擎服务并创建一个新的 context.
由于本地 Docker 服务已被屏蔽,它不再 运行 在您的本地计算机上。
如果要使用 Docker 引擎而不是 Docker 桌面,请将 context can be switched 设为默认值。这样您的本地 docker-compose 将像以前一样工作。
另一种方法是将本地 docker-compose 连接到新虚拟机上的 Docker 桌面 主机机.
这可以通过两种方式完成:
- 通过使用环境变量,如上文 TLDR 部分所述。
- 通过将主机地址传递给docker-compose命令:
docker-compose -H {your docker endpoint} COMMAND