Ansible: не удалось импортировать docker или docker-py - нет модуля с именем 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

Я обнаружил следующее сообщение об ошибке, когда попытался загрузить образы docker на свой AWS Ec2 Linux с помощью ansible.

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)"}

Версия докера

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)]

Вот моя часть доступного файла 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.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
18 631
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Вам необходимо установить модуль 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
PPShein 27.12.2018 09:02

попробуйте: sudo yum remove python-pip; sudo easy_install pip; sudo pip install docker

Uku Loskit 27.12.2018 09:25

для 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. Для третьих, так же, как это.

PPShein 27.12.2018 09:28

При чистой установке у меня работало следующее: sudo easy_install pipsudo pip install --ignore-installed docker

Uku Loskit 27.12.2018 09:46

"pip install --ignore-installed docker": это очень помогло

Tim Richardson 03.04.2019 11:03
pip3 install docker для использования с python3
dmytro.poliarush 15.06.2020 15:42

также, если вы хотеть для использования python2 (не рекомендовал бы его на данном этапе), вам нужен пакет docker-py, а не docker EDIT: моя ошибка, docker также для python 2.7, но docker-py для python 2.6

acat 11.12.2021 22:41

Добавьте этот ansible_python_interpreter в свой файл hosts:

Измените [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 <= 2.7

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

У людей, проходящих мимо, была такая же проблема с Ubuntu, установленным через apt, давая 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 на сегодняшний день.

Что сработало для меня для ansible 2.9.1 и Ubuntu 20.10, так это установка python3-docker:

sudo apt-get install python3-docker

У меня была такая же проблема. Я получал ошибку:

fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to import docker or docker-py - No module named docker.

Я использовал следующее:

Ubuntu 20.04
Ansible 2.10.7
Python 3.8.10
pip 20.0.2 (pip3)

Вот как я починил свой:

Итак, сначала я выполнил команду для удаления всех существующих копий библиотек Python docker, docker-py и docker-compose:

pip3 uninstall docker docker-py docker-compose

А затем выполнил команду ниже, чтобы установить библиотека для создания докеров Python вместе с библиотека докеров python

pip3 install docker-compose

Примечание: Пожалуйста, не надо добавьте sudo в команду

Это все.

Другие вопросы по теме