@CarlosRafaelRamirez упомянул нужное место, но я добавлю несколько подробностей и предоставил более подробные пошаговые инструкции, поскольку разработчики Windows часто не владеют экосистемой Linux.
Отказ от ответственности: следующие шаги позволяют ударить Docker Remote API от хоста Windows, но, пожалуйста, имейте в виду две вещи:
- Это не должно быть сделано в производстве, как это делает Докер машину очень не безопасный.
- Текущее решение отключает большую часть
docker-machine
и все функциональные возможности CLI docker
. docker-machine ssh
остается работоспособным, заставляя его SSH в докерную машину для доступа к командам docker
.
Решение Теперь, вот шаги, необходимые для переключения Docker API для не-TLS порт. (Docker имя машины считается «по умолчанию». Если имя компьютера имеет другое имя, вам нужно будет указать его в командах ниже.)
- Start «Docker Quickstart Терминал». Он запускает оболочку Bash и является местом, где будут выполняться все следующие команды. Запустите команду
docker-machine ip
и отметьте IP-адрес хост-машины докера. Затем сделайте
docker-machine ssh
cd /var/lib/boot2docker
sudo vi profile
Это начинается «VI» редактора в режиме повышенной привилегии, необходимые для редактирования файла «профиль», где настройки хоста Docker есть. (Если в качестве пользователя Windows вы не знакомы с vi, вот на нем есть супер-базовый курс крушения. Когда файл открыт в vi, vi не находится в режиме редактирования. Нажмите «i», чтобы начать редактирование. внесите изменения. После того, как вы внесли все изменения, нажмите Esc
, а затем ZZ
, чтобы сохранить изменения и выйти из vi. Если вам нужно выйти из vi без сохранения изменений, после Esc
введите :q!
и нажмите Enter. ":" включает режим командной строки vi, и команда «q!» означает выход без сохранения. Подробная информация команды vi - here.)
- Используя vi, измените DOCKER_HOST на
DOCKER_HOST='-H tcp://0.0.0.0:2375'
и установите DOCKER_TLS=no
. Сохраните изменения, как описано выше.
exit
, чтобы выйти из сеанса SSH.
docker-machine restart
После doocker машина перезагрузки, ваш sould быть в состоянии поразить докер API URL, как http://dokerMachineIp:2375/containers/json?all=1
и получить действительный JSON обратно.
Это конец шагов, необходимых для достижения главной цели.
Однако, если в этот момент вы попытаетесь запустить docker-machine config
или docker images
, вы увидите сообщение об ошибке, указывающее, что клиент CLI докеры пытается добраться до Docker через старые настройки порта/TLS, что понятно. Что ожидали, не мне, хотя, является то, что даже после того, как я выполнил все Getting Started направления, и побежал export DOCKER_HOST=tcp://192.168.99.101:2375
и export DOCKER_TLS_VERIFY=0
, в результате чего
$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.99.101:2375
DOCKER_MACHINE_NAME=default
DOCKER_TLS_VERIFY=0
DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox
DOCKER_CERT_PATH=C:\Users\USERNAME\.docker\machine\machines\default
результат был тот же:
$ docker-machine env
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.101:2376"
Если вы видите проблема с тем, как я изменил переменные среды, чтобы указать Docker CLI на новый адрес хоста Docker, прокомментируйте.
Чтобы обойти эту проблему, используйте команду docker-machine ssh
и выполните команды docker
после этого.
Вот ответ: http://stackoverflow.com/questions/26424338/docker-daemon-config-file-on-boot2docker-docker-machine-docker-toolbox/26781047#26781047 Привет –
@CarlosRafaelRamirez, да средний повторяющийся вопрос? если это так, вы можете отметить это. – Rao
Вопрос не в том. Речь идет не о той же теме. Но может быть разрешено в том же файле. Важно сохранить этот вопрос, чтобы люди искали это решение, отличное от другого, которое может найти dns. –