Centos7 docker-py doesn't seem to be installed

I installed Centos7 minimal and then: ansible, docker, pip and using pip I installed docker-py.

Versions:
– Docker version 1.6.0, build 8aae715/1.6.0
– ansible 1.9.1
– docker_py-1.2.2

  • How to keep docker containers running when they are installed with ansible
  • Issues getting Ansible to work with Boot2Docker
  • Proper way to monitor PostgreSQL running inside a docker container
  • ansible-docker invalid container.yml
  • After downloading image from “Docker Hub”, where should I put my configuration file? In data volume?
  • Why systemd process running in docker container with PID 1 not forwarding SIGTERM to child processes on docker stop
  • Trying to run a playbook, for example

    - name: redis container
      docker:
        name: myredis
        image: redis
        state: started
    

    i get msg: docker-py doesn’t seem to be installed, but is required for the Ansible Docker module.

    I can’t see the problem. Is it the CentOS, docker and ansible version?

    PS: I disabled the firewalld and SELinux

    Any ideas?
    Thanks

  • GUI app in Docker not working
  • Can't run rake db:create in Dockerfile with docker-compose
  • Enable broadcasts between docker containers
  • How use can I use “babel-watch debug” for debugging with chrome?
  • manage more than one Elasticsearch container with docker-compose
  • Uncaught exception 'RedisException' with message 'Connection closed'
  • 3 Solutions collect form web for “Centos7 docker-py doesn't seem to be installed”

    I found a couple problems with the docker-py module. After I worked through them I ended up with this:

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

    First, I ran into your problem. The solution is to explicitly set the most recent version of six as described here: https://github.com/docker/docker-py/issues/344.

    After that, I ran into an issue (you might run into it too) with a bug in the docker-py 1.2.2 version. The workaround is to specify an older version as described here: https://github.com/ansible/ansible-modules-core/issues/1227. Do a pip uninstall docker-py to get rid of the newer version.

    If you aren’t using ansible to install these then do this:

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

    tl;dr;

    check file permissions and make sure your user can read the python module in /usr/lib/python2.7/site-packages

    Context

    I recently went to this is issue but it was a permission problem.

    Note that I used docker 1.9.1, ansible 2.0.1.0 and redhat 7.2.

    I installed docker-py with ansible (this might not be your case).

    I did it with this role:

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

    Problem

    When sudoing, ansible may install docker-py with default umask 0077. As a result, no user, except root, will be able to read docker-py module files.

    Your playbook will result with the docker-py doesn't seem to be installed, but is required for the Ansible Docker module error.

    Notice the differences between:

    • sudo pip install docker-py => /usr/lib/python2.7/site-packages/docker is in mode 0700
    • sudo su then pip install docker-py => /usr/lib/python2.7/site-packages/docker is in mode 0755

    Fix

    This will be fixable with ansible 2.1 by passing the umask=0022 parameter to the pip module (see https://github.com/ansible/ansible-modules-core/commit/4b46200477216dbcc54611d1c3e6f0cc83757aaf).

    For now I fixed it by removing all packages installed in mode 0700:

    pip uninstall -y six docker-py websocket_client
    

    Then reinstalling them by hand:

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

    If you’re working on CentOS7 or similar, you may not want to install unpackaged code via pip. In which case, it’s good to know that the Extras channel has a package python-docker-py. I had this problem, installed that package, and was off to the races.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.