解决Docker容器控制台乱码

0x00

今天在用Rancher安装Graylog时发现都安装好了,登录Graylog控制台查看日志时发现中文的都是??????乱码,去网上找了好多文档,发现不是很稳。

ox01

找了好多都说要添加环境变量

LANG = en_us.UTF-8

我也是按着添加了,也重启了容器,硬是不行,最终发现需要进入容器里面查看容器支持的编码,再去设置为支持的编码才行(8e7dd064fa6b为容器ID)

docker exec -it 8e7dd064fa6b bash

进去容器后执行命令可以查目前容器支持的编码

 locale -a

再选择一个支持编码去设置LANG,设置好重启容器就正常了

0x02
网上说的其实都对,就是没有把关键的说出来,LANG = 需要设置为当前容器支持的编码,每个镜像打出来的容器,支持的编码都不尽相同,如果设置为一个容器不支持的编码,那设置了等于没有设置。