Мне нужно обмениваться данными между хостом и Docker контейнером, используя параметр -v
:
$ docker -v host_dir:container_dir image_name
В этом конкретном случае c мне нужно поделиться текущим рабочим каталогом. Обычно это можно сделать так:
$ docker -v `pwd`:container_dir image_name
Но это не удается, если текущий рабочий каталог содержит какие-либо пробелы (или другие символы, которые следует экранировать). Существует специальный способ расширить значение параметра, чтобы его можно было безопасно повторно использовать для ввода:
$ docker -v ${PWD@Q}:container_dir image_name
Но это тоже не помогает, поскольку путь заключен в одинарные кавычки, и это приводит к недопустимому параметру. значение: -v '/present/working/dir with spaces':container_dir
. Правильный синтаксис: -v /present/working/dir\ with\ spaces:container_dir
.
Итак, мой вопрос: как расширить значение параметра, экранируя специальные символы с помощью обратной косой черты, а не заключая значение в кавычки?