之前下载了jdk8的镜像,发现总是出现容器内部的中文日志乱码,以下是具体的处理过程 。
1. 直接在容器内设置
locale //看下当前默认语言是否是utf-8
locale -a // 看下系统有没有装utf-8语言
如果没有装utf-8的话,需要单独的装下。
修改 etc/profile文件:
echo "export LC_ALL=C.UTF-8">> /etc/profile
使环境变量生效:
source /etc/profile
再次输入 locale 发现已经设置成功了
2. 修改镜像里面的默认语言
因为根镜像的默认语言不是utf-8,那我们现在可以通过修改根镜像或者修改我们自己的镜像来设置。
2.1 修改我们自己的镜像
在我们的Dockerfile中加入以下命令:
ENV LANG C.UTF-8
这样的话,不管你根镜像的语言是什么,我只设置好我自己的环境就好了。
2.2 修改根镜像(相当于制作个新的镜像)
2.2.1 利用Dockerfile来制作
首先编写Dockerfile:
ROM hub.xxx.com/official/jdk8:lastest
ENV LANG C.UTF-8
制作镜像: docker build -t official/new_jdk8 Dockerfile.
2.2.2 利用docker commit 来制作
查询到需要制作镜像的 imageid:
docker images
制作镜像:
docker commit --change=“ENV LANG C.UTF-8” 8a5d21dg36de official/new_jdk8:lastest
然后查看镜像是否已经制作好了:
docker images
将制作好的镜像推送到镜像仓库:
首先打 tag:
docker tag official/new_jdk8:lastest hub.xx.com/official/jdk8:latest
push到镜像库:
docker push hub.xx.com/official/jdk8:latest
解决Ubuntu容器内中文日志乱码问题,可通过直接在容器内设置或修改镜像默认语言。在Dockerfile中添加`ENV LANG C.UTF-8`或使用`docker commit`命令更新环境变量。
2750

被折叠的 条评论
为什么被折叠?



