CentOS8 的容器运行时解决中文乱码问题的一个思路

首先说明一下 CentOS7和CentOS8关于locale语言文件的位置是不一样的.

Docker pull centos 拉取下来的镜像 一般是不带中文语言包的. 简单方法是在 CentOS之后安装app的过程中 添加上相应的语言文件, 以及设置环境变量. 

如果容易已经运行起来可以换一个思路进行处理

两种版本思路基本一样,但是文件路径有所不同. 

CentOS7的语言文件 路径

/usr/share/i18n/locales/

CentOS8的语言文件 路径

/usr/lib/locale/

注意这里面有一个坑  

CentOS7 的 是一个文件 但是 CentOS8的是一个文件夹

将文件打包 

然后通过docker cp的方式 将语言文件 copy 到容器的对应目录下面去

docker cp /usr/lib/locale/zh_CN.utf8.tar.gz container_id:/usr/lib/locale/

# 这次以 Centos8 举例

然后

docker exec -it container_id /bin/bash

进入容器
然后解压缩文件
并且社会环境变量
export LANG=zh_CN.utf8

可能需要重启容器 docker restart container_id

然后进行验证就可以. 

注意这种方式会造成docker run 新的容器时失效 还是需要从源头 images 里面进行处理. 

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/14031539.html