如何为新的 docker compose (v2) 命令赋予 docker-compose 别名?

如何为新的 docker compose (v2) 命令赋予 docker-compose 别名?

我注意到 docker-compose 1.x 正在逐渐被放弃,以支持新的 v2:
https://www.docker.com/blog/announcing-compose-v2-general-availability/

因此,我删除了我的docker-composev1.x 命令(我认为这是可行的方法,但我找不到旧的文档关于如何安装/卸载docker-compose):

$ sudo rm -rf /usr/local/bin/docker-compose

然后我按照文档

$ sudo apt-get install docker-compose-plugin

瞧瞧:

$ docker compose version
Docker Compose version v2.5.0

但我以前调用docker-compose(带破折号)的所有脚本都不再起作用。显然。

因此我的问题是:我怎样才能将新的撰写命令别名为docker-compose

将此行添加到文件是否足够.bashrc

$ echo "alias docker-compose='docker compose'" >> ~/.bashrc
$ source ~/.bashrc

答案1

最简单的解决方案是创建一个别名,就像您在问题中所述的那样:

alias docker-compose='docker compose'

这会正常运行。

此外,我建议使用apt包安装 Docker Compose docker-compose-plugin,而不是通过手动安装curl,除非您有非常好的理由这样做。

通过安装apt(这是 Ubuntu 上的推荐方式),您可以确保可以使用新的 Docker 版本apt upgrade甚至无人值守升级自动更新 Docker Compose。

答案2

在大多数情况下,添加别名.bashrc都会起作用,但对于某些脚本可能不起作用。

docker-compose我认为创建一个名为“您”的小脚本PATH并只传递参数是docker compose解决问题的更好方法。

这个答案可能有帮助: https://stackoverflow.com/a/72187587/11418220

答案3

对我来说不是 100% 清楚,但有两种方法可以在文档

  1. 前者,apt install docker-compose-plugin

  2. 第二种方法(用户可选择第一种方法或第二种方法,但不能同时使用)是使用 手动下载二进制文件,curl但我认为它遗漏了一些细节,尤其是新创建的文件夹不在默认的 中path。下面是我如何进行全局安装(即/usr/local/...):

$ sudo apt-get remove --purge docker-compose-plugin

$ sudo su

# DOCKER_CONFIG_CLI="/usr/local/lib/docker/cli-plugins"

# mkdir -p $DOCKER_CONFIG_CLI

# curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG_CLI/docker-compose

# chmod +x $DOCKER_CONFIG_CLI/docker-compose

# cd /usr/local/bin

# mv docker-compose docker-compose_v1 # only if you had a previous docker-compose version!

# ln -s /usr/local/lib/docker/cli-plugins/docker-compose

# exit

$ which docker-compose
/usr/local/bin/docker-compose

或者一次性:

#!/bin/bash

apt-get update \
&& apt-get remove --purge docker-compose-plugin \
&& DOCKER_CONFIG_CLI="/usr/local/lib/docker/cli-plugins" \
&& mkdir -p $DOCKER_CONFIG_CLI \
&& curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG_CLI/docker-compose \
&& chmod +x $DOCKER_CONFIG_CLI/docker-compose \
&& cd /usr/local/bin \
&& mv docker-compose docker-compose_v1 \
&& ln -s /usr/local/lib/docker/cli-plugins/docker-compose \
&& which docker-compose

然后你就得到了两种调用方式,过渡更加平滑:

$ docker compose version
Docker Compose version v2.5.0
$ docker-compose --version
# or: docker-compose version
Docker Compose version v2.5.0

相关内容