在 docker 容器中设置区域设置



我的容器有 locale settep 到 POSIX,我想更改它。完成此操作后,我退出并重新进入容器,并且区域设置将返回到 POSIX。我不想构建新映像或运行新容器,因为我们在多台机器中有很多容器。

运行以下命令:

DEBIAN_FRONTEND=noninteractive apt-get install -y locales
sed -i -e 's/# pt_PT ISO-8859-1/pt_PT ISO-8859-1/' /etc/locale.gen
dpkg-reconfigure --frontend=noninteractive locales
export LANGUAGE=pt_PT
export LANG=pt_PT
export LC_ALL=pt_PT

在运行容器时效果很好,但退出并重新进入容器会使更改丢失。

已经在容器入口点中尝试过此代码,但导出没有任何效果。

这些设置受 shell 会话限制,不受操作系统限制。若要使其受操作系统限制,应将其写入操作系统文件中,但当服务重新启动时,它将应用映像而不进行这些更改。

因此,必须在Dockerfile中设置,以绑定映像,如下所示:

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales && 
    sed -i -e 's/# pt_PT ISO-8859-1/pt_PT ISO-8859-1/' /etc/locale.gen && 
    dpkg-reconfigure --frontend=noninteractive locales
ENV LANG pt_PT  
ENV LANGUAGE pt_PT  
ENV LC_ALL pt_PT  
更改不能

存储在容器中。我认为最好的方法是将您的更改提交到容器中并创建一个新容器。

您可以使用"docker commit"来实现此目的。

码头工人提交

参考: https://docs.docker.com/engine/reference/commandline/commit/

最新更新