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

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

 

先来看看问题现象:

运行docker 后出现了中文?号

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

再次查看问题依旧.乱码

百度了下,说是需要用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 已

使用命令查询

可以看到中文正常显示了

-------------------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

于在在dockerfile 中增加 

ENV LANG C.UTF-8

完整dockerfile 如下:


# 环境
FROM  williamyeh/java8:latest
# 作者信息
MAINTAINER david "36050@qq.com"

# 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 中文正常显示

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

 

采集到花瓣
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
对于Java开发者来说,Docker镜像可以帮助简化应用程序的部署和运行。要使用JavaDocker镜像,可以按照以下步骤进行操作: 1. 首先,确保已在本地安装了Docker。可以通过在终端运行`docker --version`来验证。 2. 打开终端,并输入以下命令拉取官方的Java镜像:`docker pull openjdk:latest`。这将下载最新版本的OpenJDK镜像。 3. 创建一个Dockerfile文件,并使用文本编辑器打开。在该文件中,定义你的镜像的构建规则。以下是一个简单的示例: ``` FROM openjdk:latest COPY your-app.jar /app.jar CMD ["java", "-jar", "/app.jar"] ``` 在上述示例中,我们使用OpenJDK作为基础镜像,并将你的应用程序(以`your-app.jar`为示例)复制到容器内的`/app.jar`路径。最后,我们使用CMD指令来定义容器启动时的命令。 4. 保存并关闭Dockerfile文件。然后,在终端中,进入到刚才保存的Dockerfile所在的目录,并执行以下命令构建镜像: ``` docker build -t your-image-name . ``` 上述命令中,`your-image-name`是你想要给镜像起的名称。注意,命令最后有一个点号,代表使用当前目录下的Dockerfile文件进行构建。 5. 构建完成后,就可以使用以下命令运行镜像: ``` docker run -it your-image-name ``` 以上命令会启动一个容器并进入交互模式,你可以在其中运行Java应用程序。如果你的应用程序需要特定的端口,请使用`-p`参数来映射容器内的端口到主机上。 这些是使用Docker镜像运行Java应用程序的基本步骤。根据你的具体需求,可能需要进一步调整Dockerfile以适应你的应用程序。希望对你有所帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值