首页 > 解决方案 > Docker ~ 粘贴到交互式 PowerShell 终端中

问题描述

我有以下问题:

在 Windows 机器上,我使用 PowerShell CLI 来运行运行 microsoft/mssql-server-windows-express 的容器。我可以使用命令“docker exec -it my_container powershell”在该容器中打开一个交互式 PowerShell 会话,但在该交互式终端中,我无法从外部粘贴任何文本。

说,我想粘贴以下行:

echo (Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH).path

使用 [Ctrl]+[V] 仅返回以下内容(与非交互式 docker PowerShell 会话 PowerShell CLI 不同,它可以毫无问题地粘贴文本):

^V

我也试过右键单击控制台背景,或者右键单击控制台窗口标题,然后选择[编辑] > [粘贴]。但是,这只会提供以下损坏和截断的结果:

echo (Get-ItemProperty -Path ?^?^?Registry::HKEY_LOC

如本页所述,我已经尝试将以下几行添加到我的 Dockerfile 中:

WORKDIR "Program Files"
RUN rd /S /Q WindowsPowerShell\Modules\PSReadLine
WORKDIR /

但是,这仅在尝试构建映像时导致以下错误:

Step 11/12 : RUN rd /S /Q WindowsPowerShell\Modules\PSReadLine
 ---> Running in 95497bbaf4cf
Remove-Item : A positional parameter cannot be found that accepts argument
'/Q'.
At line:1 char:76
+ ... e = 'SilentlyContinue'; rd /S /Q WindowsPowerShell\Modules\PSReadLine
+                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-Item], ParentContai
   nsErrorRecordException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
   .Commands.RemoveItemCommand

所以,我的问题是:是否可以粘贴到在通过 PowerShell 访问的容器中运行的交互式 PowerShell 会话中?或者这是某种“初始”问题——不同系统的分层导致无法正确粘贴的问题?

标签: powershelldocker

解决方案


推荐阅读