docker 中文目录及文件乱码_Docker容器内中文乱码

需求描述:

公司微服务架构,Docker启动服务,有个上传附件的功能,图片加水印,中文乱码。

通过百度及阅读相关博文,找到了相关解决方法如下:

一、通过Dockerfile解决中文乱码问题

使用Dockerfile 构建一个新的带有中文环境的镜像。

FROM centos

MAINTAINER maochengli

#设置系统编码

RUN yum install kde-l10n-Chinese -y

RUN yum install glibc-common -y

RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

#RUN export LANG=zh_CN.UTF-8

#RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf

#ENV LANG zh_CN.UTF-8

ENV LC_ALL zh_CN.UTF-8

使用 Docker build -t centos-zh . 构建一个新的镜像,这个镜像就支持中文了。

方式二:

在Dockerfile中添加一行,如下所示:

ENV LANG C.UTF-8

重新制作docker镜像,重新进入容器后发现问题解决!

二、临时解决

进入到容器当中,然后:

$>localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

$>yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common

$>localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

$>export LC_ALL=zh_CN.utf8

方式二:

yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common

localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

export LC_ALL=zh_CN.utf8

三、修改jre/lib/fonts下的字体

进入到docker容器内部,

docker exec -it 容器ID /bin/bash

然后进入到容器内部的jdk目录,在$JAVA_HOME/jre/lib/fonts下上传需要的字体,如simsun.ttc。

exit

退出容器,然后重启容器。

docker restart 容器Id

so,应该会成功的吧。。我是这样成功的。。


版权声明:本文为weixin_39644021原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。