设置容器系统字符集zh_CN.UTF-8退出失效:关于Docker容器配置环境变量,再次进入失效问题
修改正在运行的Docker容器内的字符集:
-
先进入Docker容器:docker exec -it 容器ID /bin/bash
-
查看是否支持中文字符集:locale -a | grep zh(PS:这一步如果之前没有特意下过,那么大概率就是没有,所以不用担心,继续老老实实下一步)
-
下载中文字符集:yum install kde-l10n-Chinese -y
-
设置名称:localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
-
看看现在有没有:locale -a或locale -a | grep zh
-
把设置写到配置文件里:echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
至此,设置结束,查看是否修改成功:
locale
可以看到设置成功!
但是,退出容器,再次进入容器,执行locale,会发现,LANG又成为之前未修改的值!
这其实就是常说的:
docker在使用过程中,有时候自定义容器实例中的某些配置文件,例如:/etc/profile的java环境,在每一次退出重新进入容器后,配置失效,都需要手动source 一遍令它重新生效。
解决办法:
在容器实例中 /root/.bashrc 配置文件末尾添加 source /etc/profile,保存退出即可!
此时,退出在进入,LANG值修改成功!