运行 docker-compose 时出现的问题

运行 docker-compose 时出现的问题

docker-compose未找到,无法通过 安装apt。如何解决这个问题?

$ docker-compose
bash: /usr/local/bin/docker-compose: No such file or directory

$ sudo apt install docker-compose
Reading package lists... Done
Building dependency tree       
Reading state information... Done
docker-compose is already the newest version (1.21.0-3)

如果你问“我怎么会落得如此下场?”——我曾经遇到过以下问题:

$ docker-compose
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 7, in <module>
  ...
ImportError: No module named ssl_match_hostname

为了修复这个问题,我执行了以下命令:

sudo -H python -m pip uninstall docker docker-compose
sudo apt update
sudo apt upgrade -y
sudo apt install docker docker-compose

答案1

使用以下链接直接从 Dockers 文档阅读安装说明。

https://docs.docker.com/compose/install/

看起来您缺少一些依赖项,并且看起来您必须检查路径或创建符号链接才能使命令正常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.

For example:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

此外,您应该安装“docker-ce”,而不是使用 apt 安装过时的“docker”包。

使用此链接查找有关如何安装正确docker-ce软件包的说明

https://docs.docker.com/install/linux/docker-ce/ubuntu/

答案2

在这种情况下,请尝试创建另一个 Unix 用户,然后从该用户尝试。

如果它有效,可能是您的本地 Unix 用户破坏了.local目录中的 Python 库。

尝试查找您的.local目录:

ls -l ~/.local/lib | grep python

然后尝试禁用它。例如:

mv ~/.local/lib/python3.8 ~/.local/lib/python.bak

我希望这会有所帮助,因为用户经常使用 pip 或其他可能影响特定 Unix 用户的东西来破坏他们的本地 Python 环境。

这样,您就会获得一个干净的 Python 环境,该环境经过 Ubuntu 软件包管理员的充分测试。因此,docker-composeUbuntu 提供的官方软件包应该可以再次使用。

相关内容