3

Я установил Docker в Windows 10, но когда я пытаюсь запустить его с образцом, я получаю:

C:\Program Files\Docker Toolbox\kitematic>docker run hello-world
An error occurred trying to connect: Post http://localhost:2375/v1.21/containers/create: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could b
e made because the target machine actively refused it.

Как исправить?

1 ответ1

2

Я новичок в Docker, поэтому я не слишком уверен в своем ответе, но у меня возникла та же проблема, что вы описали, и вот как я ее решил ...

Сначала я предполагаю, что у вас есть работающая докер-машина, такая как:

C:\Program Files\Docker Toolbox>docker-machine ls
NAME      ACTIVE   DRIVER   STATE     URL                       SWARM   DOCKER    ERRORS
docker    -        hyperv   Running   tcp://192.168.0.22:2376           v1.9.1

Это заняло у меня некоторое время, так как я использую Hyper-V для размещения своей машины Docker. Однако, как только вы здесь, вы можете использовать docker-machine для получения настроек конфигурации:

C:\Program Files\Docker Toolbox>docker-machine config docker
--tlsverify
--tlscacert="C:\\Users\\Ken\\.docker\\machine\\certs\\ca.pem"
--tlscert="C:\\Users\\Ken\\.docker\\machine\\certs\\cert.pem"
--tlskey="C:\\Users\\Ken\\.docker\\machine\\certs\\key.pem"
-H=tcp://192.168.0.22:2376

Чтобы сохранить эти параметры (чтобы вам не приходилось передавать их при каждом вызове docker.exe), вы можете создать следующие переменные среды (нажмите здесь для получения подробной информации о доступных переменных):

set DOCKER_HOST=tcp://192.168.0.22:2376
set DOCKER_TLS_VERIFY=true
set DOCKER_CERT_PATH=C:\Users\Ken\.docker\machine\certs

Я еще не все это написал, но думаю, что создам альтернативу start.sh, который поставляется с Docker Toolbox, так как этот IP-адрес может меняться при каждом запуске виртуальной машины, на которой размещается Docker. ВНИМАНИЕ: на docker-machine вы тут тоже прикрыли! После того, как вы запустите докер, вы можете использовать команду docker-machine env <machine> для автоматической установки этих переменных окружения!

Итак, я создал следующий скрипт bash, чтобы заменить скрипт start.sh:

docker-machine start docker
eval "$(docker-machine.exe env docker)"

Очевидно, вам придется обменять мои подробности на ваши, но я надеюсь, что это полезно. Я знаю, что я ужасно долго находил документацию о том, как заставить этот материал работать на Windows 10.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .