Имя docker не распознано как имя командлета

от admin

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’ enter image description here

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.

enter image description here

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.

enter image description here

UPDATE 3
I checked ($env:path).Split(";") in PowerShell and the Docker path is there: enter image description here

Запускаем 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.

Похожие статьи