docker java 镜像中文乱码问题解决

转眼十多年过去了,从年轻的少年成为了中年油腻大叔.为了更好的生存,这段时间在学习java 学习docker. 但过程中出现了CentOS 中java docker 镜像的乱码问题;

 

先来看看问题现象:

docker java 镜像中文乱码问题解决_第1张图片

运行docker 后出现了中文?号

开始以为是SSH终端问题,检查并设置为UTF-8

docker java 镜像中文乱码问题解决_第2张图片

再次查看问题依旧.乱码

百度了下,说是需要用locale 检查本地语言环境.于是

添加中文环境编码,安装两个包

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


转化语言环境和字符集
 

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


添加定义到系统环境变量
 

vi /etc/profile
export LC_ALL=zh_CN.utf8


执行生效
 

source /etc/profile

 

好了我们来看看是不是已经可以创建和显示中文文件夹了

mkdir 已

使用命令查询

docker java 镜像中文乱码问题解决_第3张图片

可以看到中文正常显示了

-------------------CentOS 7的系统应该没有问题 

这时再试docker 中的java 发现任就乱码

在docker 中增加以下内容 

RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

任然没有任何效果,依然乱码

于是尝试使用命令进入到docker 容器中,查看可以看到有C.UTF-8

docker java 镜像中文乱码问题解决_第4张图片

于在在dockerfile 中增加 

ENV LANG C.UTF-8

完整dockerfile 如下:


# 环境
FROM  williamyeh/java8:latest
# 作者信息
MAINTAINER david "[email protected]"

# UTF-8 并配置环境
ENV LANG C.UTF-8

# 将本地文件tmp挂载到容器
VOLUME /tmp
# 拷贝jar
ADD demo-0.0.1-SNAPSHOT.jar /demo-0.0.1-SNAPSHOT.jar
# 执行命令
ENTRYPOINT ["java","-jar","/demo-0.0.1-SNAPSHOT.jar"]

运行docker build 命令创建一个新的镜像.

再次运行docker 中文正常显示

docker java 镜像中文乱码问题解决_第5张图片

通过以上步骤解决了java docker 在CentOS 7中的乱码问题. 

 

采集到花瓣

你可能感兴趣的:(java,乱码,docker,java)