在執行 Docker 容器的時候,如果容器內應用需要使用 UTF-8
編碼來正常處理中文,你可以透過設定環境變數來指定編碼。
可以使用 -e 或者 --env 標誌來設定環境變數。比如,設定 LANG 和 LC_ALL 環境變數為 C.UTF-8 或者 en_US.UTF-8:
docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -it <image_name>
或者,如果你的應用支援 en_US.UTF-8 編碼:
docker run -e LANG=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 -it <image_name>
注意:
不同的基礎映象可能需要不同的設定。比如,一些基礎映象可能需要你首先生成 locale 資料。
如果你發現設定了環境變數後中文仍然顯示亂碼,可以嘗試在構建 Docker 映象時使用以下命令:
FROM your_base_image
# 安裝 locales 並設定 UTF-8
RUN apt-get update \
&& apt-get install -y locales \
&& locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
# ... 後面是你構建映象的其他步驟 ...
上述 Dockerfile 是以 Debian
或者 Ubuntu
為基礎的映象示例,如果你使用的是別的 Linux 發行版,你可能需要調整命令來適應相應的包管理器和配置方式。
記得,每當你修改了 Dockerfile 之後,都需要重新構建映象。
docker build -t your_custom_image_name .
然後你執行容器時就不需要再指定環境變數了,除非你需要覆蓋 Dockerfile 中的設定。
docker run -it your_custom_image_name
原文章地址:
https://blog.csdn.net/x1131230123/article/details/137639902