【问题标题】:Failed to import docker or docker-py - No module named dockerAnsible:无法导入 docker 或 docker-py - 没有名为 docker 的模块
【发布时间】:2019-05-25 06:22:03
【问题描述】:

我已将 DockerAnsible 安装到我的 AWS Ec2 Linux 上,如下所示:

sudo yum update -y
sudo yum install docker -v
sudo service docker start

sudo yum-config-manager --enable epel
sudo yum repolist
sudo yum install ansible

当我尝试使用 ansible 将 docker 图像拉取到我的 AWS Ec2 Linux 时,我发现了以下错误消息。

fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Failed to import docker or docker-py - No module named docker. Try `pip install docker` or `pip install docker-py` (Python 2.6)"}

Docker 版本

Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a215d7133c34aa18e3b72b4a21fd0c6136
 Built:             Fri Oct 26 23:38:19 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Ansible 版本是

ansible 2.6.8
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ec2-user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.6.9 (unknown, Nov  2 2017, 19:21:21) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

这是我的部分 ansible playbook 文件

- name: Pull a container image
  docker_container:
    name: mynodejs
    image: registry.gitlab.com/ppshein/test:latest
    pull: yes
    state: started
    published_ports:
      - 8080:80

请让我知道我错过了在 AWS Ec2 Linux 中配置的内容。

【问题讨论】:

    标签: linux docker amazon-ec2 ansible


    【解决方案1】:

    对我有用的 ansible 2.9.1 和 Ubuntu 20.10 是安装 python3-docker:

    sudo apt-get install python3-docker
    

    【讨论】:

      【解决方案2】:

      您需要安装 Python docker 模块:

      sudo yum install python-pip
      sudo pip install docker
      

      【讨论】:

      • sudo yum install python-pip 可以安装成功。第二个,遇到File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 858, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'pip==7.1.0' distribution was not found and is required by the application
      • 试试:sudo yum remove python-pip; sudo easy_install pip; sudo pip install docker
      • 对于sudo yum remove python-pip,我发现以下消息Failed to set locale, defaulting to C Loaded plugins: priorities, update-motd, upgrade-helper No Match for argument: python-pip No Packages marked for removal。第三,和它一样。
      • 以下内容对我来说是全新安装:sudo easy_install pipsudo pip install --ignore-installed docker
      • "pip install --ignore-installed docker" :这很有帮助
      【解决方案3】:

      将此ansible_python_interpreter 添加到您的“主机”文件中:

      [servers:vars] 更改为[your-group-of-server-names:vars]

      对于 Python >= 2.7

      [servers:vars]
      ansible_python_interpreter=/usr/bin/python3 # For Python3 [default Ubuntu-18.04]
      

      Python

      [servers:vars]
      ansible_python_interpreter=/usr/bin/python # For Python2.7
      

      【讨论】:

        【解决方案4】:

        对于路过的人,通过apt 在 Ubuntu 上安装 2.7.15 的 ubuntu 遇到了同样的问题。通过安装最新版本修复:

        sudo apt install software-properties-common
        sudo apt-add-repository --yes --update ppa:ansible/ansible
        sudo apt install ansible
        

        截至今天,它提供 2.9.2。

        【讨论】:

          【解决方案5】:

          我也有同样的问题。我收到了错误:

          致命:[本地主机]:失败! => {"changed": false, "msg": "无法导入 docker 或 docker-py - 没有名为 docker 的模块。

          我正在使用以下内容:

          Ubuntu 20.04
          Ansible 2.10.7
          Python 3.8.10
          pip 20.0.2 (pip3)
          

          这是我的修复方法

          首先我运行命令删除所有现有的dockerdocker-pydocker-compose python 库副本:

          pip3 uninstall docker docker-py docker-compose
          

          然后运行以下命令将 python docker-compose 库python docker 库

          一起安装
          pip3 install docker-compose
          

          注意:请不要在命令中添加sudo

          就是这样。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-04-10
            • 1970-01-01
            • 2021-11-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多