无法在Windows 10

时间:2017-08-12 20:18:24

标签: docker windows-10 hyper-v windows-container

我在笔记本电脑上设置了Docker for Windows,并在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的笔记本电脑上进行所有开发和测试。

Docker版本

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

2 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:4)

编辑为Vimes答案,因为我很难在docker run命令中使用ChildSpec。实际的运行命令必须在 public class DateLabelFormatter extends AbstractFormatter { private String datePattern = "dd-MM-yyyy"; public SimpleDateFormat dateFormatter = new SimpleDateFormat(datePattern); @Override public Object stringToValue(String text) throws ParseException { return dateFormatter.parseObject(text); } @Override public String valueToString(Object value) throws ParseException { if (value != null) { Calendar cal = (Calendar) value; return dateFormatter.format(cal.getTime()); } return ""; } } model1 = new UtilDateModel(); p1 = new Properties(); p1.put("text.today", "Today"); p1.put("text.month", "Month"); p1.put("text.year", "Year"); datePanel1 = new JDatePanelImpl(model1, p1); datePicker1 = new JDatePickerImpl(datePanel1, new DateLabelFormatter()); 开头的引号path="/entertainment/Pictures" files=( "$path"/*.jpg" "$path"/*.bmp" ) for i in "${files[@]}" do # replace jpg and bmp with png in prep for conversion new=$(echo "$i" | perl -pe "s/\.jpg|\.bmp/.png") # next is to perform the conversion ... done

--mount