Docker Compose Up дает "Система не может найти указанный файл". ошибка
Я недавно установил Docker Toolbox на мой компьютер с Windows 10.
Однако всякий раз, когда я запускаю docker-compose up
я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "compose\cli\main.py", line 65, in main
File "compose\cli\main.py", line 117, in perform_command
File "compose\cli\main.py", line 849, in up
File "compose\project.py", line 372, in up
File "compose\project.py", line 539, in warn_for_swarm_mode
File "site-packages\docker\api\daemon.py", line 33, in info
File "site-packages\docker\utils\decorators.py", line 47, in inner
File "site-packages\docker\client.py", line 139, in _get
File "site-packages\requests\sessions.py", line 488, in get
File "site-packages\requests\sessions.py", line 475, in request
File "site-packages\requests\sessions.py", line 596, in send
File "site-packages\requests\adapters.py", line 423, in send
File "site-packages\requests\packages\urllib3\connectionpool.py", line 595, in urlopen
File "site-packages\requests\packages\urllib3\connectionpool.py", line 363, in _make_request
File "httplib.py", line 1057, in request
File "httplib.py", line 1097, in _send_request
File "httplib.py", line 1053, in endheaders
File "httplib.py", line 897, in _send_output
File "httplib.py", line 859, in send
File "site-packages\docker\transport\npipeconn.py", line 31, in connect
File "site-packages\docker\transport\npipesocket.py", line 22, in wrapped
File "site-packages\docker\transport\npipesocket.py", line 49, in connect
pywintypes.error: (2, 'WaitNamedPipe', 'The system cannot find the file specified.')
docker-compose returned -1
Обратите внимание, что у меня есть C:\Python27
и C:\Python27\Scripts
в моих пользовательских и системных переменных окружения. Я также попробовал это, используя Python 3, и он все еще не работает.
Ответы
Ответ 1
У нас с вами может быть или не быть одна и та же проблема. В ссылке, размещенной @Haken Lid выше, проблема заключается в том, что переменная среды PATH не имеет правильной версии Python.
НО, для меня проблема была в том, что я не установил все свои переменные среды, запустив
eval $(docker-machine env <vmname>)
прежде чем я запустил docker-compose <any command>
.
Ответ 2
Я просто забыл запустить "Docker for Windows", что привело к этой ошибке.
Ответ 3
Запустите docker-compose
с помощью терминала быстрого запуска Docker. Это решит вашу ошибку.
Docker Quickstart Terminal в основном представляет собой обычную оболочку, но позволяет создавать машину по умолчанию. Он также может быть использован для подключения к другим машинам:
eval $(docker-machine env <MACHINE_NAME>)
Ответ 4
Убедитесь, что Docker for Windows включен и запущен в системном трее. Это была моя проблема.
Ответ 5
Вы можете установить свойства, введя следующие команды:
docker-machine env --shell cmd default
@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i
Ответ 6
У меня была эта проблема со свежей установкой Docker на Windows 10. Моя проблема заключалась в том, что я фактически не запускал Docker первым; Я только что установил MSI и запустил "docker-compose" из командной строки.
Как только я запустил Docker (и выполнил еще несколько шагов после установки, включая выход из системы и перезагрузку компьютера), я смог запустить docker-compose
без проблем.
Ответ 7
Я провел около часа, исправляя эту проблему на своей машине Windows.
- Установите Python (версия 3.6.1 отлично справилась со мной), выбрав опцию "Добавить в PATH".
- Установите Docker.
- Перезагрузите компьютер.
- На панели уведомлений вы увидите значок для Docker. Щелкните его правой кнопкой мыши и выберите
Settings...
. Перейдите к Shared Drives
и выберите C:
диск. Вам будет предложено ввести учетные данные. [*]
- Запустить
docker build .
-
Запустите docker-compose up
.
[*]: Если вы этого не сделаете, вы можете увидеть эту ошибку, если на шаге 6: ERROR: for website Cannot create container for service website: C: drive is not shared. Please share it in Docker for Windows Settings
. Если после ввода ваших учетных данных диск C: не установлен, создайте нового пользователя для вашего компьютера, который имеет полный доступ к папке, в которой вы будете запускать docker-compose up
.
Ответ 8
В Docker Quickstart Terminal я запустил docker-machine env
, и он дал мне:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\TheGeniesis\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
#### Run this command to configure your shell:
eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
Я запустил eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
. Это!
Это решение было скопировано с этой проблемы. Я на Windows 10 Home. Это решило мою проблему.
Ответ 9
Выход из Docker и остановка Docker VM решили это за меня.
Ответ 10
Я столкнулся с этой проблемой после того, как Docker Quickstart Terminal повесил некоторое время на "Ожидание IP..." во время запуска.
При перезагрузке терминала быстрого запуска Docker все исправлено.
Ответ 11
Я использую Docker Toolbox, так как я нахожусь на Windows 8.1. После многих часов устранения неполадок я решил эту проблему:
- Деинсталляция Python 2.7 и установка Python 3.6.4 и добавление его в переменные окружения.
- Перезапустите Docker Quickstart Terminal и выполните команду оттуда.
Ответ 12
Возникла эта проблема в Windows после перезапуска Docker Desktop.
Решением было закрыть окно моего терминала и открыть новое.
Ответ 13
У меня была эта проблема сегодня, вот что исправило ее для меня в Windows.
- Я зашел в настройки Docker и нажал "Сброс" на левой стороне.
- Затем я нажал "Сброс к заводским настройкам..."
- Затем перешел в "Общие диски" и включил общие диски (неважно, какой диск) для Docker, щелкнул "сбросить учетные данные" и вставил мои учетные данные.
Если все работает правильно, флажок останется отмеченным после нажатия "Сбросить учетные данные". Если этого не произойдет, сброс ваших учетных данных приведет к тому, что флажок будет снят, и вам придется снова сбросить настройки Docker до заводских настроек по умолчанию.