Использование '*' в команде docker exec - PullRequest
0 голосов
/ 07 июня 2018

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

 Docker exec -t t1 ls /tmp/sth/*

в ответ я получаю

 ls: cannot access '/tmp/sth/*': No such file or directory

На самом деле, когда я выполняю команду, находясь внутри контейнера, все работает.Контейнер использует Debian, а локальный компьютер использует Windows.Я пытался найти его, но не смог.

1 Ответ

0 голосов
/ 07 июня 2018

Если вы хотите, чтобы оболочка внутри контейнера расширяла ваш глобус, вам нужно ... ну ... на самом деле запустить оболочку внутри контейнера.Один вне контейнера не может видеть файлы внутри контейнера (конечно), поэтому он передает ls буквенный шаблон, а не список файлов в каталоге, как вы предполагаете.

Таким образом:

docker exec -t t1 sh -c "ls /tmp/sth/*"

... обратите внимание, что я обычно использую одинарные кавычки для команды, но поскольку ваш хост - Windows, используются двойные кавычки, так как они с большей вероятностью будут работать с cmd.exe.

...