Docker на Windows 10 "драйвер не смог выполнить внешнее подключение на конечной точке"

Я пытаюсь использовать $ docker-compose up -d для проекта и получаю следующее сообщение об ошибке:

ОШИБКА: для API Не удается запустить службу Api: драйвер не смог запрограммировать внешнее подключение на конечной точке Обнаружены ошибки при запуске проекта.

Мне интересно, если это может быть порт? Я пробовал порт 8080 ранее. Первоначально проект был создан на Mac, и я клонировал репозиторий из gitHub.

Ответ 1

Я получил то же сообщение об ошибке на моем Windows 10 Pro/Docker v17.06.1-ce-win24/Docker-Compose v1.14.0, используя Windows Powershell x86 в режиме администратора.

Решением было просто перезапустить Docker.

Ответ 2

Если это произойдет один раз, перезапуск Docker сделает всю работу. В моем случае это происходило каждый раз, когда я перезагружал свой компьютер.

В этом случае отключите быстрый запуск, иначе вы, вероятно, перезапустите Docker при каждом запуске компьютера. Это решение было получено здесь

Ответ 3

Простое перезапуск Docker не решило проблему для меня в Windows 10.

В моем случае я решил проблему, выполнив следующие шаги:

1) Закройте "Docker Desktop"

2) Запустите команды ниже:

net stop com.docker.service
net start com.docker.service

3) Запустите "Docker Desktop" снова

Надеюсь, это поможет кому-то еще.

Ответ 4

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

docker container ls

У вас есть что-то похожее на:

CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

Это список запущенных контейнеров, возьмите идентификатор КОНТЕЙНЕРА (копия Ctrl + C)

Теперь вам нужно завершить процесс (и позволить запустить другой образ), чтобы запустить эту команду.

docker container stop <CONTAINER_ID>

И это все! Теперь вы можете создать контейнер.

Для получения дополнительной информации посетите https://docs.docker.com/get-started/part2/

Ответ 5

В моем случае проблема заключалась в том, что док-контейнер (Nginx) использует порт 80, а IIS - тот же. Настройка другого порта в IIS решает проблему

Ответ 6

Немного поздний ответ, но я оставлю его здесь, это может помочь кому-то еще. На мохаве Mac после многих перезапусков как mac, так и докера мне пришлось сделать sudo apachectl stop.

Ответ 7

  • Самый простой способ решить эту проблему - перезапустить докер. Но в некоторых случаях это может не сработать, даже если у вас нет контейнеров, работающих в порту. Вы можете проверить работающие контейнеры с помощью команды docker ps и увидеть все контейнеры, которые не были очищены, но закрыты перед использованием docker ps -a команда.

Представьте, что существует контейнер с идентификатором контейнера 8e35276e845e. Вы можете использовать команду docker rm 8e35276e845e или docker rm 8e3 для завершения контейнера.Обратите внимание, что первые 3 строки являются идентификатором этого конкретного идентификатора контейнера докера. Таким образом, согласно вышеописанному сценарию 8e3 является идентификатором 8e35276e845e.

  • Если перезапуск не работает, вы можете попробовать изменить порты служб в файле docker-compose.yml и в соответствии с портом apache вы должны изменить порт v-хоста (если есть) Это решит вашу проблему.

Пример:

    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8082:80
    depends_on:
      - mysql_db

следует заменить на

apache_server:
    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8083:80
    depends_on:
      - mysql_db

и конкретный v-хост также должен быть изменен,

Пример (в соответствии с приведенным выше сценарием):

<VirtualHost *:80> 
    ProxyPreserveHost On
    ServerAlias phpadocker.lk
    ProxyPass / http://localhost:8083/
    ProxyPassReverse / http://localhost:8083/
</VirtualHost>

Это поможет вам решить вышеуказанную проблему.

Ответ 8

Для многих пользователей Windows, имеющих такую же проблему, я бы предложил перезагрузить компьютер, потому что в большинстве случаев (по крайней мере для меня) перезапуск только Docker не работает. Поэтому я бы посоветовал вам выполнить следующие шаги:

  1. Перезагрузите компьютер.
  2. Затем запустите PowerShell от имени администратора и выполните следующее:

    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Закрытый

  3. После этого перезапустите Docker.

После выполнения этих шагов вы сможете работать без проблем. Надеюсь, это поможет.

Ответ 9

Я знаю, что ответов уже много, но ни один из них не решил для меня проблему.
Вместо этого я избавился от этого сообщения об ошибке, вернув докер к заводским настройкам по умолчанию:

enter image description here