我已经使用“pip2.7 install docker-compose”安装了 docker-compose,但是当我尝试以“普通”用户身份运行它时,我收到以下错误消息:
mike@hugin:~/Tobedeleted$ docker-compose -v
Traceback (most recent call last):
File "/usr/local/bin/docker-compose", line 7, in <module>
from compose.cli.main import main
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 17, in <module>
from . import errors
File "/usr/local/lib/python2.7/dist-packages/compose/cli/errors.py", line 10, in <module>
from docker.errors import APIError
File "/usr/local/lib/python2.7/dist-packages/docker/__init__.py", line 2, in <module>
from .api import APIClient
File "/usr/local/lib/python2.7/dist-packages/docker/api/__init__.py", line 2, in <module>
from .client import APIClient
File "/usr/local/lib/python2.7/dist-packages/docker/api/client.py", line 11, in <module>
from .build import BuildApiMixin
File "/usr/local/lib/python2.7/dist-packages/docker/api/build.py", line 9, in <module>
from .. import utils
File "/usr/local/lib/python2.7/dist-packages/docker/utils/__init__.py", line 2, in <module>
from .build import tar, exclude_paths
File "/usr/local/lib/python2.7/dist-packages/docker/utils/build.py", line 4, in <module>
from .utils import create_archive
File "/usr/local/lib/python2.7/dist-packages/docker/utils/utils.py", line 18, in <module>
from .. import tls
File "/usr/local/lib/python2.7/dist-packages/docker/tls.py", line 5, in <module>
from .transport import SSLAdapter
File "/usr/local/lib/python2.7/dist-packages/docker/transport/__init__.py", line 3, in <module>
from .ssladapter import SSLAdapter
File "/usr/local/lib/python2.7/dist-packages/docker/transport/ssladapter.py", line 21, in <module>
from backports.ssl_match_hostname import match_hostname
ImportError: No module named ssl_match_hostname
此用户是 docker 组的一部分,可以毫无问题地运行“docker ps”等。
如果我尝试运行“sudo docker-compose -v”,我会得到同样的错误。
但是,如果我先运行“sudo su -”,然后发出“docker-compose -v”,我会得到预期的输出。
root@hugin:~# docker-compose -v
docker-compose version 1.11.2, build dfed245
我已经尝试过对 docker-compose、ssl_match_hostname 的各个部分和所有部分进行“pip uninstall”,然后重新安装,但似乎没有任何解决办法。
我现在完全陷入困境 - 有什么想法吗?
你必须使用此命令重新安装 docker-compose:
curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
它对我有用
您应该检查 docker-compose 是否存在、是否已安装并正在运行:
$ whereis docker-compose
$ docker-compose --version
通过运行检查是否存在符号链接
pip -> pip2.7
或pip -> pip3.6
:
$ sudo pip install docker-compose
更新到
Python 3.10
后,这发生在我身上。
我通过重新安装 docker-compose
来修复它:
pip install docker-compose
注意:在 Manjaro 上运行
yay -S docker-compose
对我来说不起作用。
Docker Compose 现在作为 Docker 插件运行。我建议使用:
sudo apt-get install docker-compose-plugin
然后使用
docker compose
代替 docker-compose
docker compose pull
如果你有 docker 24
检查执行 ansible 作业的远程主机上的权限。
确保“其他”用户具有模块包的执行权限。
sudo chmod -R o=rx /usr/local/lib/python2.7/dist-packages/
首先检查/var/run/下是否有docker sock文件。
# ls -l /var/run/docker.sock
# docker info
如果文件不存在,则重启docker服务。如果仍然不存在,请重新启动节点并查看是否有该文件。
也为我工作。
问题 root@ashish:/DOCKER# docker-compose -v 回溯(最近一次调用最后一次): 文件“/usr/local/bin/docker-compose”,第 5 行,位于 从 compose.cli.main 导入 main ModuleNotFoundError:没有名为“compose”的模块
解决方案
curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-
uname -s
-uname -m
> /usr/local/bin/docker-compose
执行上述命令后,输出应如下所示。
root@ashish:/DOCKER# docker-compose -v docker-compose 版本 1.13.0,内部版本 1719ceb
谢谢 阿什什·贾