docker-machine command not found. #5981
Hi — I am facing issue in using docker-machine command. I am trying docker-machine command on latest version of docker desktop and facing error that «docker-machine : The term ‘docker-machine’ is not recognized as the name of a cmdlet, function, script file, or operable program.»
Install Docker Windows Server 2019: the term 'docker' is not recognized as the name of a cmdlet, function, script file, or operable program
Trying to install Docker in process isolation on Windows Server 2019 and following these steps. (I can’t use Hyper-V on this server) when running PowerShell in admin mode.
I however get the error
Get-PackageProvider : A parameter cannot be found that matches parameter name ‘ListAvailableget-packagesource’
I also tried Install-Package -Name docker -ProviderName DockerMsftProvider I then get:
UPDATE 1
I had to set the PowerShell execution policy to unrestricted like so (I’ll set it back to Restricted Set-ExecutionPolicy -ExecutionPolicy Restricted after all this):
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
I also had to temporarily disable some antivirus/malware protection from Windows Defender. For me antimalware was already disabled so I had to also disable real-time virus protection.
I then could run
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Now via Get-PackageProvider -ListAvailable I see that DockerMsftProvider is installed.
I ran Install-Package -Name docker -ProviderName DockerMsftProvider and entered Y .
I then run Get-Package -Name Docker -ProviderName DockerMsftProvider and get:
When I run Install-Package -Name docker -ProviderName DockerMsftProvider I get no feedback via PowerShell, no errors, so I think it’s good.
However, when I checked here and ran docker run —isolation=process mcr.microsoft.com/windows/nanoserver:1809 cmd.exe /c ping 127.0.0.1 -t
I get the error
In the past I had tried to install Docker Desktop, which I then uninstalled since my VPS does not support Hyper-V. I’m not sure if this is still from that install or new, but I added path C:\Program Files\Docker to my environment PATH variable.

Still I get the same error
The term ‘docker’ is not recognized as the name of a cmdlet, function, script file, or operable program.
UPDATE 2
Based on @Peter Wishart’s answer I checked my PATH system variables, but Docker can be seen there (see screenshot below) and as Peter also mentioned, since I can run docker —version via the command prompt (not PowerShell) the install did complete successfully.

UPDATE 3
I checked ($env:path).Split(";") in PowerShell and the Docker path is there: 
Запускаем docker compose в Windows
Docker-compose — это утилита, позволяющая запускать одновременно несколько контейнеров, используя при этом единый файл конфигурации всего стека сервисов, нужных вашему приложению. Например, такая ситуация: запускаем node.js webapp, которому нужна для работы mongodb, compose выполнит build вашего контейнера с webapp (традиционный Dockerfile) и перед его запуском запустит контейнер с mongodb внутри; так же может выполнить линк их между собой. Что крайне удобно как в разработке, так и в CI самого приложения. Так сложилось, что Windows пользователи были обделены возможностью использовать столько удобное средство, ввиду того, что официальной поддержки данной ОС все еще нет. А python версия для *nix не работает в окружении windows cmd, ввиду ограничений консоли Windows.
Для того, чтобы запустить docker-compose, мы можем использовать консольную оболочку Babun. Это, так сказать, «прокаченный» форк cygwin.
Итак, рецепт запуска docker-compose в Windows из консоли babun такой:
280MB!) и устанавливаем сам babun, узнать больше об этой оболочке можно на ее домашней странице babun.github.io;
2. Распаковываем архив (после установки полученную папку можно удалять);
3. Запускаем файл install.bat и ждем, пока пройдет установка;
4. После в открывшемся окне babun введем команду:
И убедимся, что у нас самая последняя версия оболочки (далее все команды выполняются только внутри оболочки babun);
5. Если вам не нравится дефолтный shell babun (используется zsh), его можно изменить на bash. Для этого вводим:
6. Теперь нам нужно установить те самые зависимости Python, которых так не хватает docker-compose. Для этого выполним следующие команды по очереди:
7. Теперь мы готовы установить сам docker-compose:
Если все прошло успешно, увидим:
Если же вы получили ошибку, error python fcntl или сообщение о не найдом файле docker-compose, попробуйте найти файл docker-compose в папках /usr/local/bin, /usr/sbin и подобных, затем можно сделать симлинк на /bin/. либо добавить в системный PATH недостающий путь.
Для правильной работы docker-compose нужно иметь уже настроенное окружение консоли для работы с docker-machine или boot2docker, а так же сам клиент docker должен быть доступен в системном PATH. О том, что такое docker, docker-machine и как с ними работать отлично рассказывает официальная документация.
Для входа в окружение нашего хоста докера, запущенного в docker-machine, нужно выполнить:
Либо тоже самое для boot2docker:
Проверить правильность работы клиента docker можно так:
Если получаем список контейнеров или просто заголовки таблицы, значит, все ок!
Не получается собрать образ docker
pip : Имя «pip» не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку. строка:1 знак:1 + pip install -r requirements.txt +
+ CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Теперь проблема следующая: При команде docker build —tag=friendlyhello . .Выдает ошибку :
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\docker\Dockerfile: The system cannot find the file specified.
