如何使用powershell与Docker容器交互(未找到“\r”命令)

ffscu2ro  于 2022-12-03  发布在  Docker
关注(0)|答案(2)|浏览(200)

我的操作系统是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提供的shell(例如,上/下键不能按预期工作)。

juzqafwq

juzqafwq1#

以下列身份运行:

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

下面对标志的释义:

  • i:交互执行
  • t:分配伪tty
  • /bin/bash:运行bash终端,而不考虑映像中指定的内容
ubby3x7f

ubby3x7f2#

我现在才意识到,在创建容器时应该传递pseudo-tty选项(-t)。
以下运行没有问题:

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

问题就这样解决了。

相关问题