简介
docker 容器部署后,日志和目录中出现中文乱码,很多问号,下面是不同版本的Linux系统的修改方式
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
中添加环境变量:
1 2 3
| #Ubuntu RUN echo "export LANG=C.UTF-8" >> /etc/profile \ && echo "export LC_ALL=C.UTF-8" >> /etc/profile
|
1 2
| #CentOS ENV LC_ALL en_US.UTF-8
|
再启动 docker,查询 locale:
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
|
这样中文乱码就没有了