仅在docker容器中使用cmd打开和编辑文件

仅在docker容器中使用cmd打开和编辑文件,docker,cmd,containers,docker-for-windows,Docker,Cmd,Containers,Docker For Windows,我正在为windows创建docker映像。 用于此映像的dockerfile被拆分为build stange和runtime。对于运行时,我将使用mcr.microsoft.com/dotnet/core/aspnet:2.2,它将条带化到骨骼。 在容器中,我有一个文件appsettings.json,我想打开它进行查看和编辑,但不知道如何打开 还有,我可以使用CMD安装任何东西吗?若并没有,我还有什么其他选择呢?您可以将目录从主机映射到容器中,而不是修改容器内部的配置(-v C:\confi

我正在为windows创建docker映像。 用于此映像的dockerfile被拆分为build stange和runtime。对于运行时,我将使用mcr.microsoft.com/dotnet/core/aspnet:2.2,它将条带化到骨骼。 在容器中,我有一个文件appsettings.json,我想打开它进行查看和编辑,但不知道如何打开


还有,我可以使用CMD安装任何东西吗?若并没有,我还有什么其他选择呢?

您可以将目录从主机映射到容器中,而不是修改容器内部的配置(
-v C:\config:C:\config
),这样您就可以直接在主机上编辑配置

您可以在容器中安装应用程序,但每个应用程序通常需要自己的一组选项。通常使用巧克力更容易做到:

RUN powershell -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
RUN choco feature enable -n=allowGlobalConfirmation
RUN choco feature disable -n=showDownloadProgress
RUN choco install <your-app>
运行powershell-NoProfile-InputFormat None-ExecutionPolicy Bypass-Command“iex((新对象系统.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
运行choco功能启用-n=allowGlobalConfirmation
运行choco功能禁用-n=showDownloadProgress
运行choco安装

您可以将目录从主机映射到容器中,而不是修改容器内部的配置(
-vc:\config:C:\config
),这样您就可以直接在主机上编辑配置

您可以在容器中安装应用程序,但每个应用程序通常需要自己的一组选项。通常使用巧克力更容易做到:

RUN powershell -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
RUN choco feature enable -n=allowGlobalConfirmation
RUN choco feature disable -n=showDownloadProgress
RUN choco install <your-app>
运行powershell-NoProfile-InputFormat None-ExecutionPolicy Bypass-Command“iex((新对象系统.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
运行choco功能启用-n=allowGlobalConfirmation
运行choco功能禁用-n=showDownloadProgress
运行choco安装

不幸的是,运行时映像
mcr.microsoft.com/dotnet/core/aspnet:2.2
没有powershell,因此我无法使用powershell。这是我的两个问题之一,因为实际的web应用程序有一个直接依赖于powershell的模块。我可以继续使用sdk映像,因为它包含powershell,但它的大小是powershell的4倍,我不想这样做。然后,您可以尝试手动安装软件-检查安装程序选项并尝试将其安装到您的容器中。是的,具有合理功能的windows容器非常庞大,它们正在变得更好,但它们离linux还很远。如果你需要安装一个简单的应用程序,它可以在安装后复制,你可以在多阶段构建中安装它,然后复制到最终映像中。我已经检查过了,mcr.microsoft.com/dotnet/core/aspnet:2.2有curl-因此您可以在运行安装程序之前下载它。不幸的是,运行时映像
mcr.microsoft.com/dotnet/core/aspnet:2.2
没有powershell,因此我无法使用powershell。这是我的两个问题之一,因为实际的web应用程序有一个直接依赖于powershell的模块。我可以继续使用sdk映像,因为它包含powershell,但它的大小是powershell的4倍,我不想这样做。然后,您可以尝试手动安装软件-检查安装程序选项并尝试将其安装到您的容器中。是的,具有合理功能的windows容器非常庞大,它们正在变得更好,但它们离linux还很远。若你们需要安装一个简单的应用程序,它可以在安装后复制,你们可以在多阶段构建中安装它,然后复制到最终映像中。我已经检查过了,mcr.microsoft.com/dotnet/core/aspnet:2.2有curl,所以你们可以在运行安装程序之前下载它。