Centos7 docker-py似乎没有安装

我安装最小的Centos7,然后:ansible,docker,pip和使用pip我安装了docker-py。

版本:
– Docker版本1.6.0,编译8aae715 / 1.6.0
– 可靠的1.9.1
– docker_py-1.2.2

尝试运行一个剧本,例如

 - 名称:redis容器
  泊坞窗:
    名字:myredis
     image:redis
    状态:开始

我得到味精: docker-py似乎并没有安装,但是Ansible Docker模块是必需的。

我看不到问题。 它是CentOS,docker和有用的版本吗?

PS:我禁用了firewalld和SELinux

有任何想法吗? 谢谢

我发现docker-py模块有一些问题。 我通过他们后,我结束了这个:

  - name: Docker-PY pip: name: "{{ item }}" with_items: - six==1.4 - docker-py==1.1.0 

首先,我遇到了你的问题。 解决scheme是明确设置最新版本的六个,如下所述: https : //github.com/docker/docker-py/issues/344 。

之后,我遇到了一个问题(你可能会遇到它),在docker-py 1.2.2版本中有一个bug。 解决方法是按照此处所述指定旧版本: https : //github.com/ansible/ansible-modules-core/issues/1227 。 做一个点卸载docker-py摆脱新版本。

如果你没有使用安装这些,那么这样做:

 [sudo] pip uninstall docker-py [sudo] pip install six==1.4 [sudo] pip install docker-py==1.1.0 

如果您正在使用CentOS7或类似软件,则可能不想通过pip安装未打包的代码。 在这种情况下,最好知道Extras通道有一个包python-docker-py 。 我遇到了这个问题,安装了这个软件包,然后跑到了比赛中。

TL;博士;

检查文件权限,并确保你的用户可以读取/usr/lib/python2.7/site-packages中的python模块

上下文

我最近去了这个问题,但这是一个权限问题。

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

我安装了docker-py(这可能不是你的情况)。

我做了这个angular色:

 - name: install docker-py with pip become: true pip: state=present name='{{ item }}' with_item: - docker-py==1.2.3 - six==1.10.0 

问题

当sudoing时,ansible可以用默认的umask 0077来安装docker-py。结果,没有用户,除root以外,将能够读取docker-py模块文件。

您的playbook将会导致docker-py doesn't seem to be installed, but is required for the Ansible Docker module错误docker-py doesn't seem to be installed, but is required for the Ansible Docker module

请注意以下几点的区别

  • sudo pip install docker-py => /usr/lib/python2.7/site-packages/docker处于模式0700
  • sudo su然后pip install docker-py => /usr/lib/python2.7/site-packages/docker是在模式0755

固定

这将通过将umask=0022parameter passing到pip模块(参见https://github.com/ansible/ansible-modules-core/commit/4b46200477216dbcc54611d1c3e6f0cc83757aaf )来解决。

现在我通过删除模式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