После установки обновлений Windows контейнеры docker опять перестали запускаться

После установки обновлений Windows:
2020-10 Накопительное обновление .NET Framework 3.5 и 4.8 для Windows 10 Version 2004 для x64 систем (KB4578968)
Накопительное обновление для Windows 10 Version 2004 для систем на базе процессоров x64, 2020 10 (KB4579311)

и последующей перезагрузки опять вернулся к невозможности запусков контейнеров.

прошел старым путём:

отключил антивирус;
снёс docker, перезапуск windows, установил docker;
галки в shared drives;
docker run -d --restart unless-stopped --stop-timeout 300 -p 28967:28967 -p 127.0.0.1:14002:14002 -e WALLET=“x” -e EMAIL=xx" -e ADDRESS=“xxx:28967” -e BANDWIDTH=“50TB” -e STORAGE=“11.5TB” --mount type=bind,source=“G:\data\identity\storagenode”,destination=/app/identity --mount type=bind,source=“G:\data”,destination=/app/config --name storagenode storjlabs/storagenode:latest

на выходе получаю:
invalid argument “type=bind,source=G:\data\identity\storagenode”,destination=/app/identity --mount type=bind,source=G:\data",destination=/app/config" for “–mount” flag: parse error on line 1, column 45: bare " in non-quoted-field

подобная ошибка в числе прочих возникала ранее, но после factory defaults/переустановки docker проблема решалась.

не могу понять - вопрос в обновлениях windows, неверном вводе команды, кривых руках - в общем если есть возможность дать обратную связь - буду признателен.

решение:

нужно использовать double backslash и привести команду к виду:
docker run -d --restart unless-stopped --stop-timeout 300 -p 28967:28967 -p 127.0.0.1:14002:14002 -e WALLET=“x” -e EMAIL=xx" -e ADDRESS=“xxx:28967” -e BANDWIDTH=“50TB” -e STORAGE=“11.5TB” --mount type=bind,source=“G:\\data\\identity\\storagenode”,destination=/app/identity --mount type=bind,source=“G:\\data”,destination=/app/config --name storagenode storjlabs/storagenode:latest

итог: как обычно - кривые руки.

double backslashes обычно не требуются. Самый простой вариант - не использовать двойные кавычки, если строка не содержит пробелы.
Кроме того, их поведение меняется в зависимости от среды, где вы запускаете команды. В cmd двойные обратные косые требуются (только если строка в двойных кавычках), в PowerShell - обычно нет.

С этими кавычками и двойными минусами текстовые процессоры вытворяют, что хотят - превращают прямые кавычки " " в фигурные “ ”, двойной минус -- в длинную черту и так далее.
Лучше не использовать текстовые процессоры для редактирования программ и команд командной строки. Для Windows пока что самый оптимальный вариант - Notepad++, он и знаки не подменяет и синтаксис подсвечивает.

2 Likes