解决docker中的容器无法使用中文的问题

最近的项目中docker容器中生成的日志文件是中文名字,但是文件名是???.txt

进入容器内部:

docker exec -t -i 容器名 /bin/bash

查看容器的语言环境:

[root@12ec64254bc4 /]# 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=

简单的方式:

centos:
ENV LANG=en_US.UTF-8

ubuntu/debian
ENV LANG=C.UTF-8

严格一点的方式,就是安装对应的汉字库。

centos:
yum install kde-l10n-Chinese
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ubuntu/debian
apt-get install language-pack-zh-hans

然后统一设置:

ENV LANG=zh_CN.UTF-8
vim .bashrc

在最后一行添加

export LANG=zh.CN.utf8

查看容器支持的语言:

[root@12ec64254bc4 /]# locale -a
C
POSIX
en_US.utf8
zh_CN.utf8

设置字符集为zh.CN.utf8:

[root@12ec64254bc4 zhai]# LANG=zh.CN.utf8

重新加载环境变量:

[root@12ec64254bc4 zhai]# source /etc/profile

再次查看:

[root@12ec64254bc4 zhai]# locale
LANG=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

注意:这样修改只是临时修改。要永久修改,需要在创建容器时在dockerfile中设置。

    DOCKER_FILE_CONTENT=$DOCKER_FILE_CONTENT'ENV LANG zh_CN.UTF-8\n'
    DOCKER_FILE_CONTENT=$DOCKER_FILE_CONTENT'ENV LC_ALL zh_CN.UTF-8\n'

重建构建容器后,进入容器,查看locale:

[root@d18364b14af9 /]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

修改成功!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值