【问题标题】:Open and edit file using cmd only in docker container仅在 docker 容器中使用 cmd 打开和编辑文件
【发布时间】:2020-06-16 00:10:49
【问题描述】:

我正在为 Windows 构建一个 docker 映像。 用于此图像的 dockerfile 被拆分以构建 stange 和运行时。对于运行时,我使用的是 mcr.microsoft.com/dotnet/core/aspnet:2.2,它是条带化的。 在容器内,我有一个文件 appsettings.json,我想打开它来查看和编辑,但不知道如何操作。

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

【问题讨论】:

    标签: docker cmd containers docker-for-windows


    【解决方案1】:

    您可以将目录从主机映射到容器 (-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>
    

    【讨论】:

    • 不幸的是运行时镜像mcr.microsoft.com/dotnet/core/aspnet:2.2没有powershell,所以我不能使用powershell。这是我的两个问题之一,因为实际的 web 应用程序有一个直接依赖于 powershell 的模块。我可以继续使用 sdk 映像,因为它包含 powershell,但它的大小是 4 倍并且不想这样做。
    • 那么您可以尝试手动安装软件 - 检查安装程序选项并尝试将其安装到您的容器中。是的,不幸的是,具有合理功能的 windows 容器很大,它们正在变得更好,但它们离 linux 还很远。如果您需要安装可以在安装后复制的简单应用程序,您可以在多阶段构建中安装它并复制到最终映像中。
    • 我已经检查过了,mcr.microsoft.com/dotnet/core/aspnet:2.2 有 curl - 所以你可以在运行之前下载安装程序。
    猜你喜欢
    • 2018-05-09
    • 2018-10-29
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 2015-04-09
    相关资源
    最近更新 更多