为什么安装了 Docker 而没有安装 Docker Compose?
Why is Docker installed but not Docker Compose?
我已经通过 运行ning 以下命令在 CentOS 7 上安装了 docker,
curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world
注意:helloworld 运行正确无误。
然而,当我尝试 运行 docker-compose
(docker-compose.yml 存在且有效)时,它仅在 CentOS 上给我错误(Windows版本适用于 docker-compose 文件)
/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
安装 docker 并不意味着您已经安装了 docker-compose。它有先决条件,你已经安装了你已经完成的 docker 引擎。之后你就可以安装 docker-compose following this link for Centos 7.
首先请检查是否安装了docker-compose,
$ docker-compose -v
如果没有安装,请参考安装指南https://docs.docker.com/compose/install/
如果已安装,请授予二进制文件可执行权限。
$ chmod +x /usr/local/bin/docker-compose
检查这是否有效。
您还需要安装 Docker Compose。参见manual。以下是您需要执行的命令
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
docker-compose 目前是一个利用 docker(-engine) 的工具,但未包含在 docker.
的分发版中
安装手册link如下:
https://docs.docker.com/compose/install/
长话短说:
curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/bin/docker-compose
(1.8.0以后会改)
我正在 Raspberry Pi 3、Raspbian OS 上安装。 curl
方法未解析为有效响应。还说{error: Not Found}
,我看了一下URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7l
也是无效的。我猜那里没有建筑。
本指南 https://github.com/hypriot/arm-compose 对我有用。
sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 37BBEE3F7AD95B3F
sudo apt-get update
sudo apt-get install docker-compose
我正在 Raspberry Pi 3 上安装 Raspbian 8。curl 方法对我来说失败了(在请求 docker-compose --version
时出现 line 1: Not: command not found
错误) @sunapi386 的解决方案似乎有点过时,所以我尝试了这个有效的方法:
首先清理之前的工作:
sudo rm /usr/local/bin/docker-compose
sudo pip uninstall docker-compose
然后关注this guidance re docker-compose on Rpi:
sudo apt-get -y install python-pip
sudo pip install docker-compose
对我来说(2017 年 11 月 1 日)这导致对 docker-compose --version
的以下响应:
docker-compose version 1.16.1, build 6d1ac219
如果您通过将他们的官方存储库添加到您的存储库列表来安装 docker,例如:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
就这样:
$ sudo apt-get install docker-compose
如果是基于 RHEL 的发行版/Fedora:
$ sudo dnf install docker-compose
我建议在 Mac 上使用官方 pkg。我想 docker-compose 默认情况下不再包含在 docker 中:https://docs.docker.com/toolbox/toolbox_install_mac/
参考上面给出的答案(我没有足够的声誉单独参考个别解决方案,因此我在这里集体这样做),我想补充一些重要的建议:
docker-compose 你可以从存储库安装(如果你在存储库中有这个包,如果没有你可以用这个包添加到系统一个存储库)或者下载二进制文件在项目官网使用curl-totourial-src:https://docs.docker.com/compose/install/
docker-compose 来自存储库的版本是 1.8.0(至少在我看来是这样)。这个 docker-compose 版本不支持版本 3 中的配置文件。它只有 version = <2 支持。在项目的官方站点中,建议使用版本 3 中的容器配置 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. From my own experience with work in the docker I recommend using container configurations in version 3 - there are more configuration options to use than in versions <3. If you want to use the configurations configurations in version 3 you have to do update / install docker-compose to the version of at least 1.17 - preferably the latest stable. The official site of the project is toturial how to do this process - src: https://docs.docker.com/compose/install/
当您尝试手动删除旧的 docker-compose 二进制文件时,您可以在默认路径 /usr/local/bin/docker-compose
中获得有关丢失文件的信息。在我的例子中,docker-compose 在默认路径 /usr/bin/docker-compose 中。在这种情况下,我建议您使用系统中的查找工具来查找二进制文件 docker-compose - 示例语法:sudo find / -name 'docker-compose'
。它帮助了我。由于这个原因,我删除了旧的 docker-compose 版本并将稳定版添加到系统中 - 我使用 curl 工具下载二进制文件 docker-compose,将其放在正确的路径中并提供正确的权限 - 所有这些过程都已在上面的帖子中进行了描述。
此致,
亚当
以上解决方案对我不起作用。但我发现这个有效:
sudo apt-get update -y && sudo apt-get install -y python3-pip python3-dev
sudo apt-get remove docker docker-engine docker.io
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo pip3 install docker-compose
#sudo docker-compose -f docker-compose-profess.yml pull ofw
sudo usermod -a -G docker $USER
sudo reboot
我在使用 debian,我发现了一些很自然的事情:
apt-get install docker-compose
它完成了工作
(未在 centos 上测试)
在 Linux,您可以从 GitHub 上的 Compose 存储库发布页面下载 Docker Compose 二进制文件。按照 link 中的说明进行操作,其中涉及 运行 终端中的 curl 命令以下载二进制文件。这些 step-by-step 说明也包含在下面。
1:运行 此命令下载 Docker 的当前稳定版本 Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装不同版本的 Compose,请将 1.26.2 替换为您要使用的 Compose 版本。
2:对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
Note: If the command docker-compose fails after installation, check
your path. You can also create a symbolic link to /usr/bin or any
other directory in your path.
只需使用 brew:
brew install docker-compose
如果 docker-compose 已经存在于 /usr/local/bin:
ls -alt /usr/local/bin/ | grep docker-compose
> lrwxr-xr-x 1 root wheel 77 Mar 11 10:39 docker-compose -> /Applications/Docker.app/Contents/Resources/bin/docker-compose/docker-compose
然后更新你的 .bash_profile 路径最后 /usr/local/bin
:
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH:/usr/local/bin"
运行:
source ~/.bash_profile
并检查:
echo $PATH
> ...
which docker-compose
> /usr/local/bin/docker-compose
docker-compose
如果你想自动安装 docker-compose 最新版本,只需 运行:
export docker_compose_latest=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/docker/compose/releases/latest | grep -o '[^/]*$')
curl -L "https://github.com/docker/compose/releases/download/${docker_compose_latest}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
它将安装最新版本的 docker-compose。 Official installing way需要您亲手获得的版本。但是我写了一个脚本,自动为你获取最新版本。
尝试根据 docker docs(对于 Linux)使用 curl
在 CentOS 上安装 docker-compose。在这些步骤之后它返回了一个错误
docker-compose -v
/usr/local/bin/docker-compose: line 1: Not: command not found
有趣的是 docker-compose
文件字面上只包含第 1 行的“未找到”(它应该是二进制文件)
cat /usr/local/bin/docker-compose
Not Found
这意味着 github link 我试图从 curl 不存在。我不成功的 link 是:
sudo curl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
运行 uname -s
和 uname -m
本地你可以看到需要添加到下载的内容 url
uname -s
Linux
uname -m
x86_64
在浏览器中尝试 url
https://github.com/docker/compose/releases/download/2.2.2/docker-compose-linux-x86_64
显示找不到页面。
他们在版本中添加了“v”的问题,如 v2.2.2
。所以下载 url 应该是“v”
https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64
。他们的发布:https://github.com/docker/compose/releases/
这有效(注意 v2.2.2)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
Docker Compose version v2.2.2
2022 年 5 月更新
自 2022 年 4 月 docker compose V2 正式发布,现在是 docker 桌面的一部分。您可以看到所有相关信息 here。
Compose V1 现已标记为已弃用。
原回答:
docker compose v1 是单独安装的。要安装 v1,请按照说明 here.
docker compose v2 目前是一个单独的安装,但 will be integrated into docker at some point, when it's ready. It has been conceived as a docker plugin. At this time, if you want docker compose v2, since this 提交你可以做:
sudo apt update && apt install docker-compose-plugin
使用 apt 或 yum 的等效工具。这将安装新的 docker compose V2 作为插件。
他们更改了语法。现在是这样写的:
docker compose [OPTIONS] COMMAND
docker compose ps
现在 compose 是插件!但是其他文档页面有旧语法。
我应该如何支持兼容性?!
安装Docker Compose v1,您可以按如下方式安装:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
安装Docker Compose v2,可以参考here。
新旧compose命令兼容性docker-compose,可参考here.
我已经通过 运行ning 以下命令在 CentOS 7 上安装了 docker,
curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world
注意:helloworld 运行正确无误。
然而,当我尝试 运行 docker-compose
(docker-compose.yml 存在且有效)时,它仅在 CentOS 上给我错误(Windows版本适用于 docker-compose 文件)
/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
安装 docker 并不意味着您已经安装了 docker-compose。它有先决条件,你已经安装了你已经完成的 docker 引擎。之后你就可以安装 docker-compose following this link for Centos 7.
首先请检查是否安装了docker-compose,
$ docker-compose -v
如果没有安装,请参考安装指南https://docs.docker.com/compose/install/ 如果已安装,请授予二进制文件可执行权限。
$ chmod +x /usr/local/bin/docker-compose
检查这是否有效。
您还需要安装 Docker Compose。参见manual。以下是您需要执行的命令
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
docker-compose 目前是一个利用 docker(-engine) 的工具,但未包含在 docker.
的分发版中安装手册link如下: https://docs.docker.com/compose/install/
长话短说:
curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/bin/docker-compose
(1.8.0以后会改)
我正在 Raspberry Pi 3、Raspbian OS 上安装。 curl
方法未解析为有效响应。还说{error: Not Found}
,我看了一下URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7l
也是无效的。我猜那里没有建筑。
本指南 https://github.com/hypriot/arm-compose 对我有用。
sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 37BBEE3F7AD95B3F
sudo apt-get update
sudo apt-get install docker-compose
我正在 Raspberry Pi 3 上安装 Raspbian 8。curl 方法对我来说失败了(在请求 docker-compose --version
时出现 line 1: Not: command not found
错误) @sunapi386 的解决方案似乎有点过时,所以我尝试了这个有效的方法:
首先清理之前的工作:
sudo rm /usr/local/bin/docker-compose
sudo pip uninstall docker-compose
然后关注this guidance re docker-compose on Rpi:
sudo apt-get -y install python-pip
sudo pip install docker-compose
对我来说(2017 年 11 月 1 日)这导致对 docker-compose --version
的以下响应:
docker-compose version 1.16.1, build 6d1ac219
如果您通过将他们的官方存储库添加到您的存储库列表来安装 docker,例如:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
就这样:
$ sudo apt-get install docker-compose
如果是基于 RHEL 的发行版/Fedora:
$ sudo dnf install docker-compose
我建议在 Mac 上使用官方 pkg。我想 docker-compose 默认情况下不再包含在 docker 中:https://docs.docker.com/toolbox/toolbox_install_mac/
参考上面给出的答案(我没有足够的声誉单独参考个别解决方案,因此我在这里集体这样做),我想补充一些重要的建议:
docker-compose 你可以从存储库安装(如果你在存储库中有这个包,如果没有你可以用这个包添加到系统一个存储库)或者下载二进制文件在项目官网使用curl-totourial-src:https://docs.docker.com/compose/install/
docker-compose 来自存储库的版本是 1.8.0(至少在我看来是这样)。这个 docker-compose 版本不支持版本 3 中的配置文件。它只有 version = <2 支持。在项目的官方站点中,建议使用版本 3 中的容器配置 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. From my own experience with work in the docker I recommend using container configurations in version 3 - there are more configuration options to use than in versions <3. If you want to use the configurations configurations in version 3 you have to do update / install docker-compose to the version of at least 1.17 - preferably the latest stable. The official site of the project is toturial how to do this process - src: https://docs.docker.com/compose/install/
当您尝试手动删除旧的 docker-compose 二进制文件时,您可以在默认路径
/usr/local/bin/docker-compose
中获得有关丢失文件的信息。在我的例子中,docker-compose 在默认路径 /usr/bin/docker-compose 中。在这种情况下,我建议您使用系统中的查找工具来查找二进制文件 docker-compose - 示例语法:sudo find / -name 'docker-compose'
。它帮助了我。由于这个原因,我删除了旧的 docker-compose 版本并将稳定版添加到系统中 - 我使用 curl 工具下载二进制文件 docker-compose,将其放在正确的路径中并提供正确的权限 - 所有这些过程都已在上面的帖子中进行了描述。
此致, 亚当
以上解决方案对我不起作用。但我发现这个有效:
sudo apt-get update -y && sudo apt-get install -y python3-pip python3-dev
sudo apt-get remove docker docker-engine docker.io
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo pip3 install docker-compose
#sudo docker-compose -f docker-compose-profess.yml pull ofw
sudo usermod -a -G docker $USER
sudo reboot
我在使用 debian,我发现了一些很自然的事情:
apt-get install docker-compose
它完成了工作 (未在 centos 上测试)
在 Linux,您可以从 GitHub 上的 Compose 存储库发布页面下载 Docker Compose 二进制文件。按照 link 中的说明进行操作,其中涉及 运行 终端中的 curl 命令以下载二进制文件。这些 step-by-step 说明也包含在下面。
1:运行 此命令下载 Docker 的当前稳定版本 Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装不同版本的 Compose,请将 1.26.2 替换为您要使用的 Compose 版本。
2:对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
Note: If the command docker-compose fails after installation, check your path. You can also create a symbolic link to /usr/bin or any other directory in your path.
只需使用 brew:
brew install docker-compose
如果 docker-compose 已经存在于 /usr/local/bin:
ls -alt /usr/local/bin/ | grep docker-compose
> lrwxr-xr-x 1 root wheel 77 Mar 11 10:39 docker-compose -> /Applications/Docker.app/Contents/Resources/bin/docker-compose/docker-compose
然后更新你的 .bash_profile 路径最后 /usr/local/bin
:
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH:/usr/local/bin"
运行:
source ~/.bash_profile
并检查:
echo $PATH
> ...
which docker-compose
> /usr/local/bin/docker-compose
docker-compose
如果你想自动安装 docker-compose 最新版本,只需 运行:
export docker_compose_latest=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/docker/compose/releases/latest | grep -o '[^/]*$')
curl -L "https://github.com/docker/compose/releases/download/${docker_compose_latest}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
它将安装最新版本的 docker-compose。 Official installing way需要您亲手获得的版本。但是我写了一个脚本,自动为你获取最新版本。
尝试根据 docker docs(对于 Linux)使用 curl
在 CentOS 上安装 docker-compose。在这些步骤之后它返回了一个错误
docker-compose -v
/usr/local/bin/docker-compose: line 1: Not: command not found
有趣的是 docker-compose
文件字面上只包含第 1 行的“未找到”(它应该是二进制文件)
cat /usr/local/bin/docker-compose
Not Found
这意味着 github link 我试图从 curl 不存在。我不成功的 link 是:
sudo curl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
运行 uname -s
和 uname -m
本地你可以看到需要添加到下载的内容 url
uname -s
Linux
uname -m
x86_64
在浏览器中尝试 url
https://github.com/docker/compose/releases/download/2.2.2/docker-compose-linux-x86_64
显示找不到页面。
他们在版本中添加了“v”的问题,如 v2.2.2
。所以下载 url 应该是“v”
https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64
。他们的发布:https://github.com/docker/compose/releases/
这有效(注意 v2.2.2)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
Docker Compose version v2.2.2
2022 年 5 月更新
自 2022 年 4 月 docker compose V2 正式发布,现在是 docker 桌面的一部分。您可以看到所有相关信息 here。 Compose V1 现已标记为已弃用。
原回答:
docker compose v1 是单独安装的。要安装 v1,请按照说明 here.
docker compose v2 目前是一个单独的安装,但 will be integrated into docker at some point, when it's ready. It has been conceived as a docker plugin. At this time, if you want docker compose v2, since this 提交你可以做:
sudo apt update && apt install docker-compose-plugin
使用 apt 或 yum 的等效工具。这将安装新的 docker compose V2 作为插件。
他们更改了语法。现在是这样写的:
docker compose [OPTIONS] COMMAND
docker compose ps
现在 compose 是插件!但是其他文档页面有旧语法。
我应该如何支持兼容性?!
安装Docker Compose v1,您可以按如下方式安装:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
安装Docker Compose v2,可以参考here。
新旧compose命令兼容性docker-compose,可参考here.