我一直在使用docker-compose,但注意到还有一个docker compose(没有破折号)。 我无法通过谷歌迅速确定这两种形式之间的区别。
有人知道吗?
Docker编写的帮助:
docker-compose的帮助:
我一直在使用docker-compose,但注意到还有一个docker compose(没有破折号)。 我无法通过谷歌迅速确定这两种形式之间的区别。
有人知道吗?
Docker编写的帮助:
docker-compose的帮助:
当前回答
如果你不想做改动,但想要原始的遗留docker-compose功能,也被称为撰写独立和撰写插件,你可以做以下事情:
# Run as root
VERSION=v2.12.2
curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
# Test it
docker-compose
这允许你在shell脚本中继续使用docker-compose。
在本页上检查版本。
其他回答
如果docker还没有包含在docker安装中,docker compose可以作为CLI插件安装在Linux上。
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.tag_name')
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
看到https://docs.docker.com/compose/cli-command/ installing-compose-v2
docker compose(带空格)是一个更新的项目,它将compose与docker项目的其余部分一起迁移到Go。这是docker/compose repo的v2分支。它最初是介绍给Docker Desktop用户的,所以Linux上的Docker用户没有看到这个命令。除了迁移到Go之外,它还使用了复合规范,部分重写可能会导致行为差异。
最初的python项目,称为docker-compose,又名docker/compose repo的v1,现在已经被弃用,开发已经转移到v2。要在Linux上安装v2 docker compose作为CLI插件,受支持的发行版现在可以安装docker-compose-plugin包。例如,在debian上,我运行apt-get install docker- composite -plugin。
如果你不想做改动,但想要原始的遗留docker-compose功能,也被称为撰写独立和撰写插件,你可以做以下事情:
# Run as root
VERSION=v2.12.2
curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
# Test it
docker-compose
这允许你在shell脚本中继续使用docker-compose。
在本页上检查版本。
来自docker船长计划的Brandon Mitchell回复了我在github上的问题,如下:
docker/ composition -cli项目处于中间状态,在docker-cli Linux包的上游版本中不可用,但在docker Desktop中包含。文档页面通常遵循docker/cli中的内容,所以提前发布到Desktop会使文档处于一个困难的位置。我将向Docker团队提出这个问题,看看他们想如何处理它。
更新:来自docker github问题:
Gtardif 2天前评论道 撰写命令参考文档现已激活
新的docker-compose命令参考
除了上面所说的,我还注意到两者之间的一个重要区别。
在我们的设置中,docker-compose。Yml文件位于模板文件夹中。这样我们就可以基于同一个模板运行同一个项目的多个实例。本地实例有自己的文件夹和自己的.env文件(也有自己的卷)。
在模板文件夹中还有一个模板.env文件:使用脚本复制并改编到实例文件夹。
为了工作,码头工人们开始写作。Yml文件看起来像这样,在模板文件夹中:
version: "3"
services:
wordpress:
image: wordpress
container_name: "${COMPOSE_PROJECT_NAME}_wordpress"
env_file:
- ${PWD}/.env
...
和本地实例的.env文件:
# compose file location
COMPOSE_FILE=../templateFolder/docker-compose.yml
# this instance name
COMPOSE_PROJECT_NAME=foo
在这方面:
使用docker-compose,在实例位置读取.env文件,这是预期的 使用docker compose, .env文件在模板位置读取!
为了覆盖这个,我们必须将模板的.env文件重命名为dotEnv。
这里对这种行为进行了简单的描述:https://docs.docker.com/compose/#multiple-isolated-environments-on-a-single-host