Centos7 docker py不';似乎没有安装

Centos7 docker py不';似乎没有安装,docker,ansible,centos7,Docker,Ansible,Centos7,我安装了Centos7 minimal,然后:ansible、docker、pip,并使用pip安装了docker py 版本: -Docker版本1.6.0,内部版本8aae715/1.6.0 -表1.9.1 -docker_py-1.2.2 例如,尝试运行剧本 - name: redis container docker: name: myredis image: redis state: started -名称:redis容器 码头工人: 姓名:myredis

我安装了Centos7 minimal,然后:ansible、docker、pip,并使用pip安装了docker py

版本:
-Docker版本1.6.0,内部版本8aae715/1.6.0
-表1.9.1
-docker_py-1.2.2

例如,尝试运行剧本

- name: redis container docker: name: myredis image: redis state: started -名称:redis容器 码头工人: 姓名:myredis 图片:redis 国家:开始 我得到消息:
docker py
似乎没有安装,但Ansible docker模块需要安装

我看不出有什么问题。是CentOS、docker和ansible版本吗

PS:我禁用了防火墙D和SELinux

有什么想法吗?
谢谢

我发现docker py模块有几个问题。在我处理完这些问题后,我得出了以下结论:

  - name: Docker-PY
    pip:
      name: "{{ item }}"
    with_items:
    - six==1.4
    - docker-py==1.1.0
首先,我遇到了你的问题。解决方案是显式设置six的最新版本,如下所述:

之后,我在docker py 1.2.2版本中遇到了一个问题(您可能也会遇到)。解决方法是指定较旧的版本,如下所述:。执行pip卸载docker py以摆脱较新版本

如果您没有使用ansible安装这些,请执行以下操作:

[sudo] pip uninstall docker-py
[sudo] pip install six==1.4
[sudo] pip install docker-py==1.1.0
tl;博士 检查文件权限并确保用户可以读取/usr/lib/python2.7/site-packages中的python模块

上下文 我最近谈到了这个问题,但这是一个许可问题

注意,我使用了docker 1.9.1、ansible 2.0.1.0和redhat 7.2

我用ansible安装了docker py(这可能不是您的情况)

我是这样做的:

- name: install docker-py with pip
  become: true
  pip: state=present name='{{ item }}'
  with_item:
    - docker-py==1.2.3
    - six==1.10.0
问题 在sudo时,ansible可以使用默认的umask 0077安装docker py。因此,除root用户外,没有任何用户能够读取docker py模块文件

您的剧本将导致
docker py似乎未安装,但Ansible docker模块需要
错误

请注意以下各项之间的差异:

  • sudo-pip-install-docker-py
    =>
    /usr/lib/python2.7/site-packages/docker
    处于模式0700
  • sudo su
    然后
    pip安装docker py
    =>
    /usr/lib/python2.7/site packages/docker
    处于模式0755
修理 ansible 2.1可通过将
umask=0022
参数传递给pip模块(请参阅)解决此问题

现在,我通过删除在模式0700下安装的所有软件包来修复它:

pip uninstall -y six docker-py websocket_client
然后手动重新安装:

sudo su
# now umask is 0022
pip install six==1.10.0 docker-py==1.2.3

如果您使用的是CentOS7或类似产品,则可能不希望通过pip安装未打包的代码。在这种情况下,最好知道Extras频道有一个包
PythonDocker py
。我遇到了这个问题,安装了那个软件包,然后去参加比赛。

最近我遇到了这个问题的一个变体。这不是因为我使用了
sudo
来安装模块,而是相反

无论出于何种原因,我选择使用pip的
--user
标志安装
docker
,然后不幸地“想到”使用
-b
--been
选项


这导致运行我的playbook的提升Ansible实例无法使用“显然”安装的
docker
模块。分享,以防有人“有那么一天”,后来偶然发现这一点。希望它能帮助你,因为我用一点“愚蠢的税”支付了这个提醒,希望对我们双方都足够了。:)

你能出示你的文件吗?我没有文件。我正在使用ansible playbook-I hosts.ini playbook.yml这个剧本有一个我在帖子中写的任务。你是说别的还是别的?就是这样。非常感谢。