Docker撰写未安装在Windows容器上的卷

时间:2018-11-14 14:27:49

标签: docker docker-compose docker-windows

我正在使用Windows Docker运行Windows容器。我使用Visual Studio容器编排来生成docker-compose,当前我的docker-compose.override.yml如下所示:

version: '3.4'

services:
  test:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44308
    ports:
      - "50132:80"
      - "44308:443"
    volumes:
      - C:\directory:C:\directory:ro
networks:
  default:
    external:
      name: nat

无论我尝试什么,启动docker debug配置文件时都无法将目录挂载到容器。我已经尝试过正斜杠和反斜杠,相对路径,其他目录等。

docker run -it -v C:\directory:C:\directory test cmd

目录已正确安装。

我可以观看Visual Studio的docker-compose up输出,并看到它正在安装remote_debugger和.nuget以及其他内容,并且它表明C:\directory也正在安装。如果我连接到容器,则所有自动安装的卷都在那里,但不是我的。

我还尝试了卷的扩展格式,如下所示:

volumes:
  - type: bind
    source: C:\directory
    target: C:\directory

那里也没有运气。

那我做错了什么?我觉得Visual Studio在某种程度上可能是罪魁祸首,因为唯一挂载的卷是VS在幕后神奇执行的操作。

1 个答案:

答案 0 :(得分:0)

以下代码对我来说没有问题。检查它是否适合您

services:
  test:
    image: microsoft/windowsservercore:1803
    volumes:
      - type: bind
        source: d:\test
        target: c:\directory
    command: ["cmd", "/c", "dir", "c:\\directory"]
networks:
  default:
    external:
      name: nat