【问题标题】:'Docker cp' with parameter expansion (PowerShell)带有参数扩展的“Docker cp”(PowerShell)
【发布时间】:2020-12-01 14:36:47
【问题描述】:

我想将一个目录复制到一个 docker 容器中,该容器仅由某个查询定义。我试过这个:

docker cp ../from-here/. $(docker ps -aqf "name=my-ending$"):/to-here

不幸的是,这引发了这个错误:

"docker cp" requires exactly 2 arguments.

通过粘贴真实的 Container ID 运行相同的命令是可行的。

看来,PowerShell 结合 Docker 不允许参数扩展。

是否有一个简单的解决方法可以在一行中解决这个问题?

【问题讨论】:

    标签: docker powershell docker-for-windows parameter-expansion docker-cp


    【解决方案1】:

    在power shell中你需要使用| (管道)继续命令

    docker cp ../from-here/. | % {docker ps -aqf "name=my-ending$"}:/to-here

    【讨论】:

    • 抛出以下内容:+ CategoryInfo : InvalidArgument: (:) [ForEach-Object], ParameterBindingException+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.ForEachObjectCommand
    • 如何使用 for-each: Foreach ($docker_container_name in (docker ps -aq)) { $cp_arguments = @("cp","/from_here","$($docker_container_name):/ to_here") 搬运工 $cp_arguments }
    【解决方案2】:

    这行得通:

    docker @("cp", "../from-here/.", "$(docker ps -aqf "name=my-ending$"):/to-here")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多