docker-compose 已安装,但 docker compose 无法识别

问题描述 投票:0回答:3

跑步

docker compose up
给出
docker: 'compose' is not a docker command.

但是

docker-compose up
效果很好。

什么给予?我认为 compose 现在应该成为 docker cli 的一部分。

如何运行

docker compose up
并获得与
docker-compose up
相同/相似的行为?

docker --version
->
Docker version 20.10.10, build b485636f4b

docker-compose --version
->
Docker Compose version 2.1.1

docker docker-compose
3个回答
2
投票

这是因为我没有通过docker桌面安装了docker。

我使用 minikube 作为我的 docker 守护进程和基本的 docker cli。但是基本的 cli(通过

brew install docker
安装)没有
docker compose
,那是 docker 桌面的一部分。

您可以在这里找到其余信息:

https://docs.docker.com/compose/cli-command/


0
投票

Docker(在 cli 中是

docker
)和 Docker Compose(在 cli 中是
docker-compose
)是不同的东西。

Docker 是容器运行的引擎

Docker-compose 是这些容器的管理器或编排器

这意味着你不能做

docker compose
,正确的命令是
docker-compose

我认为你对命令感到困惑

使用

docker
启动容器的方式(只有1个容器)是

docker run -ti ubuntu bash

另一方面,您可以使用 Docker compose 执行相同的操作,但您需要一个

docker-compose.yml
文件,其中写入所有配置,然后启动它

docker-compose up

总结一下

Docker 和 docker compose 是两个不同的东西。您可以在这里找到更多信息docker 和 docker-compose 之间有什么区别


0
投票

您已经独立安装了 docker 和 docker-compose。 Compose 是一个 Docker 插件。为了让 Docker 找到插件,它需要知道它的位置。

安装 docker-compose 作为插件的方法有很多种,它们都记录在 docker 安装 compose 插件文档页面中。是的,当您使用 Docker Desktop 时,这会自动为您完成。

我更喜欢单独安装它们并运行以下命令来显示 docker-compose 所在的位置。这也解决了问题。以下内容应该适用于大多数 Linux 发行版:

# Create your local docker config CLI plugins folder, if it doesn't exist
mkdir -p "$HOME"/.docker/cli-plugins

# Create a symlink to docker-compose in that folder
ln -s "$(which docker-compose)" "$docker_compose_plugin_file"

如果您在 macOS 上使用 Homebrew,则可以使用上面的修复方法,也可以使用运行

brew info docker-compose
并查看警告信息指示的推荐解决方案。

==> Caveats
Compose is a Docker plugin. For Docker to find the plugin, add "cliPluginsExtraDirs" to ~/.docker/config.json:
  "cliPluginsExtraDirs": [
      "/opt/homebrew/lib/docker/cli-plugins"
  ]
© www.soinside.com 2019 - 2024. All rights reserved.