Я новичок в 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.