Может кто-нибудь научить меня, как запустить образ docker в windows 10? Пожалуйста, не говорите мне читать учебник, есть причина, по которой я спрашиваю.
Я уже установил docker для windows. Во всех руководствах говорится: "Используйте docker quickstar terminal". Так вот, этого не существует. Есть только docker desktop.
Я могу запустить "docker ps" в любом терминале, например Git bash или терминале Windows (командная строка). Однако я хочу запустить это
docker run -it -p 4567:4567 -v 'pwd':/work udacity/controls_kit:latest
Если я сделаю это в Git Bash, то получу следующую ошибку:
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
и если я сделаю это в командной строке, я получу
docker: Error response from daemon: create 'pwd': "'pwd'" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.
Как правильно запустить образ контейнера в Windows 10?
решение1
Так близко!
Вы пытаетесь оценить pwd
команду и использовать ее результат как часть вызова Docker. Это делается с помощьюобратная кавычкасимволы (также называемыегрубый акцент). На американской клавиатуре вы можете ввести их с помощью кнопки, расположенной над Tab, рядом с 1. В настоящее время вы (неправильно) используете одинарные кавычки, которые используются для цитирования обычных строк.
В идеале следует использовать $(pwd)
вместо `pwd`
. Он делает то же самое, но более предсказуем при вложении и его сложнее спутать с чем-то другим.
# should work:
winpty docker run -it -p 4567:4567 -v `pwd`:/work udacity/controls_kit:latest
# even better:
winpty docker run -it -p 4567:4567 -v $(pwd):/work udacity/controls_kit:latest
Вам нужен winpty
префикс из-за запуска Docker в Windows с конфигурацией по умолчанию. Вы можете изменить это поведение во время установки. В Windows 10 изменение, вероятно, является хорошей идеей, поскольку улучшенная командная строка не имеет ограничений, которые эта функция призвана преодолеть.