我的容器有 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/