Как использовать powershell для взаимодействия с докер-контейнером (команда \r не найдена)

Моя ОС 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 (например, клавиши вверх/вниз не работают должным образом).

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я только сейчас понял, что мне нужно передать опцию псевдотерминала (-t) при создании контейнера.

Следующее работает без проблем:

docker create -it --name test_container debian 
docker container start -i test_container

Таким образом проблема решается.

Запустите его как:

docker run -it --name test_container debian /bin/bash

Вот объяснение флагов:

  • я: выполнить в интерактивном режиме
  • t: выделить псевдотерминал
  • /bin/bash: запустить терминал bash независимо от того, что указано на изображении

Другие вопросы по теме