Моя ОС Windows. При создании контейнера Docker и взаимодействии с ним с помощью Windows powershell:
docker create -i --name test_container debian
docker container start -i test_container
И запуск такой команды, как ls
, выдает следующую ошибку:
bash: line 2: $'ls\r': command not found
Я предполагаю, что это связано с тем, что новые строки в Windows (\r\n
) отличаются от Unix (\n
).
Как я могу использовать powershell в интерактивном режиме с Docker?
Я искал в Интернете решение по этому вопросу, но получаю результаты только при преобразовании файлов, а не напрямую работая с powershell. Я также просмотрел настройки Docker, чтобы узнать, есть ли для этого опция, но я не могу найти ничего, чтобы изменить это поведение. Запуск docker start --help
не предоставляет никаких специальных опций для использования с powershell.
Я специально хочу использовать powershell, так как мне не нравится cmd и оболочка, предоставляемая Docker (например, клавиши вверх/вниз не работают должным образом).
Я только сейчас понял, что мне нужно передать опцию псевдотерминала (-t
) при создании контейнера.
Следующее работает без проблем:
docker create -it --name test_container debian
docker container start -i test_container
Таким образом проблема решается.
Запустите его как:
docker run -it --name test_container debian /bin/bash
Вот объяснение флагов: