Не удалось выполнить скрипт docker-compose при настройке Apache Airflow

#docker #docker-compose #yaml #airflow

Вопрос:

Я использую Docker Compose для настройки воздушного потока Apache и правильно, когда я использую

 docker-compose up airflow-init
 

Я получаю эту ошибку:

 Traceback (most recent call last):
  File "urllib3/connectionpool.py", line 677, in urlopen
  File "urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1252, in request
  File "http/client.py", line 1298, in _send_request
  File "http/client.py", line 1247, in endheaders
  File "http/client.py", line 1026, in _send_output
  File "http/client.py", line 966, in send
  File "docker/transport/unixconn.py", line 43, in connect
  FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "requests/adapters.py", line 449, in send
  File "urllib3/connectionpool.py", line 727, in urlopen
  File "urllib3/util/retry.py", line 403, in increment
  File "urllib3/packages/six.py", line 734, in reraise
  File "urllib3/connectionpool.py", line 677, in urlopen
  File "urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1252, in request
  File "http/client.py", line 1298, in _send_request
  File "http/client.py", line 1247, in endheaders
  File "http/client.py", line 1026, in _send_output
  File "http/client.py", line 966, in send
  File "docker/transport/unixconn.py", line 43, in connect
  urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file   or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "docker/api/client.py", line 205, in _retrieve_server_version
  File "docker/api/daemon.py", line 181, in version
  File "docker/utils/decorators.py", line 46, in inner
  File "docker/api/client.py", line 228, in _get
  File "requests/sessions.py", line 543, in get
  File "requests/sessions.py", line 530, in request
  File "requests/sessions.py", line 643, in send
  File "requests/adapters.py", line 498, in send
  requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "bin/docker-compose", line 3, in <module>
  File "compose/cli/main.py", line 67, in main
  File "compose/cli/main.py", line 123, in perform_command
  File "compose/cli/command.py", line 69, in project_from_options
  File "compose/cli/command.py", line 132, in get_project
  File "compose/cli/docker_client.py", line 43, in get_client
  File "compose/cli/docker_client.py", line 170, in docker_client
  File "docker/api/client.py", line 188, in __init__
  File "docker/api/client.py", line 213, in _retrieve_server_version
  docker.errors.DockerException: Error while fetching server API version: ('Connection   aborted.', FileNotFoundError(2, 'No such file or directory'))
[81] Failed to execute script docker-compose
 

Это файл yaml, который я использую: https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml

И это был урок, которому я следовал: https://www.youtube.com/watch?v=aTaytcxy2Ckamp;t=398s

Комментарии:

1. У вас не установлен docker или он не запущен.

2. Я сделаю более тщательную установку докера. Спасибо

3. Я не могу запустить демон Docker. Я выполняю команду «запуск докера службы sudo», и она говорит «ОК», но затем, когда я запускаю «запуск докера sudo » привет, мир», который является шагом проверки установки, он возвращается с ошибкой. Вероятно, мне придется открыть новый вопрос, но я буду признателен за любую помощь.

Ответ №1:

Возможно, у вас установлен docker, но он не запущен или ваш пользователь не настроен для доступа к нему.

Это та же ошибка, что описана здесь:

https://github.com/docker/compose/issues/7896

Вы можете перепроверить это, запустив docker ps . Если он не показывает никаких процессов (но не выдает ошибок), значит, ваш докер запущен и настроен правильно.

Еще одна вещь, которую следует проверить, правильно ли настроен ваш пользователь для доступа к docker. В Linux вы должны убедиться, что ваш пользователь добавлен в docker группу. Видишь https://docs.docker.com/engine/install/linux-postinstall/

Комментарии:

1. Нужен «sudo chmod 666 /var/run/докер.носок». Спасибо!

2. Будет работать, но это не очень безопасно :). Я думаю, что добавление вашего пользователя в группу docker «безопаснее». И один из шагов в этом руководстве состоит в том, чтобы установить пользователя в контейнере docker таким же, как ваш пользователь «хост», что также позволит ему получить доступ к сокету.