Ansible:无法导入 docker 或 docker-py - 没有名为 docker 的模块

PPS*_*ein 3 linux amazon-ec2 ansible docker

我已经安装Docker并安装Ansible到我的 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
Run Code Online (Sandbox Code Playgroud)

当我尝试docker使用 ansible将图像拉到我的 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)"}
Run Code Online (Sandbox Code Playgroud)

码头工人版本

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
Run Code Online (Sandbox Code Playgroud)

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)]
Run Code Online (Sandbox Code Playgroud)

这是我的 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
Run Code Online (Sandbox Code Playgroud)

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

小智 12

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

sudo apt-get install python3-docker
Run Code Online (Sandbox Code Playgroud)


Uku*_*kit 5

您需要安装 Pythondocker模块:

sudo yum install python-pip
sudo pip install docker
Run Code Online (Sandbox Code Playgroud)

  • 以下在干净安装时对我有用:`sudo easy_install pip``sudo pip install --ignore-installed docker` (2认同)