avatar

目录
Docker 容器中文显示乱码

简介

docker 容器部署后,日志和目录中出现中文乱码,很多问号,下面是不同版本的Linux系统的修改方式

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@hexo hexo.xzh(172.17.0.5) /root]
#docker exec -it 41de9a0b6045 locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

docker 默认为 POSIX,系统是 Ubuntu,CentOS也有这个问题。
Dockerfile中添加环境变量:

shell
1
2
3
#Ubuntu
RUN echo "export LANG=C.UTF-8" >> /etc/profile \
&& echo "export LC_ALL=C.UTF-8" >> /etc/profile
shell
1
2
#CentOS
ENV LC_ALL en_US.UTF-8

再启动 docker,查询 locale:

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@hexo hexo.xzh(172.17.0.5) /root]
#docker exec -it 41de9a0b6045 locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=C.UTF-8

这样中文乱码就没有了

文章作者: SbloodyS
文章链接: https://ixzh.xyz/Docker-%E5%AE%B9%E5%99%A8%E4%B8%AD%E6%96%87%E6%98%BE%E7%A4%BA%E4%B9%B1%E7%A0%81.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SbloodyS
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论