执行:在$PATH中找不到可执行文件com.docker.cli

18

当我在一个容器上运行docker-compose up时,只有一个容器出现了这个错误。

exec: "com.docker.cli": executable file not found in $PATH
The terminal process "/bin/zsh '-c', 'docker logs -f f6557b5dd19d9b2bc5a63a840464bc2b879d375fe72bc037d82a5358d4913119'" failed to launch (exit code: 1).
  1. 我在 Mac 上卸载并重新安装了 Docker Desktop@2.3.0.5。
  2. 从头开始执行 docker-compose build
  3. 其他容器正在运行。
  4. 我遇到了上述错误。
  5. 它以前是可以运行的。我不确定为什么会出现这种情况。我知道我将 docker 升级到了 2.3。
  6. 而且我想我在我的 mac 上接收到了更新。

Dockerfile

FROM tiangolo/uvicorn-gunicorn:python3.8
COPY requirements.txt /app/
RUN pip install -r requirements.txt

COPY ./app /app/app
#COPY config.py /app/app/

docker-compose.yml

->

docker-compose.yml

version: "3"

services:
    postgresql:
        container_name: postgresql
        image: postgres:12
        ports:
            - "5433:5432"
        environment:
            - POSTGRES_USER=${POSTGRES_USER}
            - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
            - POSTGRES_DB=${POSTGRES_DB}
        volumes:
            - ./postgres-data:/var/lib/postgresql/data
    fastapi:
        build:
            context: ./fastapi/
            dockerfile: Dockerfile
        volumes:
            - ./fastapi/app/imgs:/app/app/imgs
        ports:
            - "1001:80"
        depends_on:
            - postgresql
        env_file:
            - .env
    pgadmin:
        container_name: pgadmin
        image: dpage/pgadmin4
        environment:
            - PGADMIN_DEFAULT_EMAIL=pgadmin4@pgadmin.org
            - PGADMIN_DEFAULT_PASSWORD=admin
        ports:
            - "5050:80"
        depends_on:
            - postgresql

    solr:
        build:
            context: ./solr/
            dockerfile: Dockerfile
        restart: always
        ports:
            - "8983:8983"
        volumes:
            - data:/var/solr
volumes:
    data:

更新:当我降级到 Docker Desktop 2.3.0.4 时,它可以正常工作。


1
我遇到了同样的问题,降级到2.3.0.4也帮助了我。我创建了这个问题:https://github.com/docker/for-mac/issues/4956 但后来我通过自动更新将其再次更新到版本2.4.0.0,第二次它继续正常工作。 - RawChid
我认为Dockerfile和docker-compose配置与问题无关,应该从问题中排除。 - skoval00
10个回答

13

更新的回答:

自从VSCode Docker 1.14.0版本后,您现在可以在设置中设置Docker可执行文件路径,这应该在大多数情况下有所帮助。

VSCode 设置, Docker 路径


旧回答 (选项已从Docker Desktop中删除):

桌面版Docker Version 2.4.0.0在我关闭Enable cloud experience功能后可以正常工作。您可以在Preferences-->Command Line下找到它。

云体验


如果您仍然遇到问题,可能需要尝试彻底删除并重新安装Docker,并确保Docker实际正在运行,请参阅此处的其他可能解决方案。


GitHub问题的历史记录:

  • https://github.com/microsoft/vscode-docker/issues/2578
  • https://github.com/microsoft/vscode-docker/issues/2894
  • 状态(2021年6月22日):VSCode版本1.57.0似乎已经再次修复了此问题。

  • 我确认这个解决方案可在MacOS Catalina 10.15.6上使用,并且可以与Docker Desktop 3.1.0兼容。 - GuiFalourd
    在我的Manjaro 21.3.7 Ruah系统上,使用Docker Desktop 4.12.0无法工作。 - karjedavpalaa

    9

    你可能会收到以下错误提示,只是因为你还没有启动 Docker

    exec: "com.docker.cli": executable file not found in $PATH
    

    5
    那么如何开始呢? - MohammadBaqer

    6
    在我的情况下,问题是我安装了docker compose cli,然后又粗暴地将其卸载。这导致上述错误开始出现。
    我按照https://docs.docker.com/cloud/ecs-integration/#install-the-docker-compose-cli-on-linux中的说明,并以root身份运行以下命令,使compose CLI恢复正常:
    curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
    

    以下方法解决了我的问题。

    注意:我不建议安装docker-compose cli来解决此问题,但是,如果您也遇到类似问题,我将分享一些见解。


    这对我有用,而且在我看来应该是解决方案。 - C. Smith
    @apokryfos,你在回答中放置的免责声明引发了很多问题。 - Ate Somebits
    @AteSomebits 为了澄清我的意思,我遇到了这个问题,是因为我安装了docker-compose,然后不正确地卸载了它,这个解决方案应该适用于这种情况。如果您以前从未安装过docker-compose,则现在安装它可能无法解决此问题。 - apokryfos

    2

    请确保在Linux系统上安装了docker CLI,而不仅仅是docker桌面版。您可以使用以下命令进行安装:

    sudo apt install docker.io
    

    1
    对于那些可能遇到类似错误的人,例如:
    ``` exec: "com.docker.cli": 在 $PATH 中找不到可执行文件 当前的 PATH : XXXXXX ```
    你可能需要单独安装 Docker 引擎,至少在我的情况下是这样的(使用 Arch Linux)。谢谢!

    0

    除了Docker Desktop之外,colima是一种在macOS(和Linux)上具有最小设置的容器运行时的替代方案。

    # Homebrew
    brew install colima docker
    
    colima start
    

    现在,您可以像以前一样使用 Docker 命令。

    对于 Docker Compose 命令,您需要安装:

    brew install docker-compose
    

    0

    当我尝试运行minikube tunnel时,遇到了同样的问题。由于我不想重新安装任何东西,最终我是从Docker二进制文件路径运行它(在Windows上它位于'C:\Program Files\Docker\Docker\resources\bin'),然后它成功运行了。


    0
    更新:在Docker Desktop v3.2.1中,“云体验”甚至作为实验性功能也不再存在。这应该不再是一个问题。
    如果您在新版本上仍然遇到此问题,则需要降级到Docker v3.1.0,禁用云体验功能,然后升级到最新版本。

    0

    我也遇到了完全相同的问题。在先启动升级后的Docker,然后运行此命令后问题得到解决。

    dostarr@DOSTARR-M-38LF ~ % docker run busybox
    exec: "com.docker.cli": executable file not found in $PATH
    <started docker>
    dostarr@DOSTARR-M-38LF ~ % docker run busybox                           
    dostarr@DOSTARR-M-38LF ~ % 
    

    -1
    如果已经安装了Docker,但它可能没有启动。因此在终端中输入“docker run -d -p 80:80 docker/getting-started”,这应该可以解决问题。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接