28

我在笔记本电脑上设置了适用于 Windows 的 Docker,并在 Docker 的设置中从Linux Containers切换到了Windows Containers(这提示了几次重启和 Windows 更新)。我使用以下命令提取了一个图像并基于它运行了一个容器:

docker pull microsoft/dotnet-framework
docker run -it microsoft/dotnet-framework cmd

在第二个终端窗口中,我执行了命令:

docker cp app container_id:/

并收到此错误消息:

来自守护程序的错误响应:不支持针对正在运行的 Hyper-V 容器的文件系统操作

我用谷歌搜索了这个错误,但没有(解释性)出现,非常令人惊讶。有没有办法可以在 Windows 10 上将映像作为 Windows 容器而不是 Hyper-V 容器运行?

最终,我会将此容器部署到 Windows Server 2016 主机,但我需要在运行 Windows 10 Pro 的笔记本电脑上进行所有开发和测试。

码头工人版本

Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:30:30 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.24)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 22:19:00 2017
 OS/Arch:      windows/amd64
 Experimental: true
4

2 回答 2

35

根据@GregorySuvalian 的评论,我了解 Windows 10 仅允许 Hyper-V 运行时。所以我的解决方法是停止容器,运行docker cp命令并重新启动容器。(我更喜欢这个而不是设置一个卷,因为它只是一次操作。)

于 2017-08-12T21:40:25.683 回答
4

编辑 Vimes 答案,因为我很难--mount在 docker run 命令中使用 。''实际的运行命令需要在引号内type...

--mount 'type=bind,source="c:/host/folder/path/with/forward/slashes",target="C:/container/folder/path/with/forward/slashes"'

于 2020-04-19T19:14:56.430 回答