gpt4 book ai didi

docker - 如何重新启动 Windows 容器

转载 作者:行者123 更新时间:2023-12-02 11:49:41 25 4
gpt4 key购买 nike

我正在尝试从 Windows 容器运行旧版 ASP.Net (.Net 4.7.1) 应用程序。要求之一是将系统区域性、区域设置和位置设置为 en-GB。我不允许接触代码,只有在绝对需要时才能接触 web.config。

正在考虑以下方法:

  1. 创建包含所有证书的基础镜像,并应用区域性设置(需要重新启动)
  2. 重新启动基础镜像(使用 Windows 重新启动或容器重新启动,无论可行)
  3. 运行基础镜像以确保正确应用区域性设置
  4. 保存基础图像
  5. 使用之前生成的基础镜像创建一个包含我的应用程序的新镜像

我的基础镜像的 Dockerfile 是:

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2
ARG site_root=.
WORKDIR /scripts
COPY scripts/ .

RUN powershell -f install-certificates.ps1

RUN powershell C:/Windows/System32/inetsrv/appcmd.exe set config /commit:WEBROOT /section:globalization /culture:en-GB
RUN powershell C:/Windows/System32/inetsrv/appcmd.exe set config /commit:WEBROOT /section:globalization /uiCulture:en-GB

RUN powershell Set-Culture en-GB
RUN powershell Set-WinSystemLocale en-GB
RUN powershell Set-WinHomeLocation -GeoId 242
RUN powershell Set-WinUserLanguageList en-GB -Force

然后构建并运行容器。

docker build -t tmpaspnet .
docker run -it --name tmpcontainer --entrypoint powershell tmpaspnet
# inside the container
Restart-Computer
# container will exit, wait a few seconds
docker start tmpcontainer
docker exec tmpcontainer powershell Get-WinSystemLocale
# verify if system locale is correct set
# commit changes and save them to a new image
docker commit -m 'set system locale to en-GB' tmpcontainer myrepo/aspnet:latest

不幸的是,容器要么忽略了重新启动,要么没有完全成功。当我在容器内运行 Get-WinSystemLocale 时,始终返回“en-US”。

TL,DR:重新启动 Windows 容器的正确方法是什么?

我正在使用以下容器 mcr.microsoft.com/dotnet/framework/aspnet:4.7.2

有关设置语言包时失败的附加说明 https://github.com/sanguedemonstro/docker-playground/blob/master/langpack-on-servercore2019.md

谢谢

最佳答案

您确实不应该在容器内使用Restart-Computer

如果您需要重新启动它,您甚至不需要在容器内生成 shell。

首先,您需要找到您的容器 ID。要查找容器,您可以使用 docker ps command从主机终端。

当您获得容器 ID 后,只需运行 docker restart {containerId} command .

<小时/>

要改变文化,您可以在 web、config 中使用全局化标签,如下所示。

<system.web>
<globalization culture="en-GB" uiCulture="en-GB" />
</system.web>

关于docker - 如何重新启动 Windows 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55460333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com