У меня установлен Windows Docker, и когда я запускаю это в командной строке:
docker stop $(docker ps -q)
, я получаю:
unknown shorthand flag: 'q' in -q)
Но при запуске:
docker ps -q
Все в порядке.Есть какие-нибудь подсказки?
Вы можете попробовать небольшой трюк, чтобы остановить все контейнеры:
docker ps -a -q | xargs -n 1 -P 8 -I {} docker stop {}
Он не содержит символа $, поэтому должен быть корректным
Я использовал это в Windows:
powershell docker stop $(docker ps -aq)
$(sub command) - это синтаксис оболочки bash (наряду со многими другими командными оболочками в Linux).Если вы попытаетесь запустить его из командной строки Windows, он не будет правильно развернут до запуска остальной части команды, и вы увидите ошибки, с которыми вы столкнулись.Попробуйте установить и запустить команды на bash для Windows.
$(sub command)